All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mediasan_common_test::init_logger
      Src: /src/mp4san/webpsan/tests/test-data.rs:10,1
    - Dst: mediasan_common_test::test_data
      Src: /src/mp4san/webpsan/tests/test-data.rs:11,1
    - Dst: webpsan::sanitize_with_config
      Src: /src/mp4san/webpsan/tests/test-data.rs:13,1
    - Dst: Cursor::new
      Src: /src/mp4san/webpsan/tests/test-data.rs:13,1
    - Dst: Result::unwrap
      Src: /src/mp4san/webpsan/tests/test-data.rs:13,1
    - Dst: webpsan::sanitize_with_config
      Src: /src/mp4san/webpsan/tests/test-data.rs:16,1
    - Dst: Cursor::new
      Src: /src/mp4san/webpsan/tests/test-data.rs:16,1
    - Dst: Result::unwrap
      Src: /src/mp4san/webpsan/tests/test-data.rs:16,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 9
    functionDepth: 13
    functionLinenumber: 9
    functionLinenumberEnd: 22
    functionName: test_data
    functionSourceFile: /src/mp4san/webpsan/tests/test-data.rs
    functionUses: 1
    functionsReached:
    - webpsan::sanitize_with_config
    - Result::unwrap
    - Cursor::new
    - mediasan_common_test::test_data
    - mediasan_common_test::init_logger
    linkageType: ''
    returnType: void
    signature: fn test_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env_logger::init
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:21,1
    - Dst: Args::try_parse
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:23,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:23,1
    - Dst: File::open
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:25,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:25,1
    - Dst: File::create
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:27,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:27,1
    - Dst: BufReader::new
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:29,1
    - Dst: gzip::Encoder::new
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:30,1
    - Dst: BufWriter::new
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:30,1
    - Dst: Self::context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:30,1
    - Dst: impl AsyncRead + Unpin::fill_buf
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:32,1
    - Dst: Result::context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:32,1
    - Dst: is_empty
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:32,1
    - Dst: impl AsyncRead + Unpin::read_exact
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:34,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:34,1
    - Dst: BoxHeader::parse
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:37,1
    - Dst: extend
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:40,1
    - Dst: impl AsyncRead + Unpin::read_exact
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:41,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:41,1
    - Dst: BoxHeader::parse
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:44,1
    - Dst: Result::context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:44,1
    - Dst: write_all
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:47,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:47,1
    - Dst: BoxHeader::box_data_size
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:49,1
    - Dst: Result::context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:49,1
    - Dst: Box::new
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:50,1
    - Dst: Box::new
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:51,1
    - Dst: impl AsyncRead + Unpin::by_ref
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:51,1
    - Dst: take
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:51,1
    - Dst: BoxHeader::box_type
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:53,1
    - Dst: io::copy
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:55,1
    - Dst: io::sink
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:55,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:55,1
    - Dst: io::copy
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:56,1
    - Dst: io::repeat
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:56,1
    - Dst: take
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:56,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:56,1
    - Dst: io::copy
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:59,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:59,1
    - Dst: finish
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:64,1
    - Dst: into_result
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:64,1
    - Dst: context
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:64,1
    - Dst: Ok
      Src: /src/mp4san/mp4san-test-gen/src/main.rs:66,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 124
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 20
    functionDepth: 14
    functionLinenumber: 20
    functionLinenumberEnd: 67
    functionName: main
    functionSourceFile: /src/mp4san/mp4san-test-gen/src/main.rs
    functionUses: 0
    functionsReached:
    - take
    - BoxHeader::box_data_size
    - BoxHeader::parse
    - BoxHeader::box_type
    - into_result
    - env_logger::init
    - impl AsyncRead + Unpin::by_ref
    - Box::new
    - Result::context
    - io::sink
    - Ok
    - BufReader::new
    - impl AsyncRead + Unpin::fill_buf
    - finish
    - File::create
    - write_all
    - io::repeat
    - Args::try_parse
    - gzip::Encoder::new
    - impl AsyncRead + Unpin::read_exact
    - context
    - Self::context
    - File::open
    - extend
    - is_empty
    - BufWriter::new
    - io::copy
    linkageType: ''
    returnType: Result
    signature: fn main() -> Result<(), anyhow::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkReader::new
      Src: /src/mp4san/webpsan/src/lib.rs:109,1
    - Dst: Self::read_header
      Src: /src/mp4san/webpsan/src/lib.rs:110,1
    - Dst: Self::parse_data
      Src: /src/mp4san/webpsan/src/lib.rs:111,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/lib.rs:113,1
    - Dst: Self::child_reader
      Src: /src/mp4san/webpsan/src/lib.rs:119,1
    - Dst: impl AsyncRead + Unpin::read_any_header
      Src: /src/mp4san/webpsan/src/lib.rs:123,1
    - Dst: Result::attach_printable
      Src: /src/mp4san/webpsan/src/lib.rs:123,1
    - Dst: impl AsyncRead + Unpin::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:126,1
    - Dst: impl AsyncRead + Unpin::parse_data
      Src: /src/mp4san/webpsan/src/lib.rs:130,1
    - Dst: width
      Src: /src/mp4san/webpsan/src/lib.rs:131,1
    - Dst: height
      Src: /src/mp4san/webpsan/src/lib.rs:131,1
    - Dst: sanitize_image_data
      Src: /src/mp4san/webpsan/src/lib.rs:132,1
    - Dst: impl AsyncRead + Unpin::data_reader
      Src: /src/mp4san/webpsan/src/lib.rs:132,1
    - Dst: impl AsyncRead + Unpin::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:133,1
    - Dst: impl AsyncRead + Unpin::parse_data
      Src: /src/mp4san/webpsan/src/lib.rs:137,1
    - Dst: TestVp8xSpecBuilder::canvas_width
      Src: /src/mp4san/webpsan/src/lib.rs:138,1
    - Dst: TestVp8xSpecBuilder::canvas_height
      Src: /src/mp4san/webpsan/src/lib.rs:138,1
    - Dst: sanitize_extended
      Src: /src/mp4san/webpsan/src/lib.rs:141,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/lib.rs:145,1
    - Dst: impl AsyncRead + Unpin::has_remaining
      Src: /src/mp4san/webpsan/src/lib.rs:155,1
    - Dst: impl AsyncRead + Unpin::read_any_header
      Src: /src/mp4san/webpsan/src/lib.rs:156,1
    - Dst: Result::attach_printable
      Src: /src/mp4san/webpsan/src/lib.rs:156,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/lib.rs:161,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/lib.rs:163,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/lib.rs:164,1
    - Dst: impl AsyncRead + Unpin::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:166,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/lib.rs:170,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/lib.rs:176,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 80
    argCount: 2
    argNames:
    - input
    - config
    argTypes:
    - R
    - Config
    constantsTouched: []
    func_position:
      end: 177
      start: 108
    functionDepth: 12
    functionLinenumber: 108
    functionLinenumberEnd: 177
    functionName: sanitize_with_config
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 6
    functionsReached:
    - Self::parse_data
    - width
    - height
    - ChunkReader::new
    - Ok
    - TestVp8xSpecBuilder::canvas_width
    - impl AsyncRead + Unpin::read_any_header
    - impl AsyncRead + Unpin::has_remaining
    - Self::child_reader
    - mediasan_common::ensure_attach
    - sanitize_image_data
    - sanitize_extended
    - impl AsyncRead + Unpin::parse_data
    - Self::read_header
    - mediasan_common::bail_attach
    - impl AsyncRead + Unpin::data_reader
    - Result::attach_printable
    - TestVp8xSpecBuilder::canvas_height
    - impl AsyncRead + Unpin::skip_data
    linkageType: ''
    returnType: Result
    signature: 'pub fn sanitize_with_config<R: Read + Skip>(mut input: R, config:
      Config) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncInputAdapter
      Src: /src/mp4san/common/src/sync.rs:32,1
    - Dst: B::reader
      Src: /src/mp4san/common/src/sync.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: buf_async_reader
    functionSourceFile: /src/mp4san/common/src/sync.rs
    functionUses: 1
    functionsReached:
    - B::reader
    - AsyncInputAdapter
    linkageType: ''
    returnType: impl AsyncRead + Unpin
    signature: 'pub fn buf_async_reader<B: Buf + Unpin>(input: B) -> impl AsyncRead
      + Unpin'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/mp4san/common/src/sync.rs:46,1
    - Dst: into
      Src: /src/mp4san/common/src/sync.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - _cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: AsyncInputAdapter::poll_read
    functionSourceFile: /src/mp4san/common/src/sync.rs
    functionUses: 0
    functionsReached:
    - read
    - into
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_read(mut self: Pin<&mut Self>, _cx: &mut Context<''_>, buf:
      &mut [u8]) -> Poll<io::Result<usize>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_vectored
      Src: /src/mp4san/common/src/sync.rs:54,1
    - Dst: into
      Src: /src/mp4san/common/src/sync.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - _cx
    - bufs
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    - '&mut [io::IoSliceMut<''_>]'
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: AsyncInputAdapter::poll_read_vectored
    functionSourceFile: /src/mp4san/common/src/sync.rs
    functionUses: 0
    functionsReached:
    - read_vectored
    - into
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_read_vectored(mut self: Pin<&mut Self>,_cx: &mut Context<''_>,bufs:
      &mut [io::IoSliceMut<''_>],) -> Poll<io::Result<usize>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skip
      Src: /src/mp4san/common/src/sync.rs:60,1
    - Dst: into
      Src: /src/mp4san/common/src/sync.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - _cx
    - amount
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    - u64
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: AsyncInputAdapter::poll_skip
    functionSourceFile: /src/mp4san/common/src/sync.rs
    functionUses: 0
    functionsReached:
    - skip
    - into
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_skip(mut self: Pin<&mut Self>, _cx: &mut Context<''_>, amount:
      u64) -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_position
      Src: /src/mp4san/common/src/sync.rs:64,1
    - Dst: into
      Src: /src/mp4san/common/src/sync.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - _cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: AsyncInputAdapter::poll_stream_position
    functionSourceFile: /src/mp4san/common/src/sync.rs
    functionUses: 0
    functionsReached:
    - stream_position
    - into
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_stream_position(mut self: Pin<&mut Self>, _cx: &mut Context<''_>)
      -> Poll<io::Result<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_len
      Src: /src/mp4san/common/src/sync.rs:68,1
    - Dst: into
      Src: /src/mp4san/common/src/sync.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - _cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: AsyncInputAdapter::poll_stream_len
    functionSourceFile: /src/mp4san/common/src/sync.rs
    functionUses: 0
    functionsReached:
    - into
    - stream_len
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_stream_len(mut self: Pin<&mut Self>, _cx: &mut Context<''_>)
      -> Poll<io::Result<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: test::test_size_simple
    functionSourceFile: /src/mp4san/mp4san/src/parse.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_size_simple()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: test::test_size_exttype
    functionSourceFile: /src/mp4san/mp4san/src/parse.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_size_exttype()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: test::test_type_bytes
    functionSourceFile: /src/mp4san/mp4san/src/parse.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_type_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: test::test_type_compact_int_decimal
    functionSourceFile: /src/mp4san/mp4san/src/parse.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_type_compact_int_decimal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxType::Uuid
      Src: /src/mp4san/mp4san/src/parse.rs:101,1
    - Dst: to_be_bytes
      Src: /src/mp4san/mp4san/src/parse.rs:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: test::test_type_extended
    functionSourceFile: /src/mp4san/mp4san/src/parse.rs
    functionUses: 0
    functionsReached:
    - to_be_bytes
    - BoxType::Uuid
    linkageType: ''
    returnType: void
    signature: fn test_type_extended()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: test::test_type_compact_str
    functionSourceFile: /src/mp4san/mp4san/src/parse.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_type_compact_str()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/parse.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: test::put_buf_empty
    functionSourceFile: /src/mp4san/mp4san/src/parse.rs
    functionUses: 0
    functionsReached:
    - put_buf
    linkageType: ''
    returnType: void
    signature: fn put_buf_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/parse.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: test::put_buf
    functionSourceFile: /src/mp4san/mp4san/src/parse.rs
    functionUses: 0
    functionsReached:
    - put_buf
    linkageType: ''
    returnType: void
    signature: fn put_buf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::from
      Src: /src/mp4san/mp4san/src/parse.rs:126,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/parse.rs:127,1
    - Dst: BoxHeader::parse
      Src: /src/mp4san/mp4san/src/parse.rs:128,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/parse.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 134
    functionName: test::parse
    functionSourceFile: /src/mp4san/mp4san/src/parse.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - BytesMut::from
    - BoxHeader::parse
    - len
    linkageType: ''
    returnType: void
    signature: fn parse()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_with_config
      Src: /src/mp4san/webpsan/src/lib.rs:95,1
    - Dst: Config::default
      Src: /src/mp4san/webpsan/src/lib.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 13
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: sanitize
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 7
    functionsReached:
    - sanitize_with_config
    - Config::default
    linkageType: ''
    returnType: Result
    signature: 'pub fn sanitize<R: Read + Skip>(input: R) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_async_with_config
      Src: /src/mp4san/mp4san/src/lib.rs:234,1
    - Dst: Config::default
      Src: /src/mp4san/mp4san/src/lib.rs:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 16
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: sanitize_async
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_async_with_config
    - Config::default
    linkageType: ''
    returnType: Result
    signature: 'pub async fn sanitize_async<R: AsyncRead + AsyncSkip>(input: R) ->
      Result<SanitizedMetadata, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::with_capacity
      Src: /src/mp4san/mp4san/src/lib.rs:275,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:283,1
    - Dst: fill_buf
      Src: /src/mp4san/mp4san/src/lib.rs:283,1
    - Dst: is_empty
      Src: /src/mp4san/mp4san/src/lib.rs:283,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:284,1
    - Dst: stream_position
      Src: /src/mp4san/mp4san/src/lib.rs:284,1
    - Dst: BoxHeader::read
      Src: /src/mp4san/mp4san/src/lib.rs:286,1
    - Dst: map_eof
      Src: /src/mp4san/mp4san/src/lib.rs:286,1
    - Dst: Error::Parse
      Src: /src/mp4san/mp4san/src/lib.rs:288,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/lib.rs:288,1
    - Dst: BoxHeader::box_type
      Src: /src/mp4san/mp4san/src/lib.rs:290,1
    - Dst: skip_box
      Src: /src/mp4san/mp4san/src/lib.rs:292,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:292,1
    - Dst: BoxHeader::encoded_len
      Src: /src/mp4san/mp4san/src/lib.rs:292,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/lib.rs:304,1
    - Dst: Mp4Box::read_data
      Src: /src/mp4san/mp4san/src/lib.rs:309,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:309,1
    - Dst: parse
      Src: /src/mp4san/mp4san/src/lib.rs:310,1
    - Dst: compatible_brands
      Src: /src/mp4san/mp4san/src/lib.rs:311,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/lib.rs:311,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/lib.rs:315,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/lib.rs:320,1
    - Dst: is_none
      Src: /src/mp4san/mp4san/src/lib.rs:327,1
    - Dst: bail_attach
      Src: /src/mp4san/mp4san/src/lib.rs:328,1
    - Dst: BoxHeader::box_data_size
      Src: /src/mp4san/mp4san/src/lib.rs:332,1
    - Dst: BoxHeader::overwrite_size
      Src: /src/mp4san/mp4san/src/lib.rs:334,1
    - Dst: skip_box
      Src: /src/mp4san/mp4san/src/lib.rs:338,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:338,1
    - Dst: BoxHeader::encoded_len
      Src: /src/mp4san/mp4san/src/lib.rs:338,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/lib.rs:343,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/lib.rs:350,1
    - Dst: Mp4Box::read_data
      Src: /src/mp4san/mp4san/src/lib.rs:355,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:355,1
    - Dst: parse
      Src: /src/mp4san/mp4san/src/lib.rs:357,1
    - Dst: traks
      Src: /src/mp4san/mp4san/src/lib.rs:358,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/lib.rs:358,1
    - Dst: Ok::<_, Report<_>>
      Src: /src/mp4san/mp4san/src/lib.rs:360,1
    - Dst: co_mut
      Src: /src/mp4san/mp4san/src/lib.rs:360,1
    - Dst: entry_count
      Src: /src/mp4san/mp4san/src/lib.rs:360,1
    - Dst: reduce
      Src: /src/mp4san/mp4san/src/lib.rs:361,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/lib.rs:361,1
    - Dst: unwrap_or
      Src: /src/mp4san/mp4san/src/lib.rs:361,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/lib.rs:361,1
    - Dst: traks
      Src: /src/mp4san/mp4san/src/lib.rs:362,1
    - Dst: count
      Src: /src/mp4san/mp4san/src/lib.rs:362,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/lib.rs:365,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/lib.rs:366,1
    - Dst: skip_box
      Src: /src/mp4san/mp4san/src/lib.rs:370,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:370,1
    - Dst: BoxHeader::encoded_len
      Src: /src/mp4san/mp4san/src/lib.rs:370,1
    - Dst: skip_box
      Src: /src/mp4san/mp4san/src/lib.rs:382,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:382,1
    - Dst: BoxHeader::encoded_len
      Src: /src/mp4san/mp4san/src/lib.rs:382,1
    - Dst: bail_attach
      Src: /src/mp4san/mp4san/src/lib.rs:384,1
    - Dst: bail_attach
      Src: /src/mp4san/mp4san/src/lib.rs:390,1
    - Dst: bail_attach
      Src: /src/mp4san/mp4san/src/lib.rs:393,1
    - Dst: bail_attach
      Src: /src/mp4san/mp4san/src/lib.rs:396,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/lib.rs:403,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/lib.rs:408,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/lib.rs:409,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/lib.rs:413,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/lib.rs:413,1
    - Dst: checked_sub
      Src: /src/mp4san/mp4san/src/lib.rs:417,1
    - Dst: try_into
      Src: /src/mp4san/mp4san/src/lib.rs:428,1
    - Dst: ok
      Src: /src/mp4san/mp4san/src/lib.rs:428,1
    - Dst: and_then
      Src: /src/mp4san/mp4san/src/lib.rs:428,1
    - Dst: checked_sub
      Src: /src/mp4san/mp4san/src/lib.rs:430,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/lib.rs:430,1
    - Dst: try_into
      Src: /src/mp4san/mp4san/src/lib.rs:430,1
    - Dst: ok
      Src: /src/mp4san/mp4san/src/lib.rs:430,1
    - Dst: ok_or_else
      Src: /src/mp4san/mp4san/src/lib.rs:432,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/lib.rs:433,1
    - Dst: parse
      Src: /src/mp4san/mp4san/src/lib.rs:437,1
    - Dst: traks
      Src: /src/mp4san/mp4san/src/lib.rs:437,1
    - Dst: co_mut
      Src: /src/mp4san/mp4san/src/lib.rs:438,1
    - Dst: entries_mut
      Src: /src/mp4san/mp4san/src/lib.rs:440,1
    - Dst: get
      Src: /src/mp4san/mp4san/src/lib.rs:441,1
    - Dst: unwrap_or_else
      Src: /src/mp4san/mp4san/src/lib.rs:441,1
    - Dst: set
      Src: /src/mp4san/mp4san/src/lib.rs:442,1
    - Dst: mediasan_common::util::checked_add_signed
      Src: /src/mp4san/mp4san/src/lib.rs:443,1
    - Dst: Option::ok_or_else
      Src: /src/mp4san/mp4san/src/lib.rs:443,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/lib.rs:444,1
    - Dst: entries_mut
      Src: /src/mp4san/mp4san/src/lib.rs:449,1
    - Dst: get
      Src: /src/mp4san/mp4san/src/lib.rs:450,1
    - Dst: unwrap_or_else
      Src: /src/mp4san/mp4san/src/lib.rs:450,1
    - Dst: set
      Src: /src/mp4san/mp4san/src/lib.rs:451,1
    - Dst: mediasan_common::util::checked_add_signed
      Src: /src/mp4san/mp4san/src/lib.rs:452,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/lib.rs:452,1
    - Dst: Option::ok_or_else
      Src: /src/mp4san/mp4san/src/lib.rs:452,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/lib.rs:453,1
    - Dst: Vec::with_capacity
      Src: /src/mp4san/mp4san/src/lib.rs:462,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/lib.rs:463,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/lib.rs:464,1
    - Dst: BoxHeader::with_u32_data_size
      Src: /src/mp4san/mp4san/src/lib.rs:466,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/lib.rs:467,1
    - Dst: resize
      Src: /src/mp4san/mp4san/src/lib.rs:468,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/lib.rs:471,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/lib.rs:471,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 326
    argCount: 2
    argNames:
    - input
    - config
    argTypes:
    - R
    - Config
    constantsTouched: []
    func_position:
      end: 472
      start: 271
    functionDepth: 15
    functionLinenumber: 271
    functionLinenumberEnd: 472
    functionName: sanitize_async_with_config
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 1
    functionsReached:
    - put_buf
    - BoxHeader::box_data_size
    - set
    - try_into
    - BoxHeader::with_u32_data_size
    - fill_buf
    - Self::put_buf
    - BoxHeader::box_type
    - compatible_brands
    - BoxHeader::read
    - encoded_len
    - impl AsyncRead + Unpin::as_mut
    - parse
    - Ok
    - report_attach
    - co_mut
    - mediasan_common::util::checked_add_signed
    - Error::Parse
    - entries_mut
    - BoxHeader::overwrite_size
    - Option::ok_or_else
    - resize
    - unwrap_or
    - traks
    - skip_box
    - Ok::<_, Report<_>>
    - entry_count
    - checked_sub
    - is_none
    - reduce
    - Mp4Box::with_data
    - ensure_attach
    - Some
    - map
    - count
    - is_empty
    - stream_position
    - BoxHeader::encoded_len
    - bail_attach
    - unwrap
    - Vec::with_capacity
    - BufReader::with_capacity
    - len
    - and_then
    - get
    - unwrap_or_else
    - map_eof
    - Mp4Box::read_data
    - ok_or_else
    - into
    - ok
    linkageType: ''
    returnType: Result
    signature: 'pub async fn sanitize_async_with_config<R: AsyncRead + AsyncSkip>(input:
      R,config: Config,) -> Result<SanitizedMetadata, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigBuilder::default
      Src: /src/mp4san/webpsan/src/lib.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: Config::builder
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 3
    functionsReached:
    - ConfigBuilder::default
    linkageType: ''
    returnType: ConfigBuilder
    signature: pub fn builder() -> ConfigBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::builder
      Src: /src/mp4san/webpsan/src/lib.rs:351,1
    - Dst: ConfigBuilder::build
      Src: /src/mp4san/webpsan/src/lib.rs:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: Config::default
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 6
    functionsReached:
    - Self::builder
    - ConfigBuilder::build
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConfigBuilder::try_build
      Src: /src/mp4san/webpsan/src/lib.rs:362,1
    - Dst: unwrap
      Src: /src/mp4san/webpsan/src/lib.rs:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: ConfigBuilder::build
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 2
    functionsReached:
    - unwrap
    - ConfigBuilder::try_build
    linkageType: ''
    returnType: Config
    signature: pub fn build(&self) -> Config
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxHeader::box_data_size
      Src: /src/mp4san/mp4san/src/lib.rs:515,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:517,1
    - Dst: stream_len
      Src: /src/mp4san/mp4san/src/lib.rs:517,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/lib.rs:517,1
    - Dst: stream_position
      Src: /src/mp4san/mp4san/src/lib.rs:517,1
    - Dst: impl AsyncRead + Unpin::skip
      Src: /src/mp4san/mp4san/src/lib.rs:519,1
    - Dst: map_eof
      Src: /src/mp4san/mp4san/src/lib.rs:519,1
    - Dst: Error::Parse
      Src: /src/mp4san/mp4san/src/lib.rs:520,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/lib.rs:520,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/lib.rs:525,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - reader
    - header
    argTypes:
    - Pin<&mut BufReader<R>>
    - '&BoxHeader'
    constantsTouched: []
    func_position:
      end: 526
      start: 511
    functionDepth: 15
    functionLinenumber: 511
    functionLinenumberEnd: 526
    functionName: skip_box
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 1
    functionsReached:
    - impl AsyncRead + Unpin::as_mut
    - stream_len
    - Ok
    - report_attach
    - BoxHeader::box_data_size
    - Error::Parse
    - map_eof
    - impl AsyncRead + Unpin::skip
    - stream_position
    linkageType: ''
    returnType: Result
    signature: 'async fn skip_box<R: AsyncRead + AsyncSkip>(mut reader: Pin<&mut BufReader<R>>,header:
      &BoxHeader,) -> Result<u64, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/mp4san/mp4san/src/lib.rs:547,1
    - Dst: test_ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:551,1
    - Dst: TestFtypBuilder::build
      Src: /src/mp4san/mp4san/src/lib.rs:551,1
    - Dst: Mp4Box::put_buf
      Src: /src/mp4san/mp4san/src/lib.rs:551,1
    - Dst: test_ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:552,1
    - Dst: TestFtypBuilder::build
      Src: /src/mp4san/mp4san/src/lib.rs:552,1
    - Dst: Mp4Box::put_buf
      Src: /src/mp4san/mp4san/src/lib.rs:552,1
    - Dst: write_test_mdat
      Src: /src/mp4san/mp4san/src/lib.rs:553,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/lib.rs:555,1
    - Dst: test_moov
      Src: /src/mp4san/mp4san/src/lib.rs:556,1
    - Dst: TestMoovBuilder::build
      Src: /src/mp4san/mp4san/src/lib.rs:556,1
    - Dst: Mp4Box::put_buf
      Src: /src/mp4san/mp4san/src/lib.rs:556,1
    - Dst: test_moov
      Src: /src/mp4san/mp4san/src/lib.rs:557,1
    - Dst: TestMoovBuilder::build
      Src: /src/mp4san/mp4san/src/lib.rs:557,1
    - Dst: Mp4Box::put_buf
      Src: /src/mp4san/mp4san/src/lib.rs:557,1
    - Dst: BoxHeader::until_eof
      Src: /src/mp4san/mp4san/src/lib.rs:558,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/lib.rs:558,1
    - Dst: sanitize
      Src: /src/mp4san/mp4san/src/lib.rs:560,1
    - Dst: io::Cursor::new
      Src: /src/mp4san/mp4san/src/lib.rs:560,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/lib.rs:560,1
    - Dst: sanitize
      Src: /src/mp4san/mp4san/src/lib.rs:563,1
    - Dst: io::Cursor::new
      Src: /src/mp4san/mp4san/src/lib.rs:563,1
    - Dst: sanitized_data
      Src: /src/mp4san/mp4san/src/lib.rs:563,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/lib.rs:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 564
      start: 546
    functionDepth: 17
    functionLinenumber: 546
    functionLinenumberEnd: 564
    functionName: test::until_eof_sized_moov
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_ftyp
    - io::Cursor::new
    - TestFtypBuilder::build
    - init_logger
    - sanitized_data
    - len
    - Self::put_buf
    - BoxHeader::until_eof
    - sanitize
    - Result::unwrap
    - TestMoovBuilder::build
    - Mp4Box::put_buf
    - test_moov
    - write_test_mdat
    linkageType: ''
    returnType: void
    signature: fn until_eof_sized_moov()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:568,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:568,1
    - Dst: mdat_data
      Src: /src/mp4san/mp4san/src/lib.rs:568,1
    - Dst: mdat_data_until_eof
      Src: /src/mp4san/mp4san/src/lib.rs:568,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:568,1
    - Dst: sanitize_ok_noop
      Src: /src/mp4san/mp4san/src/lib.rs:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 567
    functionDepth: 15
    functionLinenumber: 567
    functionLinenumberEnd: 574
    functionName: test::until_eof_sized_mdat
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok_noop
    - mdat_data_until_eof
    - test_mp4
    - build
    - mdat_data
    - TestMp4Builder::boxes
    linkageType: ''
    returnType: void
    signature: fn until_eof_sized_mdat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:578,1
    - Dst: TestMp4Builder::mdat_data
      Src: /src/mp4san/mp4san/src/lib.rs:578,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:578,1
    - Dst: sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 15
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: test::skip
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok
    - build
    - test_mp4
    - TestMp4Builder::mdat_data
    linkageType: ''
    returnType: void
    signature: fn skip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:583,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:583,1
    - Dst: mdat_data
      Src: /src/mp4san/mp4san/src/lib.rs:583,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:583,1
    - Dst: mdat_data_len
      Src: /src/mp4san/mp4san/src/lib.rs:584,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:584,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/lib.rs:584,1
    - Dst: mdat_data_len
      Src: /src/mp4san/mp4san/src/lib.rs:585,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:585,1
    - Dst: sanitize
      Src: /src/mp4san/mp4san/src/lib.rs:586,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:586,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/lib.rs:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 590
      start: 582
    functionDepth: 14
    functionLinenumber: 582
    functionLinenumberEnd: 590
    functionName: test::max_input_length
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_mp4
    - clone
    - build
    - len
    - mdat_data_len
    - mdat_data
    - sanitize
    - Result::unwrap
    - TestMp4Builder::boxes
    linkageType: ''
    returnType: void
    signature: fn max_input_length()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:594,1
    - Dst: TestMp4Builder::mdat_data
      Src: /src/mp4san/mp4san/src/lib.rs:594,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:594,1
    - Dst: mdat_data_len
      Src: /src/mp4san/mp4san/src/lib.rs:595,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:595,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/lib.rs:595,1
    - Dst: mdat_data_len
      Src: /src/mp4san/mp4san/src/lib.rs:596,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:596,1
    - Dst: sanitize
      Src: /src/mp4san/mp4san/src/lib.rs:597,1
    - Dst: Result::unwrap_err
      Src: /src/mp4san/mp4san/src/lib.rs:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 598
      start: 593
    functionDepth: 14
    functionLinenumber: 593
    functionLinenumberEnd: 598
    functionName: test::input_length_overflow
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_mp4
    - clone
    - build
    - len
    - mdat_data_len
    - sanitize
    - Result::unwrap_err
    - TestMp4Builder::mdat_data
    linkageType: ''
    returnType: void
    signature: fn input_length_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:602,1
    - Dst: TestMp4Builder::mdat_data_len
      Src: /src/mp4san/mp4san/src/lib.rs:602,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:602,1
    - Dst: sanitize
      Src: /src/mp4san/mp4san/src/lib.rs:603,1
    - Dst: Result::unwrap_err
      Src: /src/mp4san/mp4san/src/lib.rs:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 604
      start: 601
    functionDepth: 14
    functionLinenumber: 601
    functionLinenumberEnd: 604
    functionName: test::box_size_overflow
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_mp4
    - sanitize
    - build
    - TestMp4Builder::mdat_data_len
    - Result::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn box_size_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/mp4san/mp4san/src/lib.rs:609,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/lib.rs:609,1
    - Dst: push
      Src: /src/mp4san/mp4san/src/lib.rs:610,1
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:613,1
    - Dst: TestMp4Builder::ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:613,1
    - Dst: test_ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:614,1
    - Dst: TestFtypBuilder::compatible_brands
      Src: /src/mp4san/mp4san/src/lib.rs:614,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:614,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 607
    functionDepth: 4
    functionLinenumber: 607
    functionLinenumberEnd: 619
    functionName: test::ftyp_too_large
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_ftyp
    - push
    - TestMp4Builder::ftyp
    - TestFtypBuilder::compatible_brands
    - test_mp4
    - clone
    - len
    - build
    linkageType: ''
    returnType: void
    signature: fn ftyp_too_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:623,1
    - Dst: TestMp4Builder::build_spec
      Src: /src/mp4san/mp4san/src/lib.rs:623,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/lib.rs:623,1
    - Dst: Config::builder
      Src: /src/mp4san/mp4san/src/lib.rs:624,1
    - Dst: ConfigBuilder::max_metadata_size
      Src: /src/mp4san/mp4san/src/lib.rs:624,1
    - Dst: moov
      Src: /src/mp4san/mp4san/src/lib.rs:625,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:625,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/lib.rs:625,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:624,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:627,1
    - Dst: sanitize_ok_with_config
      Src: /src/mp4san/mp4san/src/lib.rs:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 628
      start: 622
    functionDepth: 13
    functionLinenumber: 622
    functionLinenumberEnd: 628
    functionName: test::max_moov_size
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok_with_config
    - moov
    - TestMp4Builder::build_spec
    - test_mp4
    - Config::builder
    - build
    - ConfigBuilder::max_metadata_size
    - unwrap
    - encoded_len
    linkageType: ''
    returnType: void
    signature: fn max_moov_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:632,1
    - Dst: TestMp4Builder::build_spec
      Src: /src/mp4san/mp4san/src/lib.rs:632,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/lib.rs:632,1
    - Dst: Config::builder
      Src: /src/mp4san/mp4san/src/lib.rs:633,1
    - Dst: ConfigBuilder::max_metadata_size
      Src: /src/mp4san/mp4san/src/lib.rs:633,1
    - Dst: moov
      Src: /src/mp4san/mp4san/src/lib.rs:634,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:634,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/lib.rs:634,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:633,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:636,1
    - Dst: sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 641
      start: 631
    functionDepth: 18
    functionLinenumber: 631
    functionLinenumberEnd: 641
    functionName: test::moov_too_large
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - moov
    - TestMp4Builder::build_spec
    - test_mp4
    - Config::builder
    - build
    - ConfigBuilder::max_metadata_size
    - unwrap
    - sanitize_ok
    - encoded_len
    linkageType: ''
    returnType: void
    signature: fn moov_too_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:645,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:645,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:645,1
    - Dst: sanitize_ok_noop
      Src: /src/mp4san/mp4san/src/lib.rs:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 15
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: test::mdat_after_moov
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok_noop
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn mdat_after_moov()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:650,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:650,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 654
      start: 649
    functionDepth: 4
    functionLinenumber: 649
    functionLinenumberEnd: 654
    functionName: test::no_ftyp
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn no_ftyp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:658,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:658,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 662
      start: 657
    functionDepth: 4
    functionLinenumber: 657
    functionLinenumberEnd: 662
    functionName: test::multiple_ftyp
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn multiple_ftyp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:666,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:666,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:666,1
    - Dst: sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 665
    functionDepth: 15
    functionLinenumber: 665
    functionLinenumberEnd: 668
    functionName: test::ftyp_not_first_box
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn ftyp_not_first_box()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:672,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:672,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 676
      start: 671
    functionDepth: 4
    functionLinenumber: 671
    functionLinenumberEnd: 676
    functionName: test::ftyp_not_first_significant_box
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn ftyp_not_first_significant_box()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:680,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:680,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 684
      start: 679
    functionDepth: 4
    functionLinenumber: 679
    functionLinenumberEnd: 684
    functionName: test::no_moov
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn no_moov()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:688,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:688,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:688,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 4
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: test::no_mdat
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn no_mdat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:696,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:696,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:696,1
    - Dst: sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 15
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: test::free_boxes_in_metadata
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn free_boxes_in_metadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:702,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:702,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:702,1
    - Dst: sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 15
    functionLinenumber: 701
    functionLinenumberEnd: 704
    functionName: test::free_boxes_after_mdat
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn free_boxes_after_mdat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:708,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:708,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:708,1
    - Dst: sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 710
      start: 707
    functionDepth: 15
    functionLinenumber: 707
    functionLinenumberEnd: 710
    functionName: test::meta_boxes_in_metadata
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn meta_boxes_in_metadata()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:714,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:714,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:714,1
    - Dst: sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 713
    functionDepth: 15
    functionLinenumber: 713
    functionLinenumberEnd: 716
    functionName: test::meta_boxes_after_mdat
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn meta_boxes_after_mdat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:720,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:720,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:720,1
    - Dst: sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 724
      start: 719
    functionDepth: 15
    functionLinenumber: 719
    functionLinenumberEnd: 724
    functionName: test::multiple_mdat
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - sanitize_ok
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn multiple_mdat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:728,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:728,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 732
      start: 727
    functionDepth: 4
    functionLinenumber: 727
    functionLinenumberEnd: 732
    functionName: test::uuid
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestMp4Builder::boxes
    - test_mp4
    - build
    linkageType: ''
    returnType: void
    signature: fn uuid()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:736,1
    - Dst: TestMp4Builder::ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:736,1
    - Dst: test_ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:737,1
    - Dst: TestFtypBuilder::major_brand
      Src: /src/mp4san/mp4san/src/lib.rs:737,1
    - Dst: add_compatible_brand
      Src: /src/mp4san/mp4san/src/lib.rs:737,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:737,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 735
    functionDepth: 4
    functionLinenumber: 735
    functionLinenumberEnd: 742
    functionName: test::mp41
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_ftyp
    - TestMp4Builder::ftyp
    - TestFtypBuilder::major_brand
    - add_compatible_brand
    - test_mp4
    - clone
    - build
    linkageType: ''
    returnType: void
    signature: fn mp41()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:746,1
    - Dst: TestFtypBuilder::major_brand
      Src: /src/mp4san/mp4san/src/lib.rs:746,1
    - Dst: compatible_brands
      Src: /src/mp4san/mp4san/src/lib.rs:746,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:746,1
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:750,1
    - Dst: TestMp4Builder::ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:750,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:750,1
    - Dst: Config::sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 745
    functionDepth: 15
    functionLinenumber: 745
    functionLinenumberEnd: 752
    functionName: test::mp42
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_ftyp
    - Config::sanitize_ok
    - TestMp4Builder::ftyp
    - TestFtypBuilder::major_brand
    - test_mp4
    - clone
    - build
    - compatible_brands
    linkageType: ''
    returnType: void
    signature: fn mp42()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:756,1
    - Dst: TestMp4Builder::ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:756,1
    - Dst: test_ftyp
      Src: /src/mp4san/mp4san/src/lib.rs:757,1
    - Dst: TestFtypBuilder::major_brand
      Src: /src/mp4san/mp4san/src/lib.rs:757,1
    - Dst: compatible_brands
      Src: /src/mp4san/mp4san/src/lib.rs:757,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:757,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 762
      start: 755
    functionDepth: 4
    functionLinenumber: 755
    functionLinenumberEnd: 762
    functionName: test::no_compatible_brands
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_ftyp
    - TestMp4Builder::ftyp
    - TestFtypBuilder::major_brand
    - test_mp4
    - clone
    - build
    - compatible_brands
    linkageType: ''
    returnType: void
    signature: fn no_compatible_brands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:766,1
    - Dst: TestMp4Builder::moov
      Src: /src/mp4san/mp4san/src/lib.rs:766,1
    - Dst: test_moov
      Src: /src/mp4san/mp4san/src/lib.rs:766,1
    - Dst: TestMoovBuilder::trak
      Src: /src/mp4san/mp4san/src/lib.rs:766,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:766,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 770
      start: 765
    functionDepth: 18
    functionLinenumber: 765
    functionLinenumberEnd: 770
    functionName: test::no_trak
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestMp4Builder::moov
    - test_mp4
    - clone
    - build
    - TestMoovBuilder::trak
    - test_moov
    linkageType: ''
    returnType: void
    signature: fn no_trak()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:774,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:774,1
    - Dst: moov
      Src: /src/mp4san/mp4san/src/lib.rs:774,1
    - Dst: test_moov
      Src: /src/mp4san/mp4san/src/lib.rs:776,1
    - Dst: TestMoovBuilder::mdia
      Src: /src/mp4san/mp4san/src/lib.rs:776,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:776,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 781
      start: 773
    functionDepth: 18
    functionLinenumber: 773
    functionLinenumberEnd: 781
    functionName: test::no_mdia
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestMoovBuilder::mdia
    - moov
    - test_mp4
    - clone
    - build
    - TestMp4Builder::boxes
    - test_moov
    linkageType: ''
    returnType: void
    signature: fn no_mdia()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:785,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:785,1
    - Dst: moov
      Src: /src/mp4san/mp4san/src/lib.rs:785,1
    - Dst: test_moov
      Src: /src/mp4san/mp4san/src/lib.rs:787,1
    - Dst: TestMoovBuilder::minf
      Src: /src/mp4san/mp4san/src/lib.rs:787,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:787,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 784
    functionDepth: 18
    functionLinenumber: 784
    functionLinenumberEnd: 792
    functionName: test::no_minf
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - moov
    - test_mp4
    - clone
    - build
    - TestMoovBuilder::minf
    - TestMp4Builder::boxes
    - test_moov
    linkageType: ''
    returnType: void
    signature: fn no_minf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:796,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:796,1
    - Dst: moov
      Src: /src/mp4san/mp4san/src/lib.rs:796,1
    - Dst: test_moov
      Src: /src/mp4san/mp4san/src/lib.rs:798,1
    - Dst: TestMoovBuilder::stbl
      Src: /src/mp4san/mp4san/src/lib.rs:798,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:798,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 803
      start: 795
    functionDepth: 18
    functionLinenumber: 795
    functionLinenumberEnd: 803
    functionName: test::no_stbl
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - moov
    - test_mp4
    - clone
    - build
    - TestMoovBuilder::stbl
    - TestMp4Builder::boxes
    - test_moov
    linkageType: ''
    returnType: void
    signature: fn no_stbl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:807,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:807,1
    - Dst: moov
      Src: /src/mp4san/mp4san/src/lib.rs:807,1
    - Dst: test_moov
      Src: /src/mp4san/mp4san/src/lib.rs:809,1
    - Dst: TestMoovBuilder::stco
      Src: /src/mp4san/mp4san/src/lib.rs:809,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:809,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:807,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 814
      start: 806
    functionDepth: 18
    functionLinenumber: 806
    functionLinenumberEnd: 814
    functionName: test::no_stco
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - moov
    - test_mp4
    - clone
    - build
    - TestMoovBuilder::stco
    - TestMp4Builder::boxes
    - test_moov
    linkageType: ''
    returnType: void
    signature: fn no_stco()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:818,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:818,1
    - Dst: moov
      Src: /src/mp4san/mp4san/src/lib.rs:818,1
    - Dst: test_moov
      Src: /src/mp4san/mp4san/src/lib.rs:820,1
    - Dst: TestMoovBuilder::stco
      Src: /src/mp4san/mp4san/src/lib.rs:820,1
    - Dst: co64
      Src: /src/mp4san/mp4san/src/lib.rs:820,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:820,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:818,1
    - Dst: sanitize_ok
      Src: /src/mp4san/mp4san/src/lib.rs:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 817
    functionDepth: 18
    functionLinenumber: 817
    functionLinenumberEnd: 823
    functionName: test::co64
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - moov
    - test_mp4
    - clone
    - build
    - TestMoovBuilder::stco
    - sanitize_ok
    - TestMp4Builder::boxes
    - test_moov
    - co64
    linkageType: ''
    returnType: void
    signature: fn co64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:827,1
    - Dst: TestMp4Builder::boxes
      Src: /src/mp4san/mp4san/src/lib.rs:827,1
    - Dst: moov
      Src: /src/mp4san/mp4san/src/lib.rs:827,1
    - Dst: test_moov
      Src: /src/mp4san/mp4san/src/lib.rs:829,1
    - Dst: TestMoovBuilder::co64
      Src: /src/mp4san/mp4san/src/lib.rs:829,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/lib.rs:829,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 834
      start: 826
    functionDepth: 18
    functionLinenumber: 826
    functionLinenumberEnd: 834
    functionName: test::stco_and_co64
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - moov
    - test_mp4
    - clone
    - build
    - TestMoovBuilder::co64
    - TestMp4Builder::boxes
    - test_moov
    linkageType: ''
    returnType: void
    signature: fn stco_and_co64()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_mp4
      Src: /src/mp4san/mp4san/src/lib.rs:838,1
    - Dst: TestMp4Builder::mdat_data_until_eof
      Src: /src/mp4san/mp4san/src/lib.rs:838,1
    - Dst: '&mut Self::build_spec'
      Src: /src/mp4san/mp4san/src/lib.rs:838,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/lib.rs:838,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:839,1
    - Dst: Config::builder
      Src: /src/mp4san/mp4san/src/lib.rs:842,1
    - Dst: ConfigBuilder::build
      Src: /src/mp4san/mp4san/src/lib.rs:842,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:847,1
    - Dst: Config::builder
      Src: /src/mp4san/mp4san/src/lib.rs:848,1
    - Dst: ConfigBuilder::cumulative_mdat_box_size
      Src: /src/mp4san/mp4san/src/lib.rs:848,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/lib.rs:849,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/lib.rs:848,1
    - Dst: sanitize_ok_with_config
      Src: /src/mp4san/mp4san/src/lib.rs:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 852
      start: 837
    functionDepth: 14
    functionLinenumber: 837
    functionLinenumberEnd: 852
    functionName: test::cumulative_mdat_box_size
    functionSourceFile: /src/mp4san/mp4san/src/lib.rs
    functionUses: 0
    functionsReached:
    - ConfigBuilder::build
    - sanitize_ok_with_config
    - ConfigBuilder::cumulative_mdat_box_size
    - test_mp4
    - Config::builder
    - build
    - Some
    - TestMp4Builder::mdat_data_until_eof
    - '&mut Self::build_spec'
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn cumulative_mdat_box_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxSize::Size
      Src: /src/mp4san/mp4san/src/parse/header.rs:64,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/parse/header.rs:64,1
    - Dst: Self::checked_add
      Src: /src/mp4san/mp4san/src/parse/header.rs:65,1
    - Dst: BoxSize::Size
      Src: /src/mp4san/mp4san/src/parse/header.rs:66,1
    - Dst: BoxSize::Ext
      Src: /src/mp4san/mp4san/src/parse/header.rs:69,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/parse/header.rs:69,1
    - Dst: BoxSize::Ext
      Src: /src/mp4san/mp4san/src/parse/header.rs:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - box_type
    - data_size
    argTypes:
    - BoxType
    - u32
    constantsTouched: []
    func_position:
      end: 71
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 71
    functionName: BoxHeader::with_u32_data_size
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 5
    functionsReached:
    - BoxSize::Ext
    - BoxSize::Size
    - Self::checked_add
    - encoded_len
    linkageType: ''
    returnType: Self
    signature: 'pub const fn with_u32_data_size(box_type: BoxType, data_size: u32)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/header.rs:75,1
    - Dst: Self::with_u32_data_size
      Src: /src/mp4san/mp4san/src/parse/header.rs:75,1
    - Dst: BoxSize::Ext
      Src: /src/mp4san/mp4san/src/parse/header.rs:78,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/parse/header.rs:78,1
    - Dst: Self::checked_add
      Src: /src/mp4san/mp4san/src/parse/header.rs:79,1
    - Dst: bail_attach
      Src: /src/mp4san/mp4san/src/parse/header.rs:80,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/header.rs:86,1
    - Dst: BoxSize::Ext
      Src: /src/mp4san/mp4san/src/parse/header.rs:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 2
    argNames:
    - box_type
    - data_size
    argTypes:
    - BoxType
    - u64
    constantsTouched: []
    func_position:
      end: 87
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 87
    functionName: BoxHeader::with_data_size
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 4
    functionsReached:
    - Self::checked_add
    - Ok
    - Self::with_u32_data_size
    - BoxSize::Ext
    - bail_attach
    - encoded_len
    linkageType: ''
    returnType: Result
    signature: 'pub fn with_data_size(box_type: BoxType, data_size: u64) -> Result<Self,
      ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - box_type
    argTypes:
    - BoxType
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: BoxHeader::until_eof
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub const fn until_eof(box_type: BoxType) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::read
      Src: /src/mp4san/mp4san/src/parse/header.rs:95,1
    - Dst: sync::buf_async_reader
      Src: /src/mp4san/mp4san/src/parse/header.rs:95,1
    - Dst: Poll::now_or_never
      Src: /src/mp4san/mp4san/src/parse/header.rs:95,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/parse/header.rs:95,1
    - Dst: map_err
      Src: /src/mp4san/mp4san/src/parse/header.rs:95,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/parse/header.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - input
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 102
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: BoxHeader::parse
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 4
    functionsReached:
    - Self::read
    - report_attach
    - map_err
    - Poll::now_or_never
    - sync::buf_async_reader
    - unwrap
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse<B: Buf + Unpin>(input: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: R::read_exact
      Src: /src/mp4san/mp4san/src/parse/header.rs:108,1
    - Dst: FourCC::read
      Src: /src/mp4san/mp4san/src/parse/header.rs:110,1
    - Dst: u32::from_be_bytes
      Src: /src/mp4san/mp4san/src/parse/header.rs:112,1
    - Dst: R::read_exact
      Src: /src/mp4san/mp4san/src/parse/header.rs:116,1
    - Dst: BoxSize::Ext
      Src: /src/mp4san/mp4san/src/parse/header.rs:117,1
    - Dst: u64::from_be_bytes
      Src: /src/mp4san/mp4san/src/parse/header.rs:117,1
    - Dst: BoxSize::Size
      Src: /src/mp4san/mp4san/src/parse/header.rs:119,1
    - Dst: R::read_exact
      Src: /src/mp4san/mp4san/src/parse/header.rs:125,1
    - Dst: BoxType::Uuid
      Src: /src/mp4san/mp4san/src/parse/header.rs:126,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/parse/header.rs:128,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/header.rs:131,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 38
    argCount: 1
    argNames:
    - input
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 132
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 132
    functionName: BoxHeader::read
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 1
    functionsReached:
    - FourCC::read
    - u64::from_be_bytes
    - R::read_exact
    - Ok
    - BoxType::Uuid
    - BoxSize::Size
    - BoxSize::Ext
    - u32::from_be_bytes
    - into
    linkageType: ''
    returnType: io::Result
    signature: 'pub(crate) async fn read<R: AsyncRead>(input: R) -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxSize::Size
      Src: /src/mp4san/mp4san/src/parse/header.rs:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - actual_box_size
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: BoxHeader::overwrite_size
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 1
    functionsReached:
    - BoxSize::Size
    linkageType: ''
    returnType: void
    signature: 'pub fn overwrite_size(&mut self, actual_box_size: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FourCC::size
      Src: /src/mp4san/mp4san/src/parse/header.rs:140,1
    - Dst: size_of::<u32>
      Src: /src/mp4san/mp4san/src/parse/header.rs:140,1
    - Dst: size_of::<u64>
      Src: /src/mp4san/mp4san/src/parse/header.rs:142,1
    - Dst: size_of::<BoxUuid>
      Src: /src/mp4san/mp4san/src/parse/header.rs:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: BoxHeader::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 4
    functionsReached:
    - FourCC::size
    - size_of::<BoxUuid>
    - size_of::<u32>
    - size_of::<u64>
    linkageType: ''
    returnType: u64
    signature: pub const fn encoded_len(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/mp4san/mp4san/src/parse/header.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 14
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: BoxHeader::box_size
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: Option
    signature: pub fn box_size(&self) -> Option<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/mp4san/mp4san/src/parse/header.rs:155,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/header.rs:156,1
    - Dst: checked_sub
      Src: /src/mp4san/mp4san/src/parse/header.rs:157,1
    - Dst: BoxHeader::encoded_len
      Src: /src/mp4san/mp4san/src/parse/header.rs:158,1
    - Dst: ok_or_else
      Src: /src/mp4san/mp4san/src/parse/header.rs:157,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/parse/header.rs:160,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/header.rs:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 14
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: BoxHeader::box_data_size
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 5
    functionsReached:
    - checked_sub
    - size
    - Ok
    - report_attach
    - map
    - ok_or_else
    - BoxHeader::encoded_len
    linkageType: ''
    returnType: Result
    signature: pub fn box_data_size(&self) -> Result<Option<u64>, ParseError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: BoxHeader::box_type
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BoxType
    signature: pub const fn box_type(&self) -> BoxType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/parse/header.rs:176,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/parse/header.rs:177,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/parse/header.rs:178,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/parse/header.rs:182,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/parse/header.rs:183,1
    - Dst: B::put_u64
      Src: /src/mp4san/mp4san/src/parse/header.rs:187,1
    - Dst: B::put
      Src: /src/mp4san/mp4san/src/parse/header.rs:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 193
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 193
    functionName: BoxHeader::put_buf
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 2
    functionsReached:
    - B::put_u32
    - put_buf
    - B::put
    - B::put_u64
    linkageType: ''
    returnType: void
    signature: 'pub fn put_buf<B: BufMut>(&self, mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/mp4san/mp4san/src/parse/header.rs:201,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/parse/header.rs:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    functionName: BoxSize::size
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub const fn size(&self) -> Option<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 236
    functionName: box_type
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: BoxUuid::fmt
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: FullBoxHeader::default
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub const fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/header.rs:284,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/header.rs:289,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/header.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: FullBoxHeader::ensure_eq
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ensure_attach
    linkageType: ''
    returnType: Result
    signature: 'pub fn ensure_eq(&self, other: &Self) -> Result<(), ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u8::parse
      Src: /src/mp4san/mp4san/src/parse/header.rs:300,1
    - Dst: <[u8; 3]>::parse
      Src: /src/mp4san/mp4san/src/parse/header.rs:301,1
    - Dst: u32::from_be_bytes
      Src: /src/mp4san/mp4san/src/parse/header.rs:302,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/header.rs:303,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 5
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: FullBoxHeader::parse
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 1
    functionsReached:
    - Ok
    - <[u8; 3]>::parse
    - u8::parse
    - u32::from_be_bytes
    linkageType: ''
    returnType: Result
    signature: 'fn parse<B: Buf>(mut buf: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: FullBoxHeader::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn encoded_len() -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: B::put_u8
      Src: /src/mp4san/mp4san/src/parse/header.rs:311,1
    - Dst: B::put_uint
      Src: /src/mp4san/mp4san/src/parse/header.rs:312,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/parse/header.rs:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: FullBoxHeader::put_buf
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - B::put_uint
    - B::put_u8
    - into
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - ConstFullBoxHeader<VERSION, FLAGS>
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: FullBoxHeader::from
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(_: ConstFullBoxHeader<VERSION, FLAGS>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::parse
      Src: /src/mp4san/mp4san/src/parse/header.rs:324,1
    - Dst: ensure_eq
      Src: /src/mp4san/mp4san/src/parse/header.rs:324,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/parse/header.rs:324,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/header.rs:325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 6
    functionLinenumber: 323
    functionLinenumberEnd: 326
    functionName: ConstFullBoxHeader::parse
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - Ok
    - FullBoxHeader::parse
    - into
    - ensure_eq
    linkageType: ''
    returnType: Result
    signature: 'fn parse<B: Buf>(buf: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::encoded_len
      Src: /src/mp4san/mp4san/src/parse/header.rs:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: ConstFullBoxHeader::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - FullBoxHeader::encoded_len
    linkageType: ''
    returnType: u64
    signature: fn encoded_len() -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: B::put_u8
      Src: /src/mp4san/mp4san/src/parse/header.rs:333,1
    - Dst: B::put_uint
      Src: /src/mp4san/mp4san/src/parse/header.rs:334,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/parse/header.rs:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: ConstFullBoxHeader::put_buf
    functionSourceFile: /src/mp4san/mp4san/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - B::put_uint
    - B::put_u8
    - into
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/parse/mdia.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - children
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: MdiaBox::with_children
    functionSourceFile: /src/mp4san/mp4san/src/parse/mdia.rs
    functionUses: 1
    functionsReached:
    - Self::into
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn with_children<C: Into<Boxes>>(children: C) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_one_mut
      Src: /src/mp4san/mp4san/src/parse/mdia.rs:24,1
    - Dst: while_parsing_child
      Src: /src/mp4san/mp4san/src/parse/mdia.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 9
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: MdiaBox::minf_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/mdia.rs
    functionUses: 0
    functionsReached:
    - while_parsing_child
    - get_one_mut
    linkageType: ''
    returnType: Result
    signature: pub fn minf_mut(&mut self) -> Result<&mut MinfBox, ParseError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: remaining
      Src: /src/mp4san/mp4san/src/parse/integers.rs:4,1
    - Dst: Self::encoded_len
      Src: /src/mp4san/mp4san/src/parse/integers.rs:4,1
    - Dst: bail_attach
      Src: /src/mp4san/mp4san/src/parse/integers.rs:5,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/integers.rs:7,1
    - Dst: size_of::<Self>
      Src: /src/mp4san/mp4san/src/parse/integers.rs:11,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 39
    functionName: mp4_int
    functionSourceFile: /src/mp4san/mp4san/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - Self::encoded_len
    - remaining
    - Ok
    - size_of::<Self>
    - bail_attach
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/integers.rs:54,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/integers.rs:59,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/integers.rs:59,1
    - Dst: T::parse
      Src: /src/mp4san/mp4san/src/parse/integers.rs:59,1
    - Dst: Result::unwrap_or_else
      Src: /src/mp4san/mp4san/src/parse/integers.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 4
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: '[T; N]::parse'
    functionSourceFile: /src/mp4san/mp4san/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Result::unwrap_or_else
    - T::parse
    - ensure_attach
    - map
    linkageType: ''
    returnType: Result
    signature: 'fn parse<B: Buf>(mut buf: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<Self>
      Src: /src/mp4san/mp4san/src/parse/integers.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: '[T; N]::encoded_len'
    functionSourceFile: /src/mp4san/mp4san/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - size_of::<Self>
    linkageType: ''
    returnType: u64
    signature: fn encoded_len() -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_mp4_value
      Src: /src/mp4san/mp4san/src/parse/integers.rs:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: '[T; N]::put_buf'
    functionSourceFile: /src/mp4san/mp4san/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - put_mp4_value
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/integers.rs:73,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/integers.rs:78,1
    - Dst: FourCC::parse
      Src: /src/mp4san/webpsan/src/parse/integers.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: FourCC::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 3
    functionsReached:
    - Ok
    - mediasan_common::ensure_attach
    - FourCC::parse
    linkageType: ''
    returnType: Result
    signature: 'fn parse<B: Buf>(buf: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::size
      Src: /src/mp4san/mp4san/src/parse/integers.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 14
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: FourCC::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - Self::size
    linkageType: ''
    returnType: u64
    signature: fn encoded_len() -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FourCC::put_buf
      Src: /src/mp4san/webpsan/src/parse/integers.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: FourCC::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 2
    functionsReached:
    - FourCC::put_buf
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - children
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: StblBox::with_children
    functionSourceFile: /src/mp4san/mp4san/src/parse/stbl.rs
    functionUses: 1
    functionsReached:
    - Self::into
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn with_children<C: Into<Boxes>>(children: C) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: box_types
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:31,1
    - Dst: any
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:31,1
    - Dst: box_types
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:32,1
    - Dst: any
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:32,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:33,1
    - Dst: get_one_mut
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:40,1
    - Dst: while_parsing_child
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:40,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:40,1
    - Dst: get_one_mut
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:45,1
    - Dst: while_parsing_child
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:45,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 30
    functionDepth: 9
    functionLinenumber: 30
    functionLinenumberEnd: 50
    functionName: StblBox::co_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/stbl.rs
    functionUses: 0
    functionsReached:
    - any
    - ensure_attach
    - map
    - box_types
    - while_parsing_child
    - get_one_mut
    linkageType: ''
    returnType: Result
    signature: pub fn co_mut(&mut self) -> Result<StblCoMut<'_>, ParseError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entry_count
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:60,1
    - Dst: entry_count
      Src: /src/mp4san/mp4san/src/parse/stbl.rs:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: StblCoMut::entry_count
    functionSourceFile: /src/mp4san/mp4san/src/parse/stbl.rs
    functionUses: 0
    functionsReached:
    - entry_count
    linkageType: ''
    returnType: u32
    signature: pub fn entry_count(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entries
      Src: /src/mp4san/mp4san/src/parse/array.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: BoundedArray::entries
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - entries
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn entries(&self) -> impl Iterator<Item = ArrayEntry<'_, T>> +
      ExactSizeIterator + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entries_mut
      Src: /src/mp4san/mp4san/src/parse/array.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: BoundedArray::entries_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - entries_mut
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn entries_mut(&mut self) -> impl Iterator<Item = ArrayEntryMut<'_,
      T>> + ExactSizeIterator + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/mp4san/mp4san/src/parse/array.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: BoundedArray::entry_count
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: C
    signature: pub fn entry_count(&self) -> C
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: C::parse
      Src: /src/mp4san/mp4san/src/parse/array.rs:61,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/mp4san/src/parse/array.rs:61,1
    - Dst: T::encoded_len
      Src: /src/mp4san/mp4san/src/parse/array.rs:62,1
    - Dst: checked_mul
      Src: /src/mp4san/mp4san/src/parse/array.rs:62,1
    - Dst: u32::clone
      Src: /src/mp4san/mp4san/src/parse/array.rs:63,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/parse/array.rs:63,1
    - Dst: ok_or_else
      Src: /src/mp4san/mp4san/src/parse/array.rs:62,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/parse/array.rs:64,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/array.rs:65,1
    - Dst: split_to
      Src: /src/mp4san/mp4san/src/parse/array.rs:70,1
    - Dst: UnboundedArray::parse
      Src: /src/mp4san/mp4san/src/parse/array.rs:71,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/array.rs:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 73
      start: 60
    functionDepth: 4
    functionLinenumber: 60
    functionLinenumberEnd: 73
    functionName: BoundedArray::parse
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - C::parse
    - u32::clone
    - split_to
    - checked_mul
    - Ok
    - report_attach
    - ensure_attach
    - Result::while_parsing_type
    - T::encoded_len
    - ok_or_else
    - into
    - UnboundedArray::parse
    linkageType: ''
    returnType: Result
    signature: 'fn parse(buf: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: C::encoded_len
      Src: /src/mp4san/mp4san/src/parse/array.rs:76,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/parse/array.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 15
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: BoundedArray::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - C::encoded_len
    - encoded_len
    linkageType: ''
    returnType: u64
    signature: fn encoded_len(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_mp4_value
      Src: /src/mp4san/mp4san/src/parse/array.rs:80,1
    - Dst: put_slice
      Src: /src/mp4san/mp4san/src/parse/array.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: BoundedArray::put_buf
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - put_mp4_value
    - put_slice
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: UnboundedArray::from_iter
      Src: /src/mp4san/mp4san/src/parse/array.rs:87,1
    - Dst: Self::entry_count
      Src: /src/mp4san/mp4san/src/parse/array.rs:88,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/parse/array.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - entries
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: BoundedArray::from_iter
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - into
    - Self::entry_count
    - UnboundedArray::from_iter
    linkageType: ''
    returnType: Self
    signature: 'fn from_iter<I: IntoIterator<Item = T>>(entries: I) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chunks_exact
      Src: /src/mp4san/mp4san/src/parse/array.rs:98,1
    - Dst: T::encoded_len
      Src: /src/mp4san/mp4san/src/parse/array.rs:99,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/array.rs:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: UnboundedArray::entries
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - map
    - chunks_exact
    - T::encoded_len
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn entries(&self) -> impl Iterator<Item = ArrayEntry<'_, T>> +
      ExactSizeIterator + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: chunks_exact_mut
      Src: /src/mp4san/mp4san/src/parse/array.rs:104,1
    - Dst: T::encoded_len
      Src: /src/mp4san/mp4san/src/parse/array.rs:105,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/array.rs:104,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: UnboundedArray::entries_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - chunks_exact_mut
    - T::encoded_len
    - map
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn entries_mut(&mut self) -> impl Iterator<Item = ArrayEntryMut<'_,
      T>> + ExactSizeIterator + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/mp4san/mp4san/src/parse/array.rs:110,1
    - Dst: T::encoded_len
      Src: /src/mp4san/mp4san/src/parse/array.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: UnboundedArray::entry_count
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - T::encoded_len
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn entry_count(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/mp4san/mp4san/src/parse/array.rs:116,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/array.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    functionName: UnboundedArray::parse
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 1
    functionsReached:
    - Ok
    - split
    linkageType: ''
    returnType: Result
    signature: 'fn parse(buf: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/mp4san/mp4san/src/parse/array.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: UnboundedArray::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: u64
    signature: fn encoded_len(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_slice
      Src: /src/mp4san/mp4san/src/parse/array.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: UnboundedArray::put_buf
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - put_slice
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/parse/array.rs:131,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/parse/array.rs:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - entries
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: UnboundedArray::from_iter
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 1
    functionsReached:
    - put_buf
    - BytesMut::new
    linkageType: ''
    returnType: Self
    signature: 'fn from_iter<I: IntoIterator<Item = T>>(entries: I) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::parse
      Src: /src/mp4san/mp4san/src/parse/array.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: ArrayEntry::get
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - T::parse
    linkageType: ''
    returnType: Result
    signature: pub fn get(&self) -> Result<T, ParseError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::parse
      Src: /src/mp4san/mp4san/src/parse/array.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 4
    functionLinenumber: 154
    functionLinenumberEnd: 156
    functionName: ArrayEntryMut::get
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - T::parse
    linkageType: ''
    returnType: Result
    signature: pub fn get(&self) -> Result<T, ParseError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_mp4_value
      Src: /src/mp4san/mp4san/src/parse/array.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 160
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 160
    functionName: ArrayEntryMut::set
    functionSourceFile: /src/mp4san/mp4san/src/parse/array.rs
    functionUses: 0
    functionsReached:
    - put_mp4_value
    linkageType: ''
    returnType: void
    signature: 'pub fn set(&mut self, value: T)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __ParseResultExt::attach_printable
      Src: /src/mp4san/mp4san/src/parse/error.rs:55,1
    - Dst: WhileParsingBox
      Src: /src/mp4san/mp4san/src/parse/error.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - box_type
    argTypes:
    - BoxType
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: __ParseResultExt::while_parsing_box
    functionSourceFile: /src/mp4san/mp4san/src/parse/error.rs
    functionUses: 0
    functionsReached:
    - __ParseResultExt::attach_printable
    - WhileParsingBox
    linkageType: ''
    returnType: Self
    signature: 'fn while_parsing_box(self, box_type: BoxType) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __ParseResultExt::attach_printable
      Src: /src/mp4san/mp4san/src/parse/error.rs:62,1
    - Dst: WhileParsingField
      Src: /src/mp4san/mp4san/src/parse/error.rs:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - box_type
    - field_name
    argTypes:
    - BoxType
    - T
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: __ParseResultExt::while_parsing_field
    functionSourceFile: /src/mp4san/mp4san/src/parse/error.rs
    functionUses: 0
    functionsReached:
    - __ParseResultExt::attach_printable
    - WhileParsingField
    linkageType: ''
    returnType: Self
    signature: 'fn while_parsing_field<T>(self, box_type: BoxType, field_name: T)
      -> SelfwhereT: Display + Debug + Send + Sync + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __ParseResultExt::attach_printable
      Src: /src/mp4san/mp4san/src/parse/error.rs:66,1
    - Dst: WhileParsingChild
      Src: /src/mp4san/mp4san/src/parse/error.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - box_type
    - child_box_type
    argTypes:
    - BoxType
    - BoxType
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: __ParseResultExt::while_parsing_child
    functionSourceFile: /src/mp4san/mp4san/src/parse/error.rs
    functionUses: 0
    functionsReached:
    - __ParseResultExt::attach_printable
    - WhileParsingChild
    linkageType: ''
    returnType: Self
    signature: 'fn while_parsing_child(self, box_type: BoxType, child_box_type: BoxType)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: __ParseResultExt::attach_printable
      Src: /src/mp4san/mp4san/src/parse/error.rs:74,1
    - Dst: WhereEq
      Src: /src/mp4san/mp4san/src/parse/error.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - T
    - U
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: __ParseResultExt::where_eq
    functionSourceFile: /src/mp4san/mp4san/src/parse/error.rs
    functionUses: 0
    functionsReached:
    - __ParseResultExt::attach_printable
    - WhereEq
    linkageType: ''
    returnType: Self
    signature: 'fn where_eq<T, U>(self, lhs: T, rhs: U) -> SelfwhereT: Display + Debug
      + Send + Sync + ''static,U: Display + Debug + Send + Sync + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entries_mut
      Src: /src/mp4san/mp4san/src/parse/co64.rs:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: Co64Box::entries_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/co64.rs
    functionUses: 0
    functionsReached:
    - entries_mut
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn entries_mut(&mut self) -> impl Iterator<Item = ArrayEntryMut<'_,
      u64>> + ExactSizeIterator + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entry_count
      Src: /src/mp4san/mp4san/src/parse/co64.rs:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: Co64Box::entry_count
    functionSourceFile: /src/mp4san/mp4san/src/parse/co64.rs
    functionUses: 0
    functionsReached:
    - entry_count
    linkageType: ''
    returnType: u32
    signature: pub fn entry_count(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/mp4san/src/parse/co64.rs:24,1
    - Dst: impl Iterator::into_iter
      Src: /src/mp4san/mp4san/src/parse/co64.rs:24,1
    - Dst: collect
      Src: /src/mp4san/mp4san/src/parse/co64.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - entries
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Co64Box::from_iter
    functionSourceFile: /src/mp4san/mp4san/src/parse/co64.rs
    functionUses: 1
    functionsReached:
    - collect
    - Default::default
    - impl Iterator::into_iter
    linkageType: ''
    returnType: Self
    signature: 'fn from_iter<I: IntoIterator<Item = u64>>(entries: I) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/parse/stco.rs:38,1
    - Dst: StcoBox::default
      Src: /src/mp4san/mp4san/src/parse/stco.rs:39,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/parse/stco.rs:39,1
    - Dst: StcoBox::parse
      Src: /src/mp4san/mp4san/src/parse/stco.rs:40,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/parse/stco.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: test::roundtrip
    functionSourceFile: /src/mp4san/mp4san/src/parse/stco.rs
    functionUses: 0
    functionsReached:
    - StcoBox::parse
    - Self::put_buf
    - StcoBox::default
    - unwrap
    - BytesMut::new
    linkageType: ''
    returnType: void
    signature: fn roundtrip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/parse/moov.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - children
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: MoovBox::with_children
    functionSourceFile: /src/mp4san/mp4san/src/parse/moov.rs
    functionUses: 2
    functionsReached:
    - Self::into
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn with_children<C: Into<Boxes<MoovChildrenValidator>>>(children:
      C) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/mp4san/mp4san/src/parse/moov.rs:25,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/moov.rs:25,1
    - Dst: while_parsing_child
      Src: /src/mp4san/mp4san/src/parse/moov.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 8
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: MoovBox::traks
    functionSourceFile: /src/mp4san/mp4san/src/parse/moov.rs
    functionUses: 0
    functionsReached:
    - map
    - while_parsing_child
    - get_mut
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn traks(&mut self) -> impl Iterator<Item = Result<&mut TrakBox,
      ParseError>> + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/moov.rs:33,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/moov.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - children
    argTypes:
    - '&Boxes<V>'
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: MoovChildrenValidator::validate
    functionSourceFile: /src/mp4san/mp4san/src/parse/moov.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ensure_attach
    linkageType: ''
    returnType: Result
    signature: 'fn validate<V>(children: &Boxes<V>) -> Result<(), ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/parse/moov.rs:51,1
    - Dst: TrakBox::with_children
      Src: /src/mp4san/mp4san/src/parse/moov.rs:51,1
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/parse/moov.rs:51,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/parse/moov.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: test::test_trak
    functionSourceFile: /src/mp4san/mp4san/src/parse/moov.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Self::into
    - TrakBox::with_children
    - Mp4Box::with_data
    linkageType: ''
    returnType: Mp4Box
    signature: fn test_trak() -> Mp4Box<TrakBox>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/parse/moov.rs:63,1
    - Dst: MoovBox::with_children
      Src: /src/mp4san/mp4san/src/parse/moov.rs:64,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/parse/moov.rs:64,1
    - Dst: MoovBox::parse
      Src: /src/mp4san/mp4san/src/parse/moov.rs:65,1
    - Dst: unwrap_err
      Src: /src/mp4san/mp4san/src/parse/moov.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 62
    functionDepth: 5
    functionLinenumber: 62
    functionLinenumberEnd: 70
    functionName: test::no_traks
    functionSourceFile: /src/mp4san/mp4san/src/parse/moov.rs
    functionUses: 0
    functionsReached:
    - MoovBox::parse
    - Self::put_buf
    - BytesMut::new
    - unwrap_err
    - MoovBox::with_children
    linkageType: ''
    returnType: void
    signature: fn no_traks()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/parse/value.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&T'
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Mp4ValueWriterExt::put_mp4_value
    functionSourceFile: /src/mp4san/mp4san/src/parse/value.rs
    functionUses: 0
    functionsReached:
    - put_buf
    linkageType: ''
    returnType: void
    signature: 'fn put_mp4_value<T: Mp4Value>(&mut self, value: &T)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/integers.rs:97,1
    - Dst: get_uint_le
      Src: /src/mp4san/webpsan/src/parse/integers.rs:102,1
    - Dst: try_into
      Src: /src/mp4san/webpsan/src/parse/integers.rs:103,1
    - Dst: unwrap_or_else
      Src: /src/mp4san/webpsan/src/parse/integers.rs:103,1
    - Dst: Self::from_bits
      Src: /src/mp4san/webpsan/src/parse/integers.rs:104,1
    - Dst: ok_or_else
      Src: /src/mp4san/webpsan/src/parse/integers.rs:104,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/parse/integers.rs:105,1
    - Dst: while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/integers.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: T::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 5
    functionsReached:
    - ok_or_else
    - mediasan_common::ensure_attach
    - try_into
    - while_parsing_type
    - Self::from_bits
    - unwrap_or_else
    - mediasan_common::report_attach
    - get_uint_le
    linkageType: ''
    returnType: Result
    signature: 'fn parse<B: Buf>(mut buf: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::encoded_len
      Src: /src/mp4san/mp4san/src/parse/value.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: T::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/value.rs
    functionUses: 4
    functionsReached:
    - Self::encoded_len
    linkageType: ''
    returnType: u64
    signature: fn encoded_len(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_uint
      Src: /src/mp4san/webpsan/src/parse/integers.rs:110,1
    - Dst: T::bits
      Src: /src/mp4san/webpsan/src/parse/integers.rs:110,1
    - Dst: u32::into
      Src: /src/mp4san/webpsan/src/parse/integers.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: T::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - T::bits
    - put_uint
    - u32::into
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mp4Value::parse
      Src: /src/mp4san/mp4san/src/parse/value.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 5
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: BytesMut::get_mp4_value
    functionSourceFile: /src/mp4san/mp4san/src/parse/value.rs
    functionUses: 0
    functionsReached:
    - Mp4Value::parse
    linkageType: ''
    returnType: Result
    signature: 'fn get_mp4_value<T: Mp4Value>(&mut self) -> Result<T, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/parse/minf.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - children
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: MinfBox::with_children
    functionSourceFile: /src/mp4san/mp4san/src/parse/minf.rs
    functionUses: 1
    functionsReached:
    - Self::into
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn with_children<C: Into<Boxes>>(children: C) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_one_mut
      Src: /src/mp4san/mp4san/src/parse/minf.rs:24,1
    - Dst: while_parsing_child
      Src: /src/mp4san/mp4san/src/parse/minf.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 9
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: MinfBox::stbl_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/minf.rs
    functionUses: 0
    functionsReached:
    - while_parsing_child
    - get_one_mut
    linkageType: ''
    returnType: Result
    signature: pub fn stbl_mut(&mut self) -> Result<&mut StblBox, ParseError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entries_mut
      Src: /src/mp4san/mp4san/src/parse/stco.rs:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: StcoBox::entries_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/stco.rs
    functionUses: 0
    functionsReached:
    - entries_mut
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn entries_mut(&mut self) -> impl Iterator<Item = ArrayEntryMut<'_,
      u32>> + ExactSizeIterator + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entry_count
      Src: /src/mp4san/mp4san/src/parse/stco.rs:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: StcoBox::entry_count
    functionSourceFile: /src/mp4san/mp4san/src/parse/stco.rs
    functionUses: 0
    functionsReached:
    - entry_count
    linkageType: ''
    returnType: u32
    signature: pub fn entry_count(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/mp4san/src/parse/stco.rs:24,1
    - Dst: impl Iterator::into_iter
      Src: /src/mp4san/mp4san/src/parse/stco.rs:24,1
    - Dst: collect
      Src: /src/mp4san/mp4san/src/parse/stco.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - entries
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: StcoBox::from_iter
    functionSourceFile: /src/mp4san/mp4san/src/parse/stco.rs
    functionUses: 1
    functionsReached:
    - collect
    - Default::default
    - impl Iterator::into_iter
    linkageType: ''
    returnType: Self
    signature: 'fn from_iter<I: IntoIterator<Item = u32>>(entries: I) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/parse/trak.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - children
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: TrakBox::with_children
    functionSourceFile: /src/mp4san/mp4san/src/parse/trak.rs
    functionUses: 2
    functionsReached:
    - Self::into
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn with_children<C: Into<Boxes>>(children: C) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TrakBox::mdia_mut
      Src: /src/mp4san/mp4san/src/parse/trak.rs:24,1
    - Dst: minf_mut
      Src: /src/mp4san/mp4san/src/parse/trak.rs:24,1
    - Dst: stbl_mut
      Src: /src/mp4san/mp4san/src/parse/trak.rs:24,1
    - Dst: co_mut
      Src: /src/mp4san/mp4san/src/parse/trak.rs:24,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 10
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: TrakBox::co_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/trak.rs
    functionUses: 0
    functionsReached:
    - TrakBox::mdia_mut
    - minf_mut
    - co_mut
    - stbl_mut
    linkageType: ''
    returnType: Result
    signature: pub fn co_mut(&mut self) -> Result<StblCoMut<'_>, ParseError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_one_mut
      Src: /src/mp4san/mp4san/src/parse/trak.rs:28,1
    - Dst: while_parsing_child
      Src: /src/mp4san/mp4san/src/parse/trak.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 9
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: TrakBox::mdia_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/trak.rs
    functionUses: 1
    functionsReached:
    - while_parsing_child
    - get_one_mut
    linkageType: ''
    returnType: Result
    signature: pub fn mdia_mut(&mut self) -> Result<&mut MdiaBox, ParseError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/mp4san/mp4san/src/parse/ftyp.rs:15,1
    - Dst: collect
      Src: /src/mp4san/mp4san/src/parse/ftyp.rs:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - major_brand
    - minor_version
    - compatible_brands
    argTypes:
    - FourCC
    - u32
    - impl IntoIterator<Item = FourCC>
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: FtypBox::new
    functionSourceFile: /src/mp4san/mp4san/src/parse/ftyp.rs
    functionUses: 1
    functionsReached:
    - collect
    - into_iter
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(major_brand: FourCC, minor_version: u32, compatible_brands:
      impl IntoIterator<Item = FourCC>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entries
      Src: /src/mp4san/mp4san/src/parse/ftyp.rs:19,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/ftyp.rs:19,1
    - Dst: get
      Src: /src/mp4san/mp4san/src/parse/ftyp.rs:19,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/parse/ftyp.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 5
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: FtypBox::compatible_brands
    functionSourceFile: /src/mp4san/mp4san/src/parse/ftyp.rs
    functionUses: 0
    functionsReached:
    - map
    - get
    - unwrap
    - entries
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn compatible_brands(&self) -> impl Iterator<Item = FourCC> + ExactSizeIterator
      + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _boxes
    argTypes:
    - '&Boxes<V>'
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: BoxesValidator::validate
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn validate<V>(_boxes: &Boxes<V>) -> Result<(), ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxHeader::with_data_size
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:73,1
    - Dst: T::box_type
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:73,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:73,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - data
    argTypes:
    - BoxData<T>
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: Mp4Box::with_data
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 4
    functionsReached:
    - Ok
    - T::box_type
    - encoded_len
    - BoxHeader::with_data_size
    linkageType: ''
    returnType: Result
    signature: 'pub fn with_data(data: BoxData<T>) -> Result<Self, ParseError>whereT:
      ParseBox,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxHeader::box_data_size
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:87,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:89,1
    - Dst: stream_len
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:89,1
    - Dst: impl AsyncRead + Unpin::as_mut
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:89,1
    - Dst: stream_position
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:89,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:92,1
    - Dst: BytesMut::zeroed
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:99,1
    - Dst: impl AsyncRead + Unpin::read_exact
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:100,1
    - Dst: map_eof
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:100,1
    - Dst: Error::Parse
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:101,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:101,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:106,1
    - Dst: BoxData::Bytes
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - reader
    - header
    - max_size
    argTypes:
    - Pin<&mut BufReader<R>>
    - BoxHeader
    - u64
    constantsTouched: []
    func_position:
      end: 107
      start: 78
    functionDepth: 15
    functionLinenumber: 78
    functionLinenumberEnd: 107
    functionName: Mp4Box::read_data
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 1
    functionsReached:
    - BytesMut::zeroed
    - impl AsyncRead + Unpin::as_mut
    - impl AsyncRead + Unpin::read_exact
    - stream_len
    - Ok
    - report_attach
    - BoxHeader::box_data_size
    - BoxData::Bytes
    - ensure_attach
    - Error::Parse
    - map_eof
    - stream_position
    linkageType: ''
    returnType: StdResult
    signature: 'pub(crate) async fn read_data<R>(mut reader: Pin<&mut BufReader<R>>,header:
      BoxHeader,max_size: u64,) -> StdResult<Self, Error>whereR: AsyncRead + AsyncSkip,T:
      ParseBox,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:110,1
    - Dst: box_data_size
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:111,1
    - Dst: BoxHeader::with_data_size
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:113,1
    - Dst: box_type
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:113,1
    - Dst: Result::expect
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 109
    functionDepth: 15
    functionLinenumber: 109
    functionLinenumberEnd: 118
    functionName: Mp4Box::calculated_header
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 2
    functionsReached:
    - Result::expect
    - encoded_len
    - BoxHeader::with_data_size
    - box_type
    - box_data_size
    linkageType: ''
    returnType: BoxHeader
    signature: pub fn calculated_header(&self) -> BoxHeader
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: box_type
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:121,1
    - Dst: U::box_type
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:121,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:122,1
    - Dst: parse_as
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 6
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: Mp4Box::parse_data_as
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - Ok
    - parse_as
    - U::box_type
    - box_type
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_data_as<U: ParseBox + ParsedBox + Into<Box<T>>>(&mut
      self) -> Result<Option<&mut U>, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxHeader::parse
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:130,1
    - Dst: Result::attach_printable
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:130,1
    - Dst: WhileParsingType::new::<Self>
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:130,1
    - Dst: BoxData::get_from_bytes_mut
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:131,1
    - Dst: Result::attach_printable
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:131,1
    - Dst: WhileParsingType::new::<Self>
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:131,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:132,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 16
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: Mp4Box::parse
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 1
    functionsReached:
    - Ok
    - WhileParsingType::new::<Self>
    - BoxHeader::parse
    - Result::attach_printable
    - BoxData::get_from_bytes_mut
    linkageType: ''
    returnType: Result
    signature: 'fn parse(mut buf: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mp4Box::calculated_header
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:136,1
    - Dst: BoxHeader::encoded_len
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:136,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 16
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Mp4Box::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - BoxHeader::encoded_len
    - Mp4Box::calculated_header
    - encoded_len
    linkageType: ''
    returnType: u64
    signature: fn encoded_len(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Mp4Box::calculated_header
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:140,1
    - Dst: BoxHeader::put_buf
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:140,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 16
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: Mp4Box::put_buf
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 4
    functionsReached:
    - put_buf
    - BoxHeader::put_buf
    - Mp4Box::calculated_header
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxHeader::with_data_size
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:147,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:147,1
    - Dst: Result::expect
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:147,1
    - Dst: BoxData::Bytes
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - box_type
    - bytes
    argTypes:
    - BoxType
    - BytesMut
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 4
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: AnyMp4Box::with_bytes
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - BoxData::Bytes
    - Result::expect
    - len
    - BoxHeader::with_data_size
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_bytes(box_type: BoxType, bytes: BytesMut) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - from
    argTypes:
    - Mp4Box<T>
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: AnyMp4Box::from
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - into
    linkageType: ''
    returnType: Self
    signature: 'fn from(from: Mp4Box<T>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxHeader::box_data_size
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:164,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:165,1
    - Dst: Self::Bytes
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:165,1
    - Dst: std::mem::take
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:165,1
    - Dst: Result::try_into
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:166,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:168,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:173,1
    - Dst: Self::Bytes
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:173,1
    - Dst: split_to
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:173,1
    - Dst: Err
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:175,1
    - Dst: report_attach
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - buf
    - header
    argTypes:
    - '&mut BytesMut'
    - '&BoxHeader'
    constantsTouched: []
    func_position:
      end: 182
      start: 163
    functionDepth: 15
    functionLinenumber: 163
    functionLinenumberEnd: 182
    functionName: BoxData::get_from_bytes_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 1
    functionsReached:
    - split_to
    - Ok
    - report_attach
    - BoxHeader::box_data_size
    - Err
    - ensure_attach
    - Self::Bytes
    - Result::try_into
    - std::mem::take
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_from_bytes_mut(buf: &mut BytesMut, header: &BoxHeader)
      -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::parse
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:189,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:189,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:190,1
    - Dst: Self::Parsed
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:196,1
    - Dst: Box::new
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:196,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 202
    functionName: BoxData::parse
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - Self::Parsed
    - Ok
    - ensure_attach
    - T::parse
    - Result::while_parsing_type
    - Box::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(&mut self) -> Result<&mut T, ParseError>whereT: ParseBox
      + Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U::parse
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:206,1
    - Dst: while_parsing_type
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:206,1
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:207,1
    - Dst: Self::Parsed
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:213,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:213,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:219,1
    - Dst: <T>::as_any_mut
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:219,1
    - Dst: downcast_mut
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:219,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 223
      start: 204
    functionDepth: 5
    functionLinenumber: 204
    functionLinenumberEnd: 223
    functionName: BoxData::parse_as
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - Self::Parsed
    - Ok
    - ensure_attach
    - while_parsing_type
    - U::parse
    - downcast_mut
    - <T>::as_any_mut
    - into
    linkageType: ''
    returnType: Result
    signature: 'fn parse_as<U: ParseBox + ParsedBox + Into<Box<T>>>(&mut self) ->
      Result<Option<&mut U>, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:227,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 230
    functionName: BoxData::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - encoded_len
    - len
    linkageType: ''
    returnType: u64
    signature: pub fn encoded_len(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: B::put
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:234,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: BoxData::put_buf
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - put_buf
    - B::put
    linkageType: ''
    returnType: void
    signature: 'pub fn put_buf<B: BufMut>(&self, mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxData::Parsed
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:251,1
    - Dst: Box::new
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - from
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: BoxData::from
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - BoxData::Parsed
    linkageType: ''
    returnType: Self
    signature: 'fn from(from: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - from
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: Box::from
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - Box::new
    linkageType: ''
    returnType: Self
    signature: 'fn from(from: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:273,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:273,1
    - Dst: box_type
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: Boxes::box_types
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - map
    - box_type
    - iter
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn box_types(&self) -> impl Iterator<Item = BoxType> + ExactSizeIterator
      + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:277,1
    - Dst: flat_map
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:277,1
    - Dst: parse_data_as
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:279,1
    - Dst: transpose
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 276
    functionDepth: 7
    functionLinenumber: 276
    functionLinenumberEnd: 280
    functionName: Boxes::get_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 1
    functionsReached:
    - iter_mut
    - transpose
    - flat_map
    - parse_data_as
    linkageType: ''
    returnType: impl Iterator
    signature: 'pub fn get_mut<T: ParseBox + ParsedBox>(&mut self) -> impl Iterator<Item
      = Result<&mut T, ParseError>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ensure_attach
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:283,1
    - Dst: Boxes::get_mut
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:288,1
    - Dst: impl Iterator::next
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:288,1
    - Dst: Option::ok_or_else
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:288,1
    - Dst: ParseError::MissingRequiredBox
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:290,1
    - Dst: T::box_type
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 8
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: Boxes::get_one_mut
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - T::box_type
    - ensure_attach
    - ParseError::MissingRequiredBox
    - Boxes::get_mut
    - Option::ok_or_else
    - impl Iterator::next
    linkageType: ''
    returnType: Result
    signature: 'pub fn get_one_mut<T: ParseBox + ParsedBox>(&mut self) -> Result<&mut
      T, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:296,1
    - Dst: has_remaining
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:297,1
    - Dst: Self::push
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:298,1
    - Dst: Mp4Box::parse
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:298,1
    - Dst: V::validate
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:301,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:302,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 16
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: Boxes::parse
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - has_remaining
    - Vec::new
    - Ok
    - Mp4Box::parse
    - V::validate
    - Self::push
    linkageType: ''
    returnType: Result
    signature: 'fn parse(buf: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:306,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:306,1
    - Dst: sum
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 307
    functionName: Boxes::encoded_len
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - map
    - sum
    - iter
    linkageType: ''
    returnType: u64
    signature: fn encoded_len(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/parse/mp4box.rs:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: Boxes::put_buf
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached:
    - put_buf
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - boxes
    argTypes:
    - Vec<AnyMp4Box>
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: Boxes::from
    functionSourceFile: /src/mp4san/mp4san/src/parse/mp4box.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(boxes: Vec<AnyMp4Box>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/mp4san/mp4san/src/util/test.rs:28,1
    - Dst: to_vec
      Src: /src/mp4san/mp4san/src/util/test.rs:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - sanitized
    - data
    argTypes:
    - SanitizedMetadata
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: sanitized_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 2
    functionsReached:
    - to_vec
    - concat
    linkageType: ''
    returnType: Vec
    signature: 'pub fn sanitized_data(sanitized: SanitizedMetadata, data: &[u8]) ->
      Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:35,1
    - Dst: write_test_dinf_data
      Src: /src/mp4san/mp4san/src/util/test.rs:36,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: test_dinf
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 0
    functionsReached:
    - write_test_dinf_data
    - Mp4Box::with_bytes
    - BytesMut::new
    linkageType: ''
    returnType: AnyMp4Box
    signature: pub fn test_dinf() -> AnyMp4Box
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxHeader::with_u32_data_size
      Src: /src/mp4san/mp4san/src/util/test.rs:41,1
    - Dst: Self::encoded_len
      Src: /src/mp4san/mp4san/src/util/test.rs:41,1
    - Dst: iter::repeat
      Src: /src/mp4san/mp4san/src/util/test.rs:42,1
    - Dst: take
      Src: /src/mp4san/mp4san/src/util/test.rs:42,1
    - Dst: collect
      Src: /src/mp4san/mp4san/src/util/test.rs:42,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - name
    - len
    argTypes:
    - BoxType
    - u32
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 3
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: test_free
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 2
    functionsReached:
    - collect
    - take
    - iter::repeat
    - Self::encoded_len
    - BoxHeader::with_u32_data_size
    - Mp4Box::with_bytes
    linkageType: ''
    returnType: AnyMp4Box
    signature: 'pub fn test_free(name: BoxType, len: u32) -> AnyMp4Box'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/mp4san/src/util/test.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: test_ftyp
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 5
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: TestFtypBuilder
    signature: pub fn test_ftyp() -> TestFtypBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:51,1
    - Dst: write_hdlr_data
      Src: /src/mp4san/mp4san/src/util/test.rs:52,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - handler_type
    argTypes:
    - FourCC
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 5
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: test_hdlr
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - Mp4Box::with_bytes
    - BytesMut::new
    - write_hdlr_data
    linkageType: ''
    returnType: AnyMp4Box
    signature: 'pub fn test_hdlr(handler_type: FourCC) -> AnyMp4Box'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:57,1
    - Dst: write_test_mdhd_data
      Src: /src/mp4san/mp4san/src/util/test.rs:58,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 5
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: test_mdhd
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 0
    functionsReached:
    - Mp4Box::with_bytes
    - BytesMut::new
    - write_test_mdhd_data
    linkageType: ''
    returnType: AnyMp4Box
    signature: pub fn test_mdhd() -> AnyMp4Box
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:63,1
    - Dst: write_test_meco_data
      Src: /src/mp4san/mp4san/src/util/test.rs:64,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 9
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: test_meco
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - Mp4Box::with_bytes
    - BytesMut::new
    - write_test_meco_data
    linkageType: ''
    returnType: AnyMp4Box
    signature: pub fn test_meco() -> AnyMp4Box
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:69,1
    - Dst: write_test_meta_data
      Src: /src/mp4san/mp4san/src/util/test.rs:70,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 7
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: test_meta
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 2
    functionsReached:
    - write_test_meta_data
    - Mp4Box::with_bytes
    - BytesMut::new
    linkageType: ''
    returnType: AnyMp4Box
    signature: pub fn test_meta() -> AnyMp4Box
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/mp4san/src/util/test.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: test_moov
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 8
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: TestMoovBuilder
    signature: pub fn test_moov() -> TestMoovBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/mp4san/src/util/test.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: test_mp4
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 32
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: TestMp4Builder
    signature: pub fn test_mp4() -> TestMp4Builder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:83,1
    - Dst: write_test_mvhd_data
      Src: /src/mp4san/mp4san/src/util/test.rs:84,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 5
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: test_mvhd
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 0
    functionsReached:
    - write_test_mvhd_data
    - Mp4Box::with_bytes
    - BytesMut::new
    linkageType: ''
    returnType: AnyMp4Box
    signature: pub fn test_mvhd() -> AnyMp4Box
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:89,1
    - Dst: write_test_stsc_data
      Src: /src/mp4san/mp4san/src/util/test.rs:90,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 5
    functionLinenumber: 88
    functionLinenumberEnd: 92
    functionName: test_stsc
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 0
    functionsReached:
    - write_test_stsc_data
    - Mp4Box::with_bytes
    - BytesMut::new
    linkageType: ''
    returnType: AnyMp4Box
    signature: pub fn test_stsc() -> AnyMp4Box
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:95,1
    - Dst: write_test_stsd_data
      Src: /src/mp4san/mp4san/src/util/test.rs:96,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 4
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: test_stsd
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 0
    functionsReached:
    - Mp4Box::with_bytes
    - write_test_stsd_data
    - BytesMut::new
    linkageType: ''
    returnType: AnyMp4Box
    signature: pub fn test_stsd() -> AnyMp4Box
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:101,1
    - Dst: write_test_stsz_data
      Src: /src/mp4san/mp4san/src/util/test.rs:102,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chunk_count
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 5
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: test_stsz
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 0
    functionsReached:
    - Mp4Box::with_bytes
    - BytesMut::new
    - write_test_stsz_data
    linkageType: ''
    returnType: AnyMp4Box
    signature: 'pub fn test_stsz(chunk_count: u32) -> AnyMp4Box'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:107,1
    - Dst: write_test_stts_data
      Src: /src/mp4san/mp4san/src/util/test.rs:108,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chunk_count
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 5
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: test_stts
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 0
    functionsReached:
    - write_test_stts_data
    - Mp4Box::with_bytes
    - BytesMut::new
    linkageType: ''
    returnType: AnyMp4Box
    signature: 'pub fn test_stts(chunk_count: u32) -> AnyMp4Box'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BytesMut::new
      Src: /src/mp4san/mp4san/src/util/test.rs:113,1
    - Dst: write_test_tkhd_data
      Src: /src/mp4san/mp4san/src/util/test.rs:114,1
    - Dst: Mp4Box::with_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - track_id
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: test_tkhd
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 0
    functionsReached:
    - write_test_tkhd_data
    - Mp4Box::with_bytes
    - BytesMut::new
    linkageType: ''
    returnType: AnyMp4Box
    signature: 'pub fn test_tkhd(track_id: u32) -> AnyMp4Box'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:119,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:119,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:120,1
    - Dst: FourCC::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:121,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:123,1
    - Dst: B::put_u8
      Src: /src/mp4san/mp4san/src/util/test.rs:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - out
    - handler_type
    argTypes:
    - B
    - FourCC
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: write_hdlr_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - FourCC::put_buf
    - Self::put_buf
    - B::put_u32
    - FullBoxHeader::default
    - B::put_u8
    linkageType: ''
    returnType: void
    signature: 'pub fn write_hdlr_data<B: BufMut>(mut out: B, handler_type: FourCC)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Vec<u8>::len'
      Src: /src/mp4san/mp4san/src/util/test.rs:129,1
    - Dst: BoxHeader::with_data_size
      Src: /src/mp4san/mp4san/src/util/test.rs:131,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test.rs:131,1
    - Dst: BoxHeader::until_eof
      Src: /src/mp4san/mp4san/src/util/test.rs:132,1
    - Dst: BoxHeader::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:134,1
    - Dst: '&mut Vec<u8>::len'
      Src: /src/mp4san/mp4san/src/util/test.rs:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - out
    - data_len
    argTypes:
    - '&mut Vec<u8>'
    - Option<u64>
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 4
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: write_mdat_header
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 2
    functionsReached:
    - BoxHeader::put_buf
    - BoxHeader::with_data_size
    - BoxHeader::until_eof
    - Result::unwrap
    - '&mut Vec<u8>::len'
    linkageType: ''
    returnType: InputSpan
    signature: 'pub fn write_mdat_header(out: &mut Vec<u8>, data_len: Option<u64>)
      -> InputSpan'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxHeader::with_u32_data_size
      Src: /src/mp4san/mp4san/src/util/test.rs:139,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:139,1
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:140,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:140,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:141,1
    - Dst: BoxHeader::with_u32_data_size
      Src: /src/mp4san/mp4san/src/util/test.rs:142,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:142,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: write_test_dinf_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - put_buf
    - Self::put_buf
    - B::put_u32
    - FullBoxHeader::default
    - BoxHeader::with_u32_data_size
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_dinf_data<B: BufMut>(mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_mdat_header
      Src: /src/mp4san/mp4san/src/util/test.rs:147,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/util/test.rs:147,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test.rs:147,1
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/mp4san/src/util/test.rs:148,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - out
    - data
    argTypes:
    - '&mut Vec<u8>'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 5
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: write_test_mdat
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - Some
    - len
    - '&mut Vec<u8>::extend_from_slice'
    - write_mdat_header
    linkageType: ''
    returnType: InputSpan
    signature: 'pub fn write_test_mdat(out: &mut Vec<u8>, data: &[u8]) -> InputSpan'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_meta
      Src: /src/mp4san/mp4san/src/util/test.rs:154,1
    - Dst: AnyMp4Box::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 8
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: write_test_meco_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - test_meta
    - AnyMp4Box::put_buf
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_meco_data<B: BufMut>(mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:158,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:158,1
    - Dst: test_hdlr
      Src: /src/mp4san/mp4san/src/util/test.rs:159,1
    - Dst: AnyMp4Box::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 6
    functionLinenumber: 157
    functionLinenumberEnd: 160
    functionName: write_test_meta_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - AnyMp4Box::put_buf
    - FullBoxHeader::default
    - test_hdlr
    - Self::put_buf
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_meta_data<B: BufMut>(mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:163,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:163,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:164,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:165,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:166,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:167,1
    - Dst: B::put_u16
      Src: /src/mp4san/mp4san/src/util/test.rs:168,1
    - Dst: u16::from_be_bytes
      Src: /src/mp4san/mp4san/src/util/test.rs:168,1
    - Dst: B::put_u16
      Src: /src/mp4san/mp4san/src/util/test.rs:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: write_test_mdhd_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - u16::from_be_bytes
    - B::put_u16
    - B::put_u32
    - FullBoxHeader::default
    - Self::put_buf
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_mdhd_data<B: BufMut>(mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:173,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:173,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:174,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:175,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:176,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:177,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:178,1
    - Dst: B::put_u16
      Src: /src/mp4san/mp4san/src/util/test.rs:179,1
    - Dst: B::put_u16
      Src: /src/mp4san/mp4san/src/util/test.rs:180,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:182,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:185,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:188,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:190,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 47
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 191
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 191
    functionName: write_test_mvhd_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - B::put_u32
    - FullBoxHeader::default
    - B::put_u16
    - Self::put_buf
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_mvhd_data<B: BufMut>(mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:194,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:194,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:195,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:196,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:197,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: write_test_stsc_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - B::put_u32
    - FullBoxHeader::default
    - Self::put_buf
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_stsc_data<B: BufMut>(mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:202,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:202,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:203,1
    - Dst: BoxHeader::with_u32_data_size
      Src: /src/mp4san/mp4san/src/util/test.rs:204,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:204,1
    - Dst: B::put_u8
      Src: /src/mp4san/mp4san/src/util/test.rs:206,1
    - Dst: B::put_u16
      Src: /src/mp4san/mp4san/src/util/test.rs:208,1
    - Dst: B::put_u8
      Src: /src/mp4san/mp4san/src/util/test.rs:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - out
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 210
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 210
    functionName: write_test_stsd_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - BoxHeader::with_u32_data_size
    - B::put_u32
    - FullBoxHeader::default
    - B::put_u8
    - Self::put_buf
    - B::put_u16
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_stsd_data<B: BufMut>(mut out: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:213,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:213,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:214,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - out
    - chunk_count
    argTypes:
    - B
    - u32
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: write_test_stsz_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - B::put_u32
    - FullBoxHeader::default
    - Self::put_buf
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_stsz_data<B: BufMut>(mut out: B, chunk_count: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:219,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:219,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:220,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:221,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - out
    - chunk_count
    argTypes:
    - B
    - u32
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: write_test_stts_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - B::put_u32
    - FullBoxHeader::default
    - Self::put_buf
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_stts_data<B: BufMut>(mut out: B, chunk_count: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FullBoxHeader::default
      Src: /src/mp4san/mp4san/src/util/test.rs:226,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:226,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:227,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:228,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:229,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:230,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:231,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:233,1
    - Dst: B::put_u16
      Src: /src/mp4san/mp4san/src/util/test.rs:235,1
    - Dst: B::put_u16
      Src: /src/mp4san/mp4san/src/util/test.rs:236,1
    - Dst: B::put_u16
      Src: /src/mp4san/mp4san/src/util/test.rs:237,1
    - Dst: B::put_u16
      Src: /src/mp4san/mp4san/src/util/test.rs:238,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:240,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:242,1
    - Dst: B::put_u32
      Src: /src/mp4san/mp4san/src/util/test.rs:243,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 2
    argNames:
    - out
    - track_id
    argTypes:
    - B
    - u32
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: write_test_tkhd_data
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - B::put_u32
    - FullBoxHeader::default
    - B::put_u16
    - Self::put_buf
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_tkhd_data<B: BufMut>(mut out: B, track_id: u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BoxHeader::with_u32_data_size
      Src: /src/mp4san/mp4san/src/util/test.rs:247,1
    - Dst: Self::put_buf
      Src: /src/mp4san/mp4san/src/util/test.rs:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 3
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: write_test_uuid
    functionSourceFile: /src/mp4san/mp4san/src/util/test.rs
    functionUses: 1
    functionsReached:
    - Self::put_buf
    - BoxHeader::with_u32_data_size
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_uuid(out: &mut Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: TestMp4Builder::mdat_data_until_eof
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn mdat_data_until_eof(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestMp4Builder::build_spec
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:61,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:61,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: TestMp4Builder::build
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - TestMp4Builder::build_spec
    - build
    linkageType: ''
    returnType: TestMp4
    signature: pub fn build(&self) -> TestMp4
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:67,1
    - Dst: TestMp4Spec::moov
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:69,1
    - Dst: Vec::new
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:74,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:78,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:78,1
    - Dst: Self::push
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:81,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:81,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:82,1
    - Dst: Config::put_buf
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:82,1
    - Dst: super::write_mdat_header
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:85,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:86,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:86,1
    - Dst: extend_from_slice
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:87,1
    - Dst: unwrap_or
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:89,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:89,1
    - Dst: saturating_add
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:90,1
    - Dst: Some
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:93,1
    - Dst: super::test_free
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:98,1
    - Dst: super::test_meta
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:99,1
    - Dst: super::test_meco
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:100,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:104,1
    - Dst: encoded_len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:105,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:108,1
    - Dst: super::write_test_uuid
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:111,1
    - Dst: unwrap_or
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:117,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:117,1
    - Dst: None::unwrap_or
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:118,1
    - Dst: build_spec
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:121,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:121,1
    - Dst: co_entries
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:126,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:126,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:126,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:127,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:133,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:133,1
    - Dst: Vec::new
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:134,1
    - Dst: Self::push
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:136,1
    - Dst: Bytes::len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:136,1
    - Dst: co_entries
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:137,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:137,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:137,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:138,1
    - Dst: Bytes::len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:144,1
    - Dst: co_entries
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:147,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:147,1
    - Dst: build
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:147,1
    - Dst: put_buf
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:148,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:152,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:153,1
    - Dst: Bytes::into
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:154,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:155,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 189
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 66
    functionDepth: 6
    functionLinenumber: 66
    functionLinenumberEnd: 159
    functionName: TestMp4Spec::build
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 0
    functionsReached:
    - super::test_meta
    - put_buf
    - init_logger
    - TestMp4Spec::moov
    - build
    - super::write_test_uuid
    - Bytes::into
    - encoded_len
    - super::test_free
    - clone
    - co_entries
    - saturating_add
    - unwrap_or
    - build_spec
    - super::test_meco
    - Some
    - Bytes::len
    - into
    - unwrap
    - extend_from_slice
    - Vec::new
    - super::write_mdat_header
    - len
    - Self::push
    - None::unwrap_or
    - Config::put_buf
    linkageType: ''
    returnType: TestMp4
    signature: pub fn build(&self) -> TestMp4
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:162,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:163,1
    - Dst: add_co_entry
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 167
    functionName: TestMp4Spec::moov
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 1
    functionsReached:
    - add_co_entry
    - clone
    - len
    linkageType: ''
    returnType: TestMoovBuilder
    signature: pub fn moov(&self) -> TestMoovBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestMp4::sanitize_ok_with_config
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:172,1
    - Dst: Config::default
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 14
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: TestMp4::sanitize_ok
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 0
    functionsReached:
    - TestMp4::sanitize_ok_with_config
    - Config::default
    linkageType: ''
    returnType: SanitizedMetadata
    signature: pub fn sanitize_ok(&self) -> SanitizedMetadata
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_with_config
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:176,1
    - Dst: TestMp4::clone
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:176,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:176,1
    - Dst: super::sanitized_data
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:181,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:181,1
    - Dst: sanitize
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:182,1
    - Dst: io::Cursor::new
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:182,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:182,1
    - Dst: mp4san_test::ffmpeg_assert_eq
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:183,1
    - Dst: mp4san_test::gpac_assert_eq
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    constantsTouched: []
    func_position:
      end: 186
      start: 175
    functionDepth: 13
    functionLinenumber: 175
    functionLinenumberEnd: 186
    functionName: TestMp4::sanitize_ok_with_config
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 1
    functionsReached:
    - io::Cursor::new
    - mp4san_test::gpac_assert_eq
    - sanitize_with_config
    - super::sanitized_data
    - TestMp4::clone
    - mp4san_test::ffmpeg_assert_eq
    - clone
    - sanitize
    - Result::unwrap
    linkageType: ''
    returnType: SanitizedMetadata
    signature: 'pub fn sanitize_ok_with_config(&self, config: Config) -> SanitizedMetadata'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sanitize
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:189,1
    - Dst: TestMp4::clone
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:189,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:189,1
    - Dst: mp4san_test::ffmpeg_assert_eq
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:192,1
    - Dst: mp4san_test::gpac_assert_eq
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 188
    functionDepth: 14
    functionLinenumber: 188
    functionLinenumberEnd: 195
    functionName: TestMp4::sanitize_ok_noop
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 0
    functionsReached:
    - mp4san_test::gpac_assert_eq
    - TestMp4::clone
    - mp4san_test::ffmpeg_assert_eq
    - sanitize
    - Result::unwrap
    linkageType: ''
    returnType: SanitizedMetadata
    signature: pub fn sanitize_ok_noop(&self) -> SanitizedMetadata
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:198,1
    - Dst: checked_sub
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:198,1
    - Dst: and_then
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:198,1
    - Dst: clone
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:204,1
    - Dst: to_vec
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:206,1
    - Dst: super::test_free
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:207,1
    - Dst: get
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:207,1
    - Dst: AnyMp4Box::put_buf
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:207,1
    - Dst: Bytes::into
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - actual_len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 209
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 209
    functionName: TestMp4::expected_metadata
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 0
    functionsReached:
    - checked_sub
    - super::test_free
    - to_vec
    - clone
    - and_then
    - len
    - get
    - AnyMp4Box::put_buf
    - Bytes::into
    linkageType: ''
    returnType: Bytes
    signature: 'fn expected_metadata(&self, actual_len: usize) -> Bytes'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reader
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:214,1
    - Dst: read
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: TestMp4::read
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 0
    functionsReached:
    - read
    - reader
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:220,1
    - Dst: min
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:220,1
    - Dst: advance
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:221,1
    - Dst: u64::saturating_sub
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:223,1
    - Dst: saturating_add
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:224,1
    - Dst: saturating_sub
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:225,1
    - Dst: checked_add
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:226,1
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:229,1
    - Dst: Err
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:231,1
    - Dst: io::Error::new
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 236
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 236
    functionName: TestMp4::skip
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 0
    functionsReached:
    - min
    - advance
    - Ok
    - Err
    - io::Error::new
    - saturating_sub
    - len
    - checked_add
    - u64::saturating_sub
    - saturating_add
    linkageType: ''
    returnType: io::Result
    signature: 'fn skip(&mut self, amount: u64) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:239,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: TestMp4::stream_position
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 0
    functionsReached:
    - Ok
    - len
    linkageType: ''
    returnType: io::Result
    signature: fn stream_position(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:243,1
    - Dst: max
      Src: /src/mp4san/mp4san/src/util/test/mp4.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: TestMp4::stream_len
    functionSourceFile: /src/mp4san/mp4san/src/util/test/mp4.rs
    functionUses: 0
    functionsReached:
    - Ok
    - max
    linkageType: ''
    returnType: io::Result
    signature: fn stream_len(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestMoovBuilder::build_spec
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:35,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:35,1
    - Dst: len
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:36,1
    - Dst: iter
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:40,1
    - Dst: cloned
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:40,1
    - Dst: push
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:41,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:41,1
    - Dst: Co64Box::from_iter
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:41,1
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:41,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:41,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:41,1
    - Dst: into_iter
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:44,1
    - Dst: map
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:44,1
    - Dst: push
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:45,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:45,1
    - Dst: StcoBox::from_iter
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:45,1
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:45,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:45,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:45,1
    - Dst: push
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:50,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:50,1
    - Dst: StblBox::with_children
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:50,1
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:50,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:50,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:50,1
    - Dst: push
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:55,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:55,1
    - Dst: MinfBox::with_children
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:55,1
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:55,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:55,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:55,1
    - Dst: push
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:60,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:60,1
    - Dst: MdiaBox::with_children
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:60,1
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:60,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:60,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:60,1
    - Dst: push
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:65,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:65,1
    - Dst: TrakBox::with_children
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:65,1
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:65,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:65,1
    - Dst: into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:65,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:67,1
    - Dst: MoovBox::with_children
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:67,1
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:67,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/moov.rs:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 110
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 34
    functionDepth: 5
    functionLinenumber: 34
    functionLinenumberEnd: 68
    functionName: TestMoovBuilder::build
    functionSourceFile: /src/mp4san/mp4san/src/util/test/moov.rs
    functionUses: 1
    functionsReached:
    - push
    - StblBox::with_children
    - cloned
    - MdiaBox::with_children
    - TrakBox::with_children
    - StcoBox::from_iter
    - iter
    - Mp4Box::with_data
    - into_iter
    - map
    - unwrap
    - MinfBox::with_children
    - TestMoovBuilder::build_spec
    - len
    - Result::unwrap
    - Co64Box::from_iter
    - into
    - Self::into
    - MoovBox::with_children
    linkageType: ''
    returnType: Mp4Box
    signature: pub fn build(&self) -> Mp4Box<MoovBox>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestFtypBuilder::build_spec
      Src: /src/mp4san/mp4san/src/util/test/ftyp.rs:23,1
    - Dst: unwrap
      Src: /src/mp4san/mp4san/src/util/test/ftyp.rs:23,1
    - Dst: Mp4Box::with_data
      Src: /src/mp4san/mp4san/src/util/test/ftyp.rs:25,1
    - Dst: FtypBox::new
      Src: /src/mp4san/mp4san/src/util/test/ftyp.rs:25,1
    - Dst: Self::into
      Src: /src/mp4san/mp4san/src/util/test/ftyp.rs:25,1
    - Dst: Result::unwrap
      Src: /src/mp4san/mp4san/src/util/test/ftyp.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 5
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: TestFtypBuilder::build
    functionSourceFile: /src/mp4san/mp4san/src/util/test/ftyp.rs
    functionUses: 1
    functionsReached:
    - Mp4Box::with_data
    - TestFtypBuilder::build_spec
    - Result::unwrap
    - FtypBox::new
    - unwrap
    - Self::into
    linkageType: ''
    returnType: Mp4Box
    signature: pub fn build(&self) -> Mp4Box<FtypBox>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: webpsan::sanitize
      Src: /src/mp4san/webpsan/fuzz/fuzz_targets/sanitize.rs:3,1
    - Dst: io::Cursor::new
      Src: /src/mp4san/webpsan/fuzz/fuzz_targets/sanitize.rs:3,1
    - Dst: kind
      Src: /src/mp4san/webpsan/fuzz/fuzz_targets/sanitize.rs:9,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 7
    functionDepth: 14
    functionLinenumber: 7
    functionLinenumberEnd: 28
    functionName: fuzz_target
    functionSourceFile: /src/mp4san/webpsan/fuzz/fuzz_targets/sanitize.rs
    functionUses: 0
    functionsReached:
    - io::Cursor::new
    - webpsan::sanitize
    - kind
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libwebp::verify
      Src: /src/mp4san/webpsan-test/src/lib.rs:19,1
    - Dst: Result::err
      Src: /src/mp4san/webpsan-test/src/lib.rs:19,1
    - Dst: unwrap_or_else
      Src: /src/mp4san/webpsan-test/src/lib.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 16
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: libwebp_assert_invalid
    functionSourceFile: /src/mp4san/webpsan-test/src/lib.rs
    functionUses: 1
    functionsReached:
    - Result::err
    - unwrap_or_else
    - libwebp::verify
    linkageType: ''
    returnType: void
    signature: 'pub fn libwebp_assert_invalid(data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libwebp::verify
      Src: /src/mp4san/webpsan-test/src/lib.rs:30,1
    - Dst: Result::unwrap_or_else
      Src: /src/mp4san/webpsan-test/src/lib.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 31
      start: 26
    functionDepth: 16
    functionLinenumber: 26
    functionLinenumberEnd: 31
    functionName: libwebp_assert_valid
    functionSourceFile: /src/mp4san/webpsan-test/src/lib.rs
    functionUses: 1
    functionsReached:
    - Result::unwrap_or_else
    - libwebp::verify
    linkageType: ''
    returnType: void
    signature: 'pub fn libwebp_assert_valid(data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: WebPDecoderConfig::new
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:33,1
    - Dst: Self::unwrap
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:33,1
    - Dst: as_mut_ptr
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:55,1
    - Dst: WebPGetFeatures
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:60,1
    - Dst: as_ptr
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:60,1
    - Dst: len
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:60,1
    - Dst: ok
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:60,1
    - Dst: libwebp_sys::WebPDecode
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:63,1
    - Dst: as_ptr
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:63,1
    - Dst: len
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:63,1
    - Dst: ok
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:63,1
    - Dst: Decoder::new
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:66,1
    - Dst: libwebp_sys::WebPDecode
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:68,1
    - Dst: ok
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:68,1
    - Dst: Ok
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:70,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 71
      start: 32
    functionDepth: 15
    functionLinenumber: 32
    functionLinenumberEnd: 71
    functionName: verify
    functionSourceFile: /src/mp4san/webpsan-test/src/libwebp.rs
    functionUses: 2
    functionsReached:
    - Decoder::new
    - WebPGetFeatures
    - Ok
    - libwebp_sys::WebPDecode
    - as_mut_ptr
    - len
    - ok
    - Self::unwrap
    - as_ptr
    - WebPDecoderConfig::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify(data: &[u8]) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:76,1
    - Dst: Err
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:77,1
    - Dst: Error::VP8
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: VP8StatusCode::ok
    functionSourceFile: /src/mp4san/webpsan-test/src/libwebp.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    - Error::VP8
    linkageType: ''
    returnType: Result
    signature: fn ok(self) -> Result<(), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ptr
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:85,1
    - Dst: len
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:85,1
    - Dst: NonNull::new
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:87,1
    - Dst: WebPDemuxInternal
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:87,1
    - Dst: std::ptr::null_mut
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:87,1
    - Dst: libwebp_sys::WebPGetDemuxABIVersion
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:87,1
    - Dst: Err
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:89,1
    - Dst: MaybeUninit::uninit
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:92,1
    - Dst: libwebp_sys::WebPDemuxGetFrame
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:93,1
    - Dst: as_ptr
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:93,1
    - Dst: as_mut_ptr
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:93,1
    - Dst: Err
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:94,1
    - Dst: Ok
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:97,1
    - Dst: assume_init
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:97,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: Decoder::new
    functionSourceFile: /src/mp4san/webpsan-test/src/libwebp.rs
    functionUses: 2
    functionsReached:
    - Ok
    - WebPDemuxInternal
    - std::ptr::null_mut
    - libwebp_sys::WebPDemuxGetFrame
    - Err
    - assume_init
    - as_mut_ptr
    - len
    - libwebp_sys::WebPGetDemuxABIVersion
    - MaybeUninit::uninit
    - NonNull::new
    - as_ptr
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(data: &''a [u8]) -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libwebp_sys::WebPDemuxNextFrame
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:110,1
    - Dst: Some
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:111,1
    - Dst: Err
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:111,1
    - Dst: Some
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:114,1
    - Dst: Ok
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 116
    functionName: Decoder::next
    functionSourceFile: /src/mp4san/webpsan-test/src/libwebp.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    - libwebp_sys::WebPDemuxNextFrame
    - Some
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: libwebp_sys::WebPDemuxReleaseIterator
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:122,1
    - Dst: libwebp_sys::WebPDemuxDelete
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:123,1
    - Dst: as_ptr
      Src: /src/mp4san/webpsan-test/src/libwebp.rs:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: Decoder::drop
    functionSourceFile: /src/mp4san/webpsan-test/src/libwebp.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - libwebp_sys::WebPDemuxReleaseIterator
    - libwebp_sys::WebPDemuxDelete
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split_for_impl
      Src: /src/mp4san/mp4san-derive/src/lib.rs:13,1
    - Dst: TokenStream::from
      Src: /src/mp4san/mp4san-derive/src/lib.rs:17,1
    - Dst: extract_box_type
      Src: /src/mp4san/mp4san-derive/src/lib.rs:21,1
    - Dst: derive_read_fn
      Src: /src/mp4san/mp4san-derive/src/lib.rs:22,1
    - Dst: TokenStream::from
      Src: /src/mp4san/mp4san-derive/src/lib.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - input
    argTypes:
    - TokenStream
    constantsTouched: []
    func_position:
      end: 34
      start: 10
    functionDepth: 16
    functionLinenumber: 10
    functionLinenumberEnd: 34
    functionName: derive_parse_box
    functionSourceFile: /src/mp4san/mp4san-derive/src/lib.rs
    functionUses: 0
    functionsReached:
    - split_for_impl
    - extract_box_type
    - TokenStream::from
    - derive_read_fn
    linkageType: ''
    returnType: TokenStream
    signature: 'pub fn derive_parse_box(input: TokenStream) -> TokenStream'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: split_for_impl
      Src: /src/mp4san/mp4san-derive/src/lib.rs:40,1
    - Dst: TokenStream::from
      Src: /src/mp4san/mp4san-derive/src/lib.rs:44,1
    - Dst: sum_box_size
      Src: /src/mp4san/mp4san-derive/src/lib.rs:48,1
    - Dst: derive_write_fn
      Src: /src/mp4san/mp4san-derive/src/lib.rs:49,1
    - Dst: TokenStream::from
      Src: /src/mp4san/mp4san-derive/src/lib.rs:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - input
    argTypes:
    - TokenStream
    constantsTouched: []
    func_position:
      end: 61
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 61
    functionName: derive_parsed_box
    functionSourceFile: /src/mp4san/mp4san-derive/src/lib.rs
    functionUses: 0
    functionsReached:
    - split_for_impl
    - sum_box_size
    - TokenStream::from
    - derive_write_fn
    linkageType: ''
    returnType: TokenStream
    signature: 'pub fn derive_parsed_box(input: TokenStream) -> TokenStream'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/mp4san/mp4san-derive/src/lib.rs:66,1
    - Dst: enumerate
      Src: /src/mp4san/mp4san-derive/src/lib.rs:66,1
    - Dst: map
      Src: /src/mp4san/mp4san-derive/src/lib.rs:66,1
    - Dst: Index::from
      Src: /src/mp4san/mp4san-derive/src/lib.rs:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&DeriveInput'
    constantsTouched: []
    func_position:
      end: 83
      start: 63
    functionDepth: 4
    functionLinenumber: 63
    functionLinenumberEnd: 83
    functionName: derive_write_fn
    functionSourceFile: /src/mp4san/mp4san-derive/src/lib.rs
    functionUses: 1
    functionsReached:
    - map
    - Index::from
    - enumerate
    - iter
    linkageType: ''
    returnType: TokenStream2
    signature: 'fn derive_write_fn(input: &DeriveInput) -> TokenStream2'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/mp4san/mp4san-derive/src/lib.rs:89,1
    - Dst: Vec::new
      Src: /src/mp4san/mp4san-derive/src/lib.rs:90,1
    - Dst: Vec::new
      Src: /src/mp4san/mp4san-derive/src/lib.rs:91,1
    - Dst: iter
      Src: /src/mp4san/mp4san-derive/src/lib.rs:92,1
    - Dst: enumerate
      Src: /src/mp4san/mp4san-derive/src/lib.rs:92,1
    - Dst: Self::push
      Src: /src/mp4san/mp4san-derive/src/lib.rs:93,1
    - Dst: clone
      Src: /src/mp4san/mp4san-derive/src/lib.rs:93,1
    - Dst: Self::push
      Src: /src/mp4san/mp4san-derive/src/lib.rs:95,1
    - Dst: Self::push
      Src: /src/mp4san/mp4san-derive/src/lib.rs:96,1
    - Dst: clone
      Src: /src/mp4san/mp4san-derive/src/lib.rs:96,1
    - Dst: Index::from
      Src: /src/mp4san/mp4san-derive/src/lib.rs:98,1
    - Dst: Self::push
      Src: /src/mp4san/mp4san-derive/src/lib.rs:99,1
    - Dst: Self::push
      Src: /src/mp4san/mp4san-derive/src/lib.rs:100,1
    - Dst: Ident::new
      Src: /src/mp4san/mp4san-derive/src/lib.rs:100,1
    - Dst: Span::mixed_site
      Src: /src/mp4san/mp4san-derive/src/lib.rs:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&DeriveInput'
    constantsTouched: []
    func_position:
      end: 129
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 129
    functionName: derive_read_fn
    functionSourceFile: /src/mp4san/mp4san-derive/src/lib.rs
    functionUses: 1
    functionsReached:
    - iter
    - Vec::new
    - Span::mixed_site
    - enumerate
    - Index::from
    - clone
    - Self::push
    - Ident::new
    linkageType: ''
    returnType: TokenStream2
    signature: 'fn derive_read_fn(input: &DeriveInput) -> TokenStream2'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/mp4san/mp4san-derive/src/lib.rs:132,1
    - Dst: filter
      Src: /src/mp4san/mp4san-derive/src/lib.rs:132,1
    - Dst: path
      Src: /src/mp4san/mp4san-derive/src/lib.rs:132,1
    - Dst: is_ident
      Src: /src/mp4san/mp4san-derive/src/lib.rs:132,1
    - Dst: Self::next
      Src: /src/mp4san/mp4san-derive/src/lib.rs:133,1
    - Dst: Self::next
      Src: /src/mp4san/mp4san-derive/src/lib.rs:139,1
    - Dst: require_name_value
      Src: /src/mp4san/mp4san-derive/src/lib.rs:144,1
    - Dst: map
      Src: /src/mp4san/mp4san-derive/src/lib.rs:144,1
    - Dst: ok
      Src: /src/mp4san/mp4san-derive/src/lib.rs:144,1
    - Dst: base10_parse::<u128>
      Src: /src/mp4san/mp4san-derive/src/lib.rs:154,1
    - Dst: into_compile_error
      Src: /src/mp4san/mp4san-derive/src/lib.rs:156,1
    - Dst: u32::try_from
      Src: /src/mp4san/mp4san-derive/src/lib.rs:158,1
    - Dst: value
      Src: /src/mp4san/mp4san-derive/src/lib.rs:165,1
    - Dst: Uuid::parse_str
      Src: /src/mp4san/mp4san-derive/src/lib.rs:166,1
    - Dst: as_u128
      Src: /src/mp4san/mp4san-derive/src/lib.rs:167,1
    - Dst: len
      Src: /src/mp4san/mp4san-derive/src/lib.rs:169,1
    - Dst: value
      Src: /src/mp4san/mp4san-derive/src/lib.rs:178,1
    - Dst: len
      Src: /src/mp4san/mp4san-derive/src/lib.rs:179,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 75
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&DeriveInput'
    constantsTouched: []
    func_position:
      end: 192
      start: 131
    functionDepth: 15
    functionLinenumber: 131
    functionLinenumberEnd: 192
    functionName: extract_box_type
    functionSourceFile: /src/mp4san/mp4san-derive/src/lib.rs
    functionUses: 1
    functionsReached:
    - base10_parse::<u128>
    - iter
    - filter
    - u32::try_from
    - Self::next
    - is_ident
    - len
    - map
    - value
    - require_name_value
    - Uuid::parse_str
    - as_u128
    - path
    - ok
    - into_compile_error
    linkageType: ''
    returnType: TokenStream2
    signature: 'fn extract_box_type(input: &DeriveInput) -> TokenStream2'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/mp4san/mp4san-derive/src/lib.rs:197,1
    - Dst: enumerate
      Src: /src/mp4san/mp4san-derive/src/lib.rs:197,1
    - Dst: map
      Src: /src/mp4san/mp4san-derive/src/lib.rs:197,1
    - Dst: Index::from
      Src: /src/mp4san/mp4san-derive/src/lib.rs:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - derive_input
    argTypes:
    - '&DeriveInput'
    constantsTouched: []
    func_position:
      end: 212
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 212
    functionName: sum_box_size
    functionSourceFile: /src/mp4san/mp4san-derive/src/lib.rs
    functionUses: 1
    functionsReached:
    - map
    - Index::from
    - enumerate
    - iter
    linkageType: ''
    returnType: TokenStream2
    signature: 'fn sum_box_size(derive_input: &DeriveInput) -> TokenStream2'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/mp4san/common/src/macros.rs:2,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: bail_attach
    functionSourceFile: /src/mp4san/common/src/macros.rs
    functionUses: 10
    functionsReached:
    - Err
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 21
    functionName: ensure_attach
    functionSourceFile: /src/mp4san/common/src/macros.rs
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 33
    functionName: ensure_matches_attach
    functionSourceFile: /src/mp4san/common/src/macros.rs
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: $crate::error::Report::from
      Src: /src/mp4san/common/src/macros.rs:2,1
    - Dst: Self::attach_printable
      Src: /src/mp4san/common/src/macros.rs:2,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: report_attach
    functionSourceFile: /src/mp4san/common/src/macros.rs
    functionUses: 17
    functionsReached:
    - $crate::error::Report::from
    - Self::attach_printable
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Report::get_ref
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&E'
    signature: pub fn get_ref(&self) -> &E
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: Report::into_inner
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: E
    signature: pub fn into_inner(self) -> E
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: attach_printable
      Src: /src/mp4san/common/src/error.rs:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: Report::attach_printable
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached:
    - attach_printable
    linkageType: ''
    returnType: Self
    signature: 'pub fn attach_printable<P: Display + Send + Sync + ''static>(mut self,
      message: P) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: E::Stack::new
      Src: /src/mp4san/common/src/error.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - error
    argTypes:
    - E
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Report::from
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 1
    functionsReached:
    - E::Stack::new
    linkageType: ''
    returnType: Self
    signature: 'fn from(error: E) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 138
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 138
    functionName: Report::fmt
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/mp4san/common/src/error.rs:152,1
    - Dst: type_name::<T>
      Src: /src/mp4san/common/src/error.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: WhileParsingType::new
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached:
    - Self
    - type_name::<T>
    linkageType: ''
    returnType: Self
    signature: 'pub fn new<T: ?Sized>() -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/mp4san/common/src/error.rs:164,1
    - Dst: saturating_sub
      Src: /src/mp4san/common/src/error.rs:164,1
    - Dst: impl Iterator::last
      Src: /src/mp4san/common/src/error.rs:167,1
    - Dst: Ok
      Src: /src/mp4san/common/src/error.rs:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 171
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 171
    functionName: ReportStack::fmt
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached:
    - Ok
    - impl Iterator::last
    - saturating_sub
    - len
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Location::caller
      Src: /src/mp4san/common/src/error.rs:177,1
    - Dst: Default::default
      Src: /src/mp4san/common/src/error.rs:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: ReportStack::new
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Location::caller
    linkageType: ''
    returnType: Self
    signature: fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/mp4san/common/src/error.rs:181,1
    - Dst: Location::caller
      Src: /src/mp4san/common/src/error.rs:181,1
    - Dst: push
      Src: /src/mp4san/common/src/error.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - printable
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: ReportStack::attach_printable
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - Location::caller
    - push
    linkageType: ''
    returnType: Self
    signature: 'fn attach_printable<P: Display + Send + Sync + ''static>(mut self,
      printable: P) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: NullReportStack::new
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _printable
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: NullReportStack::attach_printable
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn attach_printable<P: Display + Send + Sync + ''static>(self, _printable:
      P) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/common/src/error.rs:209,1
    - Dst: Err
      Src: /src/mp4san/common/src/error.rs:210,1
    - Dst: attach_printable
      Src: /src/mp4san/common/src/error.rs:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - printable
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 2
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: Result::attach_printable
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 7
    functionsReached:
    - Ok
    - Err
    - attach_printable
    linkageType: ''
    returnType: Self
    signature: 'fn attach_printable<P: Display + Send + Sync + ''static>(self, printable:
      P) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::attach_printable
      Src: /src/mp4san/common/src/error.rs:216,1
    - Dst: WhileParsingType::new::<T>
      Src: /src/mp4san/common/src/error.rs:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 3
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: Result::while_parsing_type
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 8
    functionsReached:
    - WhileParsingType::new::<T>
    - Result::attach_printable
    linkageType: ''
    returnType: Self
    signature: fn while_parsing_type(self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/mp4san/common/src/error.rs:224,1
    - Dst: Error::Io
      Src: /src/mp4san/common/src/error.rs:224,1
    - Dst: Err
      Src: /src/mp4san/common/src/error.rs:225,1
    - Dst: Error::Parse
      Src: /src/mp4san/common/src/error.rs:225,1
    - Dst: attach_printable
      Src: /src/mp4san/common/src/error.rs:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - printable
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: StdResult::attach_printable
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 1
    functionsReached:
    - Error::Io
    - Error::Parse
    - Err
    - attach_printable
    linkageType: ''
    returnType: Self
    signature: 'fn attach_printable<P: Display + Send + Sync + ''static>(self, printable:
      P) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StdResult::attach_printable
      Src: /src/mp4san/common/src/error.rs:232,1
    - Dst: WhileParsingType::new::<T>
      Src: /src/mp4san/common/src/error.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: StdResult::while_parsing_type
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached:
    - StdResult::attach_printable
    - WhileParsingType::new::<T>
    linkageType: ''
    returnType: Self
    signature: fn while_parsing_type(self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: test::test_report
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Report
    signature: fn test_report() -> Report<TestError>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: test::test_report_display
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_report_display()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: test::test_report_debug
    functionSourceFile: /src/mp4san/common/src/error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_report_debug()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lhs::checked_add_signed
      Src: /src/mp4san/common/src/util.rs:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - Lhs
    - Lhs::Rhs
    constantsTouched: []
    func_position:
      end: 10
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 10
    functionName: checked_add_signed
    functionSourceFile: /src/mp4san/common/src/util.rs
    functionUses: 3
    functionsReached:
    - Lhs::checked_add_signed
    linkageType: ''
    returnType: Option
    signature: 'pub fn checked_add_signed<Lhs: CheckedAddSigned>(lhs: Lhs, rhs: Lhs::Rhs)
      -> Option<Lhs>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl_checked_add_signed::overflowing_add
      Src: /src/mp4san/common/src/util.rs:6,1
    - Dst: Some
      Src: /src/mp4san/common/src/util.rs:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: impl_checked_add_signed
    functionSourceFile: /src/mp4san/common/src/util.rs
    functionUses: 0
    functionsReached:
    - impl_checked_add_signed::overflowing_add
    - Some
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/common/src/util.rs:61,1
    - Dst: kind
      Src: /src/mp4san/common/src/util.rs:62,1
    - Dst: Err
      Src: /src/mp4san/common/src/util.rs:62,1
    - Dst: map
      Src: /src/mp4san/common/src/util.rs:62,1
    - Dst: Err
      Src: /src/mp4san/common/src/util.rs:63,1
    - Dst: into
      Src: /src/mp4san/common/src/util.rs:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - map
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: Result::map_eof
    functionSourceFile: /src/mp4san/common/src/util.rs
    functionUses: 2
    functionsReached:
    - Ok
    - Err
    - map
    - kind
    - into
    linkageType: ''
    returnType: Result
    signature: 'fn map_eof<E: From<io::Error>, F: FnOnce(io::Error) -> E>(self, map:
      F) -> Result<T, E>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: skip
      Src: /src/mp4san/common/src/skip.rs:3,1
    - Dst: stream_position
      Src: /src/mp4san/common/src/skip.rs:7,1
    - Dst: stream_len
      Src: /src/mp4san/common/src/skip.rs:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 14
    functionDepth: 2
    functionLinenumber: 14
    functionLinenumberEnd: 28
    functionName: deref_skip
    functionSourceFile: /src/mp4san/common/src/skip.rs
    functionUses: 0
    functionsReached:
    - skip
    - stream_position
    - stream_len
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SeekSkipAdapter
      Src: /src/mp4san/common/src/skip.rs:3,1
    - Dst: skip
      Src: /src/mp4san/common/src/skip.rs:3,1
    - Dst: SeekSkipAdapter
      Src: /src/mp4san/common/src/skip.rs:7,1
    - Dst: stream_position
      Src: /src/mp4san/common/src/skip.rs:7,1
    - Dst: SeekSkipAdapter
      Src: /src/mp4san/common/src/skip.rs:11,1
    - Dst: stream_len
      Src: /src/mp4san/common/src/skip.rs:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 52
    functionName: skip_via_adapter
    functionSourceFile: /src/mp4san/common/src/skip.rs
    functionUses: 0
    functionsReached:
    - skip
    - SeekSkipAdapter
    - stream_position
    - stream_len
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::buffer
      Src: /src/mp4san/common/src/skip.rs:72,1
    - Dst: len
      Src: /src/mp4san/common/src/skip.rs:72,1
    - Dst: u64::checked_sub
      Src: /src/mp4san/common/src/skip.rs:73,1
    - Dst: BufReader::get_mut
      Src: /src/mp4san/common/src/skip.rs:75,1
    - Dst: impl Iterator::skip
      Src: /src/mp4san/common/src/skip.rs:75,1
    - Dst: BufReader::consume
      Src: /src/mp4san/common/src/skip.rs:78,1
    - Dst: min
      Src: /src/mp4san/common/src/skip.rs:78,1
    - Dst: Ok
      Src: /src/mp4san/common/src/skip.rs:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 8
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: BufReader::skip
    functionSourceFile: /src/mp4san/common/src/skip.rs
    functionUses: 0
    functionsReached:
    - min
    - BufReader::consume
    - Ok
    - impl Iterator::skip
    - len
    - BufReader::buffer
    - BufReader::get_mut
    - u64::checked_sub
    linkageType: ''
    returnType: io::Result
    signature: 'fn skip(&mut self, amount: u64) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::get_mut
      Src: /src/mp4san/common/src/skip.rs:84,1
    - Dst: impl Iterator::stream_position
      Src: /src/mp4san/common/src/skip.rs:84,1
    - Dst: Ok
      Src: /src/mp4san/common/src/skip.rs:85,1
    - Dst: saturating_sub
      Src: /src/mp4san/common/src/skip.rs:85,1
    - Dst: BufReader::buffer
      Src: /src/mp4san/common/src/skip.rs:85,1
    - Dst: len
      Src: /src/mp4san/common/src/skip.rs:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 8
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: BufReader::stream_position
    functionSourceFile: /src/mp4san/common/src/skip.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::stream_position
    - Ok
    - saturating_sub
    - len
    - BufReader::buffer
    - BufReader::get_mut
    linkageType: ''
    returnType: io::Result
    signature: fn stream_position(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::get_mut
      Src: /src/mp4san/common/src/skip.rs:90,1
    - Dst: impl Iterator::stream_len
      Src: /src/mp4san/common/src/skip.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 8
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: BufReader::stream_len
    functionSourceFile: /src/mp4san/common/src/skip.rs
    functionUses: 0
    functionsReached:
    - BufReader::get_mut
    - impl Iterator::stream_len
    linkageType: ''
    returnType: io::Result
    signature: fn stream_len(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::try_into
      Src: /src/mp4san/common/src/skip.rs:100,1
    - Dst: SeekSkipAdapter::seek
      Src: /src/mp4san/common/src/skip.rs:103,1
    - Dst: io::SeekFrom::Current
      Src: /src/mp4san/common/src/skip.rs:103,1
    - Dst: SeekSkipAdapter::stream_position
      Src: /src/mp4san/common/src/skip.rs:106,1
    - Dst: checked_add
      Src: /src/mp4san/common/src/skip.rs:107,1
    - Dst: ok_or_else
      Src: /src/mp4san/common/src/skip.rs:107,1
    - Dst: io::Error::new
      Src: /src/mp4san/common/src/skip.rs:109,1
    - Dst: SeekSkipAdapter::seek
      Src: /src/mp4san/common/src/skip.rs:110,1
    - Dst: io::SeekFrom::Start
      Src: /src/mp4san/common/src/skip.rs:110,1
    - Dst: Ok
      Src: /src/mp4san/common/src/skip.rs:113,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 114
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 114
    functionName: SeekSkipAdapter::skip
    functionSourceFile: /src/mp4san/common/src/skip.rs
    functionUses: 0
    functionsReached:
    - SeekSkipAdapter::stream_position
    - Ok
    - io::Error::new
    - io::SeekFrom::Start
    - u64::try_into
    - io::SeekFrom::Current
    - checked_add
    - ok_or_else
    - SeekSkipAdapter::seek
    linkageType: ''
    returnType: io::Result
    signature: 'fn skip(&mut self, amount: u64) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_position
      Src: /src/mp4san/common/src/skip.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: SeekSkipAdapter::stream_position
    functionSourceFile: /src/mp4san/common/src/skip.rs
    functionUses: 2
    functionsReached:
    - stream_position
    linkageType: ''
    returnType: io::Result
    signature: fn stream_position(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SeekSkipAdapter::stream_position
      Src: /src/mp4san/common/src/skip.rs:122,1
    - Dst: seek
      Src: /src/mp4san/common/src/skip.rs:123,1
    - Dst: io::SeekFrom::End
      Src: /src/mp4san/common/src/skip.rs:123,1
    - Dst: seek
      Src: /src/mp4san/common/src/skip.rs:126,1
    - Dst: io::SeekFrom::Start
      Src: /src/mp4san/common/src/skip.rs:126,1
    - Dst: Ok
      Src: /src/mp4san/common/src/skip.rs:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 130
    functionName: SeekSkipAdapter::stream_len
    functionSourceFile: /src/mp4san/common/src/skip.rs
    functionUses: 0
    functionsReached:
    - SeekSkipAdapter::stream_position
    - Ok
    - io::SeekFrom::Start
    - io::SeekFrom::End
    - seek
    linkageType: ''
    returnType: io::Result
    signature: fn stream_len(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/mp4san/common/src/skip.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: SeekSkipAdapter::read
    functionSourceFile: /src/mp4san/common/src/skip.rs
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: AsyncSkipExt::skip
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Skip
    signature: 'fn skip(&mut self, amount: u64) -> Skip<''_, Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: AsyncSkipExt::stream_position
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StreamPosition
    signature: fn stream_position(&mut self) -> StreamPosition<'_, Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: AsyncSkipExt::stream_len
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StreamLen
    signature: fn stream_len(&mut self) -> StreamLen<'_, Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:69,1
    - Dst: Self::poll_skip
      Src: /src/mp4san/common/src/async_skip.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: Skip::poll
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - Self::poll_skip
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll(mut self: Pin<&mut Self>, cx: &mut Context<''_>) -> Poll<Self::Output>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:81,1
    - Dst: Self::poll_stream_position
      Src: /src/mp4san/common/src/async_skip.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: StreamPosition::poll
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - Self::poll_stream_position
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll(mut self: Pin<&mut Self>, cx: &mut Context<''_>) -> Poll<Self::Output>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:93,1
    - Dst: Self::poll_stream_len
      Src: /src/mp4san/common/src/async_skip.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: StreamLen::poll
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - Self::poll_stream_len
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll(mut self: Pin<&mut Self>, cx: &mut Context<''_>) -> Poll<Self::Output>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:103,1
    - Dst: Self::poll_read
      Src: /src/mp4san/common/src/async_skip.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: SeekSkipAdapter::poll_read
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - Self::poll_read
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_read(mut self: Pin<&mut Self>, cx: &mut Context<''_>, buf:
      &mut [u8]) -> Poll<io::Result<usize>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Context<''_>::try_into'
      Src: /src/mp4san/common/src/async_skip.rs:109,1
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:112,1
    - Dst: SeekSkipAdapter::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:112,1
    - Dst: checked_add
      Src: /src/mp4san/common/src/async_skip.rs:117,1
    - Dst: ok_or_else
      Src: /src/mp4san/common/src/async_skip.rs:117,1
    - Dst: io::Error::new
      Src: /src/mp4san/common/src/async_skip.rs:119,1
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:120,1
    - Dst: SeekSkipAdapter::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:120,1
    - Dst: Ok
      Src: /src/mp4san/common/src/async_skip.rs:124,1
    - Dst: into
      Src: /src/mp4san/common/src/async_skip.rs:124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 3
    argNames:
    - cx
    - amount
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    - u64
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 8
    functionLinenumber: 108
    functionLinenumberEnd: 125
    functionName: SeekSkipAdapter::poll_skip
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - Ok
    - SeekSkipAdapter::get_mut
    - io::Error::new
    - '&mut Context<''_>::try_into'
    - checked_add
    - Pin::new
    - ok_or_else
    - into
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_skip(mut self: Pin<&mut Self>, cx: &mut Context<''_>, amount:
      u64) -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:128,1
    - Dst: SeekSkipAdapter::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:128,1
    - Dst: impl AsyncRead + Unpin::poll_seek
      Src: /src/mp4san/common/src/async_skip.rs:129,1
    - Dst: io::SeekFrom::Current
      Src: /src/mp4san/common/src/async_skip.rs:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 8
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: SeekSkipAdapter::poll_stream_position
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - impl AsyncRead + Unpin::poll_seek
    - io::SeekFrom::Current
    - SeekSkipAdapter::get_mut
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_stream_position(self: Pin<&mut Self>, cx: &mut Context<''_>)
      -> Poll<io::Result<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:135,1
    - Dst: SeekSkipAdapter::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:135,1
    - Dst: Ok
      Src: /src/mp4san/common/src/async_skip.rs:142,1
    - Dst: into
      Src: /src/mp4san/common/src/async_skip.rs:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 143
      start: 132
    functionDepth: 8
    functionLinenumber: 132
    functionLinenumberEnd: 143
    functionName: SeekSkipAdapter::poll_stream_len
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - Ok
    - into
    - SeekSkipAdapter::get_mut
    - Pin::new
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_stream_len(mut self: Pin<&mut Self>, cx: &mut Context<''_>)
      -> Poll<io::Result<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:3,1
    - Dst: Self::poll_skip
      Src: /src/mp4san/common/src/async_skip.rs:3,1
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:7,1
    - Dst: Self::poll_stream_position
      Src: /src/mp4san/common/src/async_skip.rs:7,1
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:11,1
    - Dst: Self::poll_stream_len
      Src: /src/mp4san/common/src/async_skip.rs:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 164
    functionName: deref_async_skip
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - Self::poll_stream_position
    - Self::poll_stream_len
    - Self::poll_skip
    - Pin::new
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:179,1
    - Dst: impl Iterator::as_mut
      Src: /src/mp4san/common/src/async_skip.rs:179,1
    - Dst: poll_skip
      Src: /src/mp4san/common/src/async_skip.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - cx
    - amount
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    - u64
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 8
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: Pin::poll_skip
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::as_mut
    - poll_skip
    - Pin::get_mut
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_skip(self: Pin<&mut Self>, cx: &mut Context<''_>, amount:
      u64) -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:183,1
    - Dst: impl Iterator::as_mut
      Src: /src/mp4san/common/src/async_skip.rs:183,1
    - Dst: poll_stream_position
      Src: /src/mp4san/common/src/async_skip.rs:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 8
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: Pin::poll_stream_position
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::as_mut
    - Pin::get_mut
    - poll_stream_position
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_stream_position(self: Pin<&mut Self>, cx: &mut Context<''_>)
      -> Poll<io::Result<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:187,1
    - Dst: impl Iterator::as_mut
      Src: /src/mp4san/common/src/async_skip.rs:187,1
    - Dst: poll_stream_len
      Src: /src/mp4san/common/src/async_skip.rs:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 8
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: Pin::poll_stream_len
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::as_mut
    - Pin::get_mut
    - poll_stream_len
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_stream_len(self: Pin<&mut Self>, cx: &mut Context<''_>) ->
      Poll<io::Result<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:3,1
    - Dst: SeekSkipAdapter
      Src: /src/mp4san/common/src/async_skip.rs:3,1
    - Dst: async_skip_via_adapter::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:3,1
    - Dst: Self::poll_skip
      Src: /src/mp4san/common/src/async_skip.rs:3,1
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:7,1
    - Dst: SeekSkipAdapter
      Src: /src/mp4san/common/src/async_skip.rs:7,1
    - Dst: async_skip_via_adapter::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:7,1
    - Dst: Self::poll_stream_position
      Src: /src/mp4san/common/src/async_skip.rs:7,1
    - Dst: Pin::new
      Src: /src/mp4san/common/src/async_skip.rs:11,1
    - Dst: SeekSkipAdapter
      Src: /src/mp4san/common/src/async_skip.rs:11,1
    - Dst: async_skip_via_adapter::get_mut
      Src: /src/mp4san/common/src/async_skip.rs:11,1
    - Dst: Self::poll_stream_len
      Src: /src/mp4san/common/src/async_skip.rs:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 8
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: async_skip_via_adapter
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - SeekSkipAdapter
    - async_skip_via_adapter::get_mut
    - Self::poll_skip
    - Self::poll_stream_len
    - Pin::new
    - Self::poll_stream_position
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::buffer
      Src: /src/mp4san/common/src/async_skip.rs:214,1
    - Dst: len
      Src: /src/mp4san/common/src/async_skip.rs:214,1
    - Dst: '&mut Context<''_>::checked_sub'
      Src: /src/mp4san/common/src/async_skip.rs:215,1
    - Dst: BufReader::consume
      Src: /src/mp4san/common/src/async_skip.rs:220,1
    - Dst: min
      Src: /src/mp4san/common/src/async_skip.rs:220,1
    - Dst: Poll::Ready
      Src: /src/mp4san/common/src/async_skip.rs:221,1
    - Dst: Ok
      Src: /src/mp4san/common/src/async_skip.rs:221,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - cx
    - amount
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    - u64
    constantsTouched: []
    func_position:
      end: 222
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 222
    functionName: BufReader::poll_skip
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - min
    - BufReader::consume
    - Ok
    - Poll::Ready
    - len
    - BufReader::buffer
    - '&mut Context<''_>::checked_sub'
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_skip(mut self: Pin<&mut Self>, cx: &mut Context<''_>, amount:
      u64) -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/mp4san/common/src/async_skip.rs:227,1
    - Dst: Ok
      Src: /src/mp4san/common/src/async_skip.rs:227,1
    - Dst: saturating_sub
      Src: /src/mp4san/common/src/async_skip.rs:227,1
    - Dst: BufReader::buffer
      Src: /src/mp4san/common/src/async_skip.rs:227,1
    - Dst: len
      Src: /src/mp4san/common/src/async_skip.rs:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: BufReader::poll_stream_position
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - Ok
    - saturating_sub
    - Poll::Ready
    - len
    - BufReader::buffer
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_stream_position(mut self: Pin<&mut Self>, cx: &mut Context<''_>)
      -> Poll<io::Result<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::as_mut
      Src: /src/mp4san/common/src/async_skip.rs:232,1
    - Dst: get_pin_mut
      Src: /src/mp4san/common/src/async_skip.rs:232,1
    - Dst: poll_stream_len
      Src: /src/mp4san/common/src/async_skip.rs:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: BufReader::poll_stream_len
    functionSourceFile: /src/mp4san/common/src/async_skip.rs
    functionUses: 0
    functionsReached:
    - BufReader::as_mut
    - get_pin_mut
    - poll_stream_len
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_stream_len(mut self: Pin<&mut Self>, cx: &mut Context<''_>)
      -> Poll<io::Result<u64>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FourCC::as_bytes
      Src: /src/mp4san/common/src/parse/fourcc.rs:21,1
    - Dst: FourCC::len
      Src: /src/mp4san/common/src/parse/fourcc.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 2
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: FourCC::from_str
    functionSourceFile: /src/mp4san/common/src/parse/fourcc.rs
    functionUses: 0
    functionsReached:
    - FourCC::as_bytes
    - FourCC::len
    linkageType: ''
    returnType: Self
    signature: 'pub const fn from_str(name: &str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: FourCC::size
    functionSourceFile: /src/mp4san/common/src/parse/fourcc.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub const fn size() -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: R::read_exact
      Src: /src/mp4san/common/src/parse/fourcc.rs:40,1
    - Dst: Ok
      Src: /src/mp4san/common/src/parse/fourcc.rs:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - input
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: FourCC::read
    functionSourceFile: /src/mp4san/common/src/parse/fourcc.rs
    functionUses: 1
    functionsReached:
    - R::read_exact
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub async fn read<R: AsyncRead>(input: R) -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::str::from_utf8
      Src: /src/mp4san/common/src/parse/fourcc.rs:65,1
    - Dst: trim
      Src: /src/mp4san/common/src/parse/fourcc.rs:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: FourCC::fmt
    functionSourceFile: /src/mp4san/common/src/parse/fourcc.rs
    functionUses: 0
    functionsReached:
    - trim
    - std::str::from_utf8
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gzip::Decoder::new
      Src: /src/mp4san/common-test/src/lib.rs:28,1
    - Dst: Result::unwrap
      Src: /src/mp4san/common-test/src/lib.rs:28,1
    - Dst: Vec::new
      Src: /src/mp4san/common-test/src/lib.rs:29,1
    - Dst: read_to_end
      Src: /src/mp4san/common-test/src/lib.rs:30,1
    - Dst: unwrap
      Src: /src/mp4san/common-test/src/lib.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 32
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 32
    functionName: gunzip
    functionSourceFile: /src/mp4san/common-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - gzip::Decoder::new
    - Result::unwrap
    - read_to_end
    - unwrap
    linkageType: ''
    returnType: Vec
    signature: 'fn gunzip(input: &[u8]) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: test_dir
    functionSourceFile: /src/mp4san/common-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env_logger::builder
      Src: /src/mp4san/common-test/src/lib.rs:55,1
    - Dst: ConfigBuilder::filter_level
      Src: /src/mp4san/common-test/src/lib.rs:55,1
    - Dst: parse_default_env
      Src: /src/mp4san/common-test/src/lib.rs:55,1
    - Dst: is_test
      Src: /src/mp4san/common-test/src/lib.rs:55,1
    - Dst: try_init
      Src: /src/mp4san/common-test/src/lib.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: init_logger
    functionSourceFile: /src/mp4san/common-test/src/lib.rs
    functionUses: 4
    functionsReached:
    - parse_default_env
    - try_init
    - is_test
    - env_logger::builder
    - ConfigBuilder::filter_level
    linkageType: ''
    returnType: void
    signature: pub fn init_logger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ffmpeg::verify_ffmpeg
      Src: /src/mp4san/mp4san-test/src/lib.rs:45,1
    - Dst: Some
      Src: /src/mp4san/mp4san-test/src/lib.rs:45,1
    - Dst: Result::unwrap_or_else
      Src: /src/mp4san/mp4san-test/src/lib.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - data
    - expected_media_data
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 15
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: ffmpeg_assert_eq
    functionSourceFile: /src/mp4san/mp4san-test/src/lib.rs
    functionUses: 2
    functionsReached:
    - ffmpeg::verify_ffmpeg
    - Result::unwrap_or_else
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn ffmpeg_assert_eq(data: &[u8], expected_media_data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ffmpeg::verify_ffmpeg
      Src: /src/mp4san/mp4san-test/src/lib.rs:55,1
    - Dst: Result::err
      Src: /src/mp4san/mp4san-test/src/lib.rs:55,1
    - Dst: unwrap_or_else
      Src: /src/mp4san/mp4san-test/src/lib.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 15
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: ffmpeg_assert_invalid
    functionSourceFile: /src/mp4san/mp4san-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Result::err
    - ffmpeg::verify_ffmpeg
    - unwrap_or_else
    linkageType: ''
    returnType: void
    signature: 'pub fn ffmpeg_assert_invalid(data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ffmpeg::verify_ffmpeg
      Src: /src/mp4san/mp4san-test/src/lib.rs:66,1
    - Dst: Result::unwrap_or_else
      Src: /src/mp4san/mp4san-test/src/lib.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 15
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: ffmpeg_assert_valid
    functionSourceFile: /src/mp4san/mp4san-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - ffmpeg::verify_ffmpeg
    - Result::unwrap_or_else
    linkageType: ''
    returnType: void
    signature: 'pub fn ffmpeg_assert_valid(data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gpac::verify_gpac
      Src: /src/mp4san/mp4san-test/src/lib.rs:75,1
    - Dst: Some
      Src: /src/mp4san/mp4san-test/src/lib.rs:75,1
    - Dst: Result::unwrap_or_else
      Src: /src/mp4san/mp4san-test/src/lib.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - data
    - expected_media_data
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 6
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: gpac_assert_eq
    functionSourceFile: /src/mp4san/mp4san-test/src/lib.rs
    functionUses: 2
    functionsReached:
    - gpac::verify_gpac
    - Result::unwrap_or_else
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn gpac_assert_eq(data: &[u8], expected_media_data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gpac::verify_gpac
      Src: /src/mp4san/mp4san-test/src/lib.rs:85,1
    - Dst: Result::err
      Src: /src/mp4san/mp4san-test/src/lib.rs:85,1
    - Dst: unwrap_or_else
      Src: /src/mp4san/mp4san-test/src/lib.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 6
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: gpac_assert_invalid
    functionSourceFile: /src/mp4san/mp4san-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - gpac::verify_gpac
    - Result::err
    - unwrap_or_else
    linkageType: ''
    returnType: void
    signature: 'pub fn gpac_assert_invalid(data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gpac::verify_gpac
      Src: /src/mp4san/mp4san-test/src/lib.rs:96,1
    - Dst: Result::unwrap_or_else
      Src: /src/mp4san/mp4san-test/src/lib.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 6
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: gpac_assert_valid
    functionSourceFile: /src/mp4san/mp4san-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - gpac::verify_gpac
    - Result::unwrap_or_else
    linkageType: ''
    returnType: void
    signature: 'pub fn gpac_assert_valid(data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/mp4san/mp4san-test/src/lib.rs:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 108
    functionName: example_ftyp
    functionSourceFile: /src/mp4san/mp4san-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - concat
    linkageType: ''
    returnType: Vec
    signature: pub fn example_ftyp() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/mp4san/mp4san-test/src/lib.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: example_mdat
    functionSourceFile: /src/mp4san/mp4san-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - concat
    linkageType: ''
    returnType: Vec
    signature: pub fn example_mdat() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/mp4san/mp4san-test/src/lib.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 151
    functionName: example_moov
    functionSourceFile: /src/mp4san/mp4san-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - concat
    linkageType: ''
    returnType: Vec
    signature: pub fn example_moov() -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CStr::from_ptr
      Src: /src/mp4san/mp4san-test/src/gpac.rs:23,1
    - Dst: to_string_lossy
      Src: /src/mp4san/mp4san-test/src/gpac.rs:23,1
    - Dst: '*const c_char::trim'
      Src: /src/mp4san/mp4san-test/src/gpac.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - level
    - tool
    - message
    argTypes:
    - GF_LOG_Level
    - GF_LOG_Tool
    - '*const c_char'
    constantsTouched: []
    func_position:
      end: 34
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 34
    functionName: v::e::r::i::f::y::_::g::p::a::c::mp4san_test_gpac_log
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac.rs
    functionUses: 0
    functionsReached:
    - '*const c_char::trim'
    - to_string_lossy
    - CStr::from_ptr
    linkageType: ''
    returnType: void
    signature: 'unsafe extern "C" fn mp4san_test_gpac_log(level: GF_LOG_Level, tool:
      GF_LOG_Tool, message: *const c_char)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gf_log_set_callback
      Src: /src/mp4san/mp4san-test/src/gpac.rs:37,1
    - Dst: std::ptr::null_mut
      Src: /src/mp4san/mp4san-test/src/gpac.rs:37,1
    - Dst: Some
      Src: /src/mp4san/mp4san-test/src/gpac.rs:37,1
    - Dst: self::bindings::gf_log_set_tool_level
      Src: /src/mp4san/mp4san-test/src/gpac.rs:38,1
    - Dst: Blob::new
      Src: /src/mp4san/mp4san-test/src/gpac.rs:41,1
    - Dst: IsoFile::new
      Src: /src/mp4san/mp4san-test/src/gpac.rs:42,1
    - Dst: Self::url
      Src: /src/mp4san/mp4san-test/src/gpac.rs:42,1
    - Dst: Self::track_count
      Src: /src/mp4san/mp4san-test/src/gpac.rs:43,1
    - Dst: map
      Src: /src/mp4san/mp4san-test/src/gpac.rs:43,1
    - Dst: Self::samples
      Src: /src/mp4san/mp4san-test/src/gpac.rs:44,1
    - Dst: impl Iterator::peekable
      Src: /src/mp4san/mp4san-test/src/gpac.rs:44,1
    - Dst: ".=file.track_count())\n        .map(|track_number| file.samples(track_number).peekable())\n\
        \        .collect::<Vec<_>>"
      Src: /src/mp4san/mp4san-test/src/gpac.rs:43,1
    - Dst: iter_mut
      Src: /src/mp4san/mp4san-test/src/gpac.rs:48,1
    - Dst: enumerate
      Src: /src/mp4san/mp4san-test/src/gpac.rs:48,1
    - Dst: flat_map
      Src: /src/mp4san/mp4san-test/src/gpac.rs:48,1
    - Dst: peek
      Src: /src/mp4san/mp4san-test/src/gpac.rs:51,1
    - Dst: map
      Src: /src/mp4san/mp4san-test/src/gpac.rs:51,1
    - Dst: min_by_key
      Src: /src/mp4san/mp4san-test/src/gpac.rs:48,1
    - Dst: Result::as_ref
      Src: /src/mp4san/mp4san-test/src/gpac.rs:52,1
    - Dst: map
      Src: /src/mp4san/mp4san-test/src/gpac.rs:52,1
    - Dst: Result::data_offset
      Src: /src/mp4san/mp4san-test/src/gpac.rs:52,1
    - Dst: map_err
      Src: /src/mp4san/mp4san-test/src/gpac.rs:52,1
    - Dst: map
      Src: /src/mp4san/mp4san-test/src/gpac.rs:48,1
    - Dst: unwrap_or_default
      Src: /src/mp4san/mp4san-test/src/gpac.rs:48,1
    - Dst: next
      Src: /src/mp4san/mp4san-test/src/gpac.rs:55,1
    - Dst: Result::len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:61,1
    - Dst: Option<&[u8]>::len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:61,1
    - Dst: Err
      Src: /src/mp4san/mp4san-test/src/gpac.rs:62,1
    - Dst: Result::len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:63,1
    - Dst: Option<&[u8]>::len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:64,1
    - Dst: Result::len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:68,1
    - Dst: Option<&[u8]>::len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:70,1
    - Dst: Option<&[u8]>::unwrap_or_default
      Src: /src/mp4san/mp4san-test/src/gpac.rs:70,1
    - Dst: len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:70,1
    - Dst: Err
      Src: /src/mp4san/mp4san-test/src/gpac.rs:71,1
    - Dst: Result::len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:71,1
    - Dst: len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:73,1
    - Dst: Option<&[u8]>::is_empty
      Src: /src/mp4san/mp4san-test/src/gpac.rs:77,1
    - Dst: Err
      Src: /src/mp4san/mp4san-test/src/gpac.rs:78,1
    - Dst: Option<&[u8]>::len
      Src: /src/mp4san/mp4san-test/src/gpac.rs:78,1
    - Dst: Ok
      Src: /src/mp4san/mp4san-test/src/gpac.rs:81,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 137
    argCount: 2
    argNames:
    - data
    - expected_media_data
    argTypes:
    - '&[u8]'
    - Option<&[u8]>
    constantsTouched: []
    func_position:
      end: 82
      start: 20
    functionDepth: 5
    functionLinenumber: 20
    functionLinenumberEnd: 82
    functionName: verify_gpac
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac.rs
    functionUses: 3
    functionsReached:
    - Result::as_ref
    - Self::track_count
    - Self::url
    - Err
    - Result::len
    - iter_mut
    - min_by_key
    - IsoFile::new
    - Option<&[u8]>::unwrap_or_default
    - ".=file.track_count())\n        .map(|track_number| file.samples(track_number).peekable())\n\
      \        .collect::<Vec<_>>"
    - Ok
    - std::ptr::null_mut
    - map_err
    - next
    - unwrap_or_default
    - Option<&[u8]>::is_empty
    - Result::data_offset
    - gf_log_set_callback
    - Option<&[u8]>::len
    - impl Iterator::peekable
    - Some
    - self::bindings::gf_log_set_tool_level
    - map
    - flat_map
    - Blob::new
    - enumerate
    - len
    - peek
    - Self::samples
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify_gpac(data: &[u8], expected_media_data: Option<&[u8]>)
      -> Result<(), VerifyError<Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - from
    argTypes:
    - bindings::Bool
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: bool::from
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(from: bindings::Bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CStr::from_ptr
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:16,1
    - Dst: to_string_lossy
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:16,1
    - Dst: '*const c_char::trim'
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:17,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - level
    - message
    argTypes:
    - c_int
    - '*const c_char'
    constantsTouched: []
    func_position:
      end: 27
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 27
    functionName: v::e::r::i::f::y::_::f::f::m::p::e::g::mp4san_test_ffmpeg_log
    functionSourceFile: /src/mp4san/mp4san-test/src/ffmpeg.rs
    functionUses: 0
    functionsReached:
    - '*const c_char::trim'
    - to_string_lossy
    - CStr::from_ptr
    linkageType: ''
    returnType: void
    signature: 'unsafe extern "C" fn mp4san_test_ffmpeg_log(level: c_int, message:
      *const c_char)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mem::transmute
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:35,1
    - Dst: ffmpeg_sys_next::av_log_set_callback
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:36,1
    - Dst: Some
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:36,1
    - Dst: ffmpeg_io::IO::from_seekable_read_stream
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:39,1
    - Dst: io::Cursor::new
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:39,1
    - Dst: FFMpegDemuxer::builder
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:40,1
    - Dst: ConfigBuilder::set_option
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:40,1
    - Dst: build
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:40,1
    - Dst: find_stream_info
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:41,1
    - Dst: map_err
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:41,1
    - Dst: iter::from_fn
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:42,1
    - Dst: take
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:42,1
    - Dst: transpose
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:42,1
    - Dst: Option<&[u8]>::get
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:49,1
    - Dst: data
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:50,1
    - Dst: len
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:50,1
    - Dst: Result::ok_or_else
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:49,1
    - Dst: data
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:52,1
    - Dst: len
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:52,1
    - Dst: Option<&[u8]>::len
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:53,1
    - Dst: data
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:55,1
    - Dst: Option<&[u8]>::len
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:56,1
    - Dst: Option<&[u8]>::unwrap_or_default
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:56,1
    - Dst: len
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:56,1
    - Dst: Err
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:57,1
    - Dst: data
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:57,1
    - Dst: len
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:57,1
    - Dst: len
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:59,1
    - Dst: Option<&[u8]>::is_empty
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:63,1
    - Dst: Err
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:64,1
    - Dst: Option<&[u8]>::len
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:64,1
    - Dst: Ok
      Src: /src/mp4san/mp4san-test/src/ffmpeg.rs:67,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 102
    argCount: 2
    argNames:
    - data
    - expected_media_data
    argTypes:
    - '&[u8]'
    - Option<&[u8]>
    constantsTouched: []
    func_position:
      end: 68
      start: 13
    functionDepth: 14
    functionLinenumber: 13
    functionLinenumberEnd: 68
    functionName: verify_ffmpeg
    functionSourceFile: /src/mp4san/mp4san-test/src/ffmpeg.rs
    functionUses: 3
    functionsReached:
    - take
    - ffmpeg_io::IO::from_seekable_read_stream
    - Err
    - build
    - io::Cursor::new
    - Option<&[u8]>::unwrap_or_default
    - Ok
    - map_err
    - transpose
    - Result::ok_or_else
    - Option<&[u8]>::is_empty
    - mem::transmute
    - ffmpeg_sys_next::av_log_set_callback
    - ConfigBuilder::set_option
    - Option<&[u8]>::len
    - find_stream_info
    - Some
    - Option<&[u8]>::get
    - data
    - len
    - FFMpegDemuxer::builder
    - iter::from_fn
    linkageType: ''
    returnType: Result
    signature: 'pub fn verify_ffmpeg(data: &[u8], expected_media_data: Option<&[u8]>)
      -> Result<(), VerifyError<FFMpegError>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:15,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:15,1
    - Dst: len
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:15,1
    - Dst: std::ptr::null_mut
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:15,1
    - Dst: NonNull::new_unchecked
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:16,1
    - Dst: Box::into_raw
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:16,1
    - Dst: NonNull::new
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:18,1
    - Dst: super::bindings::gf_blob_register
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:18,1
    - Dst: Self::as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:18,1
    - Dst: Self::expect
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:18,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 2
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: Blob::new
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/blob.rs
    functionUses: 1
    functionsReached:
    - NonNull::new_unchecked
    - Self::as_ptr
    - Self::expect
    - std::ptr::null_mut
    - len
    - super::bindings::gf_blob_register
    - NonNull::new
    - as_ptr
    - Box::new
    - Box::into_raw
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(data: &''a [u8]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CStr::from_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:23,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Blob::url
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/blob.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - CStr::from_ptr
    linkageType: ''
    returnType: '&CStr'
    signature: pub fn url(&self) -> &CStr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Blob::deref
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/blob.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Self::Target'
    signature: fn deref(&self) -> &Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::bindings::gf_free
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:38,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:38,1
    - Dst: super::bindings::gf_blob_unregister
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:39,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:39,1
    - Dst: drop
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:40,1
    - Dst: Box::from_raw
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:40,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/blob.rs:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Blob::drop
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/blob.rs
    functionUses: 0
    functionsReached:
    - super::bindings::gf_free
    - drop
    - super::bindings::gf_blob_unregister
    - Box::from_raw
    - as_ptr
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/mp4san/mp4san-test/src/gpac/error.rs:15,1
    - Dst: super::bindings::gf_isom_last_error
      Src: /src/mp4san/mp4san-test/src/gpac/error.rs:15,1
    - Dst: std::ptr::null_mut
      Src: /src/mp4san/mp4san-test/src/gpac/error.rs:15,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    functionName: Error::last
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/error.rs
    functionUses: 0
    functionsReached:
    - std::ptr::null_mut
    - Self
    - super::bindings::gf_isom_last_error
    linkageType: ''
    returnType: Self
    signature: pub fn last() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/mp4san/mp4san-test/src/gpac/error.rs:19,1
    - Dst: super::bindings::gf_isom_last_error
      Src: /src/mp4san/mp4san-test/src/gpac/error.rs:19,1
    - Dst: Self::as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/error.rs:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - file
    argTypes:
    - NonNull<GF_ISOFile>
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Error::last_for_file
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/error.rs
    functionUses: 1
    functionsReached:
    - Self::as_ptr
    - Self
    - super::bindings::gf_isom_last_error
    linkageType: ''
    returnType: Self
    signature: 'pub unsafe fn last_for_file(file: NonNull<GF_ISOFile>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CStr::from_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/error.rs:25,1
    - Dst: super::bindings::gf_error_to_string
      Src: /src/mp4san/mp4san-test/src/gpac/error.rs:25,1
    - Dst: to_string_lossy
      Src: /src/mp4san/mp4san-test/src/gpac/error.rs:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: Error::fmt
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/error.rs
    functionUses: 0
    functionsReached:
    - super::bindings::gf_error_to_string
    - to_string_lossy
    - CStr::from_ptr
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::bindings::gf_isom_open
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:22,1
    - Dst: '&CStr::as_ptr'
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:22,1
    - Dst: std::ptr::null
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:22,1
    - Dst: NonNull::new
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:23,1
    - Dst: Self::ok_or_else
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:23,1
    - Dst: Ok
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - url
    argTypes:
    - '&CStr'
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: IsoFile::new
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/iso_file.rs
    functionUses: 1
    functionsReached:
    - Ok
    - '&CStr::as_ptr'
    - std::ptr::null
    - Self::ok_or_else
    - NonNull::new
    - super::bindings::gf_isom_open
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(url: &CStr) -> Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::bindings::gf_isom_get_sample_count
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:29,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:29,1
    - Dst: map
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:30,1
    - Dst: IsoFile::sample
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - track_number
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: IsoFile::samples
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/iso_file.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - super::bindings::gf_isom_get_sample_count
    - IsoFile::sample
    - map
    linkageType: ''
    returnType: impl Iterator
    signature: 'pub fn samples(&self, track_number: u32) -> impl Iterator<Item = Result<IsoSample>>
      + ''_'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:34,1
    - Dst: gf_isom_sample_new
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:36,1
    - Dst: super::bindings::gf_isom_get_sample_ex
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:38,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:39,1
    - Dst: NonNull::new
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:47,1
    - Dst: Ok
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:48,1
    - Dst: super::bindings::gf_isom_sample_del
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:50,1
    - Dst: Err
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:51,1
    - Dst: Error::last_for_file
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - track_number
    - sample_number
    argTypes:
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 3
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: IsoFile::sample
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/iso_file.rs
    functionUses: 1
    functionsReached:
    - Default::default
    - Ok
    - super::bindings::gf_isom_get_sample_ex
    - Err
    - Error::last_for_file
    - gf_isom_sample_new
    - NonNull::new
    - as_ptr
    - super::bindings::gf_isom_sample_del
    linkageType: ''
    returnType: Result
    signature: 'pub fn sample(&self, track_number: u32, sample_number: u32) -> Result<IsoSample>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: IsoSample::data_offset
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/iso_file.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn data_offset(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonNull::new
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:67,1
    - Dst: as_ref
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:67,1
    - Dst: slice::from_raw_parts
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:70,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:70,1
    - Dst: as_ref
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 73
    functionName: IsoSample::deref
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/iso_file.rs
    functionUses: 0
    functionsReached:
    - slice::from_raw_parts
    - as_ptr
    - NonNull::new
    - as_ref
    linkageType: ''
    returnType: '&Self::Target'
    signature: fn deref(&self) -> &Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::bindings::gf_isom_sample_del
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:79,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: IsoSample::drop
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/iso_file.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - super::bindings::gf_isom_sample_del
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::bindings
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:5,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:5,1
    - Dst: into
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:5,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 94
    functionName: isofile_method
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/iso_file.rs
    functionUses: 0
    functionsReached:
    - as_ptr
    - into
    - super::bindings
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: gf_isom_close
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:103,1
    - Dst: as_ptr
      Src: /src/mp4san/mp4san-test/src/gpac/iso_file.rs:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: IsoFile::drop
    functionSourceFile: /src/mp4san/mp4san-test/src/gpac/iso_file.rs
    functionUses: 0
    functionsReached:
    - gf_isom_close
    - as_ptr
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BufReader::with_capacity
      Src: /src/mp4san/webpsan/src/reader.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - chunk_name
    argTypes:
    - R
    - FourCC
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: ChunkReader::new
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 2
    functionsReached:
    - BufReader::with_capacity
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(input: R, chunk_name: FourCC) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkReader::read_padding
      Src: /src/mp4san/webpsan/src/reader.rs:47,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:49,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:50,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:53,1
    - Dst: fill_buf
      Src: /src/mp4san/webpsan/src/reader.rs:53,1
    - Dst: is_empty
      Src: /src/mp4san/webpsan/src/reader.rs:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: ChunkReader::has_remaining
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 2
    functionsReached:
    - Ok
    - ChunkReader::read_padding
    - is_empty
    - fill_buf
    linkageType: ''
    returnType: Result
    signature: pub fn has_remaining(&mut self) -> Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkReader::read_padding
      Src: /src/mp4san/webpsan/src/reader.rs:58,1
    - Dst: ChunkReader::has_remaining
      Src: /src/mp4san/webpsan/src/reader.rs:61,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:62,1
    - Dst: ChunkHeader::read
      Src: /src/mp4san/webpsan/src/reader.rs:64,1
    - Dst: io::Result::map_eof
      Src: /src/mp4san/webpsan/src/reader.rs:64,1
    - Dst: Error::Parse
      Src: /src/mp4san/webpsan/src/reader.rs:65,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/reader.rs:65,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/reader.rs:71,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:80,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/reader.rs:80,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 57
    functionDepth: 5
    functionLinenumber: 57
    functionLinenumberEnd: 81
    functionName: ChunkReader::peek_header
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 1
    functionsReached:
    - mediasan_common::bail_attach
    - io::Result::map_eof
    - Ok
    - ChunkReader::has_remaining
    - Some
    - ChunkReader::read_padding
    - Error::Parse
    - mediasan_common::report_attach
    - ChunkHeader::read
    linkageType: ''
    returnType: Result
    signature: pub fn peek_header(&mut self) -> Result<Option<FourCC>, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkReader::read_padding
      Src: /src/mp4san/webpsan/src/reader.rs:85,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/reader.rs:86,1
    - Dst: ChunkReader::read_any_header
      Src: /src/mp4san/webpsan/src/reader.rs:90,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/reader.rs:91,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - name
    argTypes:
    - FourCC
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 6
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: ChunkReader::read_header
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 1
    functionsReached:
    - ChunkReader::read_any_header
    - ChunkReader::read_padding
    - Ok
    - mediasan_common::ensure_attach
    linkageType: ''
    returnType: Result
    signature: 'pub fn read_header(&mut self, name: FourCC) -> Result<InputSpan, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkReader::read_padding
      Src: /src/mp4san/webpsan/src/reader.rs:102,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/reader.rs:105,1
    - Dst: ChunkHeader::read
      Src: /src/mp4san/webpsan/src/reader.rs:106,1
    - Dst: io::Result::map_eof
      Src: /src/mp4san/webpsan/src/reader.rs:106,1
    - Dst: Error::Parse
      Src: /src/mp4san/webpsan/src/reader.rs:107,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/reader.rs:107,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/reader.rs:113,1
    - Dst: NonZeroU32::new
      Src: /src/mp4san/webpsan/src/reader.rs:122,1
    - Dst: stream_position
      Src: /src/mp4san/webpsan/src/reader.rs:127,1
    - Dst: u64::from
      Src: /src/mp4san/webpsan/src/reader.rs:127,1
    - Dst: u64::from
      Src: /src/mp4san/webpsan/src/reader.rs:128,1
    - Dst: u64::from
      Src: /src/mp4san/webpsan/src/reader.rs:128,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 5
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: ChunkReader::read_any_header
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 2
    functionsReached:
    - mediasan_common::bail_attach
    - io::Result::map_eof
    - mediasan_common::ensure_attach
    - Ok
    - u64::from
    - ChunkReader::read_padding
    - Error::Parse
    - mediasan_common::report_attach
    - NonZeroU32::new
    - ChunkHeader::read
    - stream_position
    linkageType: ''
    returnType: Result
    signature: pub fn read_any_header(&mut self) -> Result<(FourCC, InputSpan), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkReader::read_data
      Src: /src/mp4san/webpsan/src/reader.rs:134,1
    - Dst: T::parse
      Src: /src/mp4san/webpsan/src/reader.rs:135,1
    - Dst: Result::while_parsing_chunk
      Src: /src/mp4san/webpsan/src/reader.rs:135,1
    - Dst: ChunkReader::current_chunk_name
      Src: /src/mp4san/webpsan/src/reader.rs:135,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: ChunkReader::parse_data
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 1
    functionsReached:
    - Result::while_parsing_chunk
    - Ok
    - ChunkReader::current_chunk_name
    - T::parse
    - ChunkReader::read_data
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse_data<T: ParseChunk>(&mut self) -> Result<T, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkReader::read_padding
      Src: /src/mp4san/webpsan/src/reader.rs:141,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/reader.rs:142,1
    - Dst: mediasan_common::ensure_matches_attach
      Src: /src/mp4san/webpsan/src/reader.rs:150,1
    - Dst: BytesMut::zeroed
      Src: /src/mp4san/webpsan/src/reader.rs:157,1
    - Dst: read_exact
      Src: /src/mp4san/webpsan/src/reader.rs:158,1
    - Dst: map_eof
      Src: /src/mp4san/webpsan/src/reader.rs:158,1
    - Dst: Error::Parse
      Src: /src/mp4san/webpsan/src/reader.rs:159,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/reader.rs:159,1
    - Dst: NonZeroU32::new
      Src: /src/mp4san/webpsan/src/reader.rs:165,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - len
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 171
      start: 140
    functionDepth: 4
    functionLinenumber: 140
    functionLinenumberEnd: 171
    functionName: ChunkReader::read_data
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 1
    functionsReached:
    - mediasan_common::bail_attach
    - BytesMut::zeroed
    - Ok
    - mediasan_common::ensure_matches_attach
    - ChunkReader::read_padding
    - Error::Parse
    - mediasan_common::report_attach
    - map_eof
    - read_exact
    - NonZeroU32::new
    linkageType: ''
    returnType: Result
    signature: 'pub fn read_data(&mut self, len: u32) -> Result<BytesMut, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkReader::read_padding
      Src: /src/mp4san/webpsan/src/reader.rs:175,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:176,1
    - Dst: skip
      Src: /src/mp4san/webpsan/src/reader.rs:184,1
    - Dst: Result::get
      Src: /src/mp4san/webpsan/src/reader.rs:184,1
    - Dst: Result::into
      Src: /src/mp4san/webpsan/src/reader.rs:184,1
    - Dst: map_eof
      Src: /src/mp4san/webpsan/src/reader.rs:184,1
    - Dst: Error::Parse
      Src: /src/mp4san/webpsan/src/reader.rs:185,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/reader.rs:185,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 174
    functionDepth: 5
    functionLinenumber: 174
    functionLinenumberEnd: 194
    functionName: ChunkReader::skip_data
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 1
    functionsReached:
    - Ok
    - skip
    - Result::get
    - ChunkReader::read_padding
    - Error::Parse
    - Result::into
    - map_eof
    - mediasan_common::report_attach
    linkageType: ''
    returnType: Result
    signature: pub fn skip_data(&mut self) -> Result<(), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: ChunkReader::data_reader
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ChunkDataReader
    signature: pub fn data_reader(&mut self) -> ChunkDataReader<'_, R>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ChunkReader::current_chunk_name
      Src: /src/mp4san/webpsan/src/reader.rs:203,1
    - Dst: ChunkReader::new
      Src: /src/mp4san/webpsan/src/reader.rs:204,1
    - Dst: ChunkReader::data_reader
      Src: /src/mp4san/webpsan/src/reader.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: ChunkReader::child_reader
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 0
    functionsReached:
    - ChunkReader::current_chunk_name
    - ChunkReader::data_reader
    - ChunkReader::new
    linkageType: ''
    returnType: ChunkReader
    signature: pub fn child_reader(&mut self) -> ChunkReader<ChunkDataReader<'_, R>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: ChunkReader::current_chunk_name
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: FourCC
    signature: fn current_chunk_name(&self) -> FourCC
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:218,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:219,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:220,1
    - Dst: BoxHeader::padded
      Src: /src/mp4san/webpsan/src/reader.rs:224,1
    - Dst: read_exact
      Src: /src/mp4san/webpsan/src/reader.rs:226,1
    - Dst: slice::from_mut
      Src: /src/mp4san/webpsan/src/reader.rs:226,1
    - Dst: map_eof
      Src: /src/mp4san/webpsan/src/reader.rs:226,1
    - Dst: Error::Parse
      Src: /src/mp4san/webpsan/src/reader.rs:227,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/reader.rs:227,1
    - Dst: mediasan_common::ensure_matches_attach
      Src: /src/mp4san/webpsan/src/reader.rs:232,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 3
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: ChunkReader::read_padding
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 6
    functionsReached:
    - Ok
    - BoxHeader::padded
    - mediasan_common::ensure_matches_attach
    - Error::Parse
    - mediasan_common::report_attach
    - map_eof
    - read_exact
    - slice::from_mut
    linkageType: ''
    returnType: Result
    signature: fn read_padding(&mut self) -> Result<State<PaddingReadToken>, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:248,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/reader.rs:255,1
    - Dst: Poll::min
      Src: /src/mp4san/webpsan/src/reader.rs:255,1
    - Dst: Result::get
      Src: /src/mp4san/webpsan/src/reader.rs:255,1
    - Dst: read
      Src: /src/mp4san/webpsan/src/reader.rs:256,1
    - Dst: NonZeroU32::new
      Src: /src/mp4san/webpsan/src/reader.rs:257,1
    - Dst: Result::get
      Src: /src/mp4san/webpsan/src/reader.rs:257,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 262
      start: 246
    functionDepth: 5
    functionLinenumber: 246
    functionLinenumberEnd: 262
    functionName: ChunkDataReader::read
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Result::get
    - len
    - read
    - NonZeroU32::new
    - Poll::min
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:268,1
    - Dst: Err
      Src: /src/mp4san/webpsan/src/reader.rs:269,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/reader.rs:269,1
    - Dst: Result::get
      Src: /src/mp4san/webpsan/src/reader.rs:276,1
    - Dst: Result::into
      Src: /src/mp4san/webpsan/src/reader.rs:276,1
    - Dst: Err
      Src: /src/mp4san/webpsan/src/reader.rs:277,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/reader.rs:277,1
    - Dst: skip
      Src: /src/mp4san/webpsan/src/reader.rs:280,1
    - Dst: NonZeroU32::new
      Src: /src/mp4san/webpsan/src/reader.rs:282,1
    - Dst: Result::get
      Src: /src/mp4san/webpsan/src/reader.rs:282,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/reader.rs:286,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 1
    argNames:
    - skip_amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 287
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 287
    functionName: ChunkDataReader::skip
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 0
    functionsReached:
    - Ok
    - skip
    - Result::get
    - Err
    - Result::into
    - NonZeroU32::new
    - into
    linkageType: ''
    returnType: io::Result
    signature: 'fn skip(&mut self, skip_amount: u64) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_position
      Src: /src/mp4san/webpsan/src/reader.rs:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: ChunkDataReader::stream_position
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 0
    functionsReached:
    - stream_position
    linkageType: ''
    returnType: io::Result
    signature: fn stream_position(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream_len
      Src: /src/mp4san/webpsan/src/reader.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: ChunkDataReader::stream_len
    functionSourceFile: /src/mp4san/webpsan/src/reader.rs
    functionUses: 0
    functionsReached:
    - stream_len
    linkageType: ''
    returnType: io::Result
    signature: fn stream_len(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/mp4san/webpsan/src/lib.rs:180,1
    - Dst: impl AsyncRead + Unpin::read_header
      Src: /src/mp4san/webpsan/src/lib.rs:181,1
    - Dst: impl AsyncRead + Unpin::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:182,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/lib.rs:186,1
    - Dst: sanitize_animated
      Src: /src/mp4san/webpsan/src/lib.rs:187,1
    - Dst: sanitize_still
      Src: /src/mp4san/webpsan/src/lib.rs:189,1
    - Dst: Result::attach_printable
      Src: /src/mp4san/webpsan/src/lib.rs:189,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/lib.rs:192,1
    - Dst: impl AsyncRead + Unpin::read_header
      Src: /src/mp4san/webpsan/src/lib.rs:193,1
    - Dst: impl AsyncRead + Unpin::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:194,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/lib.rs:198,1
    - Dst: impl AsyncRead + Unpin::read_header
      Src: /src/mp4san/webpsan/src/lib.rs:199,1
    - Dst: impl AsyncRead + Unpin::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:200,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/lib.rs:204,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 54
    argCount: 3
    argNames:
    - reader
    - vp8x
    - config
    argTypes:
    - '&mut DynChunkReader<''_>'
    - '&Vp8xChunk'
    - '&Config'
    constantsTouched: []
    func_position:
      end: 205
      start: 179
    functionDepth: 16
    functionLinenumber: 179
    functionLinenumberEnd: 205
    functionName: sanitize_extended
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 1
    functionsReached:
    - sanitize_still
    - Ok
    - contains
    - sanitize_animated
    - impl AsyncRead + Unpin::read_header
    - Result::attach_printable
    - impl AsyncRead + Unpin::skip_data
    linkageType: ''
    returnType: Result
    signature: 'fn sanitize_extended(reader: &mut DynChunkReader<''_>, vp8x: &Vp8xChunk,
      config: &Config) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/mp4san/webpsan/src/lib.rs:209,1
    - Dst: impl AsyncRead + Unpin::read_header
      Src: /src/mp4san/webpsan/src/lib.rs:210,1
    - Dst: impl AsyncRead + Unpin::parse_data
      Src: /src/mp4san/webpsan/src/lib.rs:211,1
    - Dst: sanitize_image_data
      Src: /src/mp4san/webpsan/src/lib.rs:212,1
    - Dst: impl AsyncRead + Unpin::data_reader
      Src: /src/mp4san/webpsan/src/lib.rs:212,1
    - Dst: impl AsyncRead + Unpin::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:213,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:215,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/lib.rs:218,1
    - Dst: impl AsyncRead + Unpin::read_any_header
      Src: /src/mp4san/webpsan/src/lib.rs:219,1
    - Dst: impl AsyncRead + Unpin::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:222,1
    - Dst: mediasan_common::ensure_matches_attach
      Src: /src/mp4san/webpsan/src/lib.rs:226,1
    - Dst: impl AsyncRead + Unpin::parse_data
      Src: /src/mp4san/webpsan/src/lib.rs:228,1
    - Dst: width
      Src: /src/mp4san/webpsan/src/lib.rs:229,1
    - Dst: height
      Src: /src/mp4san/webpsan/src/lib.rs:229,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/lib.rs:230,1
    - Dst: sanitize_image_data
      Src: /src/mp4san/webpsan/src/lib.rs:236,1
    - Dst: impl AsyncRead + Unpin::data_reader
      Src: /src/mp4san/webpsan/src/lib.rs:236,1
    - Dst: impl AsyncRead + Unpin::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:237,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/lib.rs:240,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/lib.rs:246,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 2
    argNames:
    - reader
    - vp8x
    argTypes:
    - '&mut DynChunkReader<''_>'
    - '&Vp8xChunk'
    constantsTouched: []
    func_position:
      end: 247
      start: 207
    functionDepth: 11
    functionLinenumber: 207
    functionLinenumberEnd: 247
    functionName: sanitize_still
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 1
    functionsReached:
    - height
    - mediasan_common::bail_attach
    - impl AsyncRead + Unpin::data_reader
    - mediasan_common::ensure_attach
    - sanitize_image_data
    - Ok
    - mediasan_common::ensure_matches_attach
    - contains
    - impl AsyncRead + Unpin::parse_data
    - impl AsyncRead + Unpin::read_any_header
    - Some
    - impl AsyncRead + Unpin::read_header
    - width
    - impl AsyncRead + Unpin::skip_data
    linkageType: ''
    returnType: Result
    signature: 'fn sanitize_still(reader: &mut DynChunkReader<''_>, vp8x: &Vp8xChunk)
      -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncRead + Unpin::read_header
      Src: /src/mp4san/webpsan/src/lib.rs:250,1
    - Dst: impl AsyncRead + Unpin::parse_data
      Src: /src/mp4san/webpsan/src/lib.rs:251,1
    - Dst: mediasan_common::ensure_matches_attach
      Src: /src/mp4san/webpsan/src/lib.rs:254,1
    - Dst: impl AsyncRead + Unpin::peek_header
      Src: /src/mp4san/webpsan/src/lib.rs:260,1
    - Dst: impl AsyncRead + Unpin::read_header
      Src: /src/mp4san/webpsan/src/lib.rs:261,1
    - Dst: impl AsyncRead + Unpin::parse_data
      Src: /src/mp4san/webpsan/src/lib.rs:262,1
    - Dst: x
      Src: /src/mp4san/webpsan/src/lib.rs:263,1
    - Dst: y
      Src: /src/mp4san/webpsan/src/lib.rs:263,1
    - Dst: width
      Src: /src/mp4san/webpsan/src/lib.rs:263,1
    - Dst: height
      Src: /src/mp4san/webpsan/src/lib.rs:263,1
    - Dst: impl AsyncRead + Unpin::child_reader
      Src: /src/mp4san/webpsan/src/lib.rs:269,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/lib.rs:272,1
    - Dst: ChunkReader::peek_header
      Src: /src/mp4san/webpsan/src/lib.rs:273,1
    - Dst: ChunkReader::read_header
      Src: /src/mp4san/webpsan/src/lib.rs:274,1
    - Dst: ChunkReader::parse_data
      Src: /src/mp4san/webpsan/src/lib.rs:275,1
    - Dst: sanitize_image_data
      Src: /src/mp4san/webpsan/src/lib.rs:276,1
    - Dst: ChunkReader::data_reader
      Src: /src/mp4san/webpsan/src/lib.rs:276,1
    - Dst: ChunkReader::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:277,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:279,1
    - Dst: ChunkReader::read_any_header
      Src: /src/mp4san/webpsan/src/lib.rs:283,1
    - Dst: Result::attach_printable
      Src: /src/mp4san/webpsan/src/lib.rs:283,1
    - Dst: ChunkReader::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:288,1
    - Dst: mediasan_common::ensure_matches_attach
      Src: /src/mp4san/webpsan/src/lib.rs:292,1
    - Dst: ChunkReader::parse_data
      Src: /src/mp4san/webpsan/src/lib.rs:294,1
    - Dst: width
      Src: /src/mp4san/webpsan/src/lib.rs:295,1
    - Dst: height
      Src: /src/mp4san/webpsan/src/lib.rs:295,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/lib.rs:296,1
    - Dst: sanitize_image_data
      Src: /src/mp4san/webpsan/src/lib.rs:302,1
    - Dst: ChunkReader::data_reader
      Src: /src/mp4san/webpsan/src/lib.rs:302,1
    - Dst: ChunkReader::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:303,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/lib.rs:306,1
    - Dst: ChunkReader::has_remaining
      Src: /src/mp4san/webpsan/src/lib.rs:313,1
    - Dst: ChunkReader::read_any_header
      Src: /src/mp4san/webpsan/src/lib.rs:314,1
    - Dst: Result::attach_printable
      Src: /src/mp4san/webpsan/src/lib.rs:314,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/lib.rs:318,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/lib.rs:323,1
    - Dst: ChunkReader::skip_data
      Src: /src/mp4san/webpsan/src/lib.rs:329,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/lib.rs:333,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 114
    argCount: 3
    argNames:
    - reader
    - vp8x
    - config
    argTypes:
    - '&mut DynChunkReader<''_>'
    - '&Vp8xChunk'
    - '&Config'
    constantsTouched: []
    func_position:
      end: 334
      start: 249
    functionDepth: 15
    functionLinenumber: 249
    functionLinenumberEnd: 334
    functionName: sanitize_animated
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 1
    functionsReached:
    - ChunkReader::skip_data
    - contains
    - ChunkReader::has_remaining
    - width
    - height
    - ChunkReader::read_any_header
    - ChunkReader::data_reader
    - Ok
    - impl AsyncRead + Unpin::child_reader
    - impl AsyncRead + Unpin::read_header
    - ChunkReader::read_header
    - mediasan_common::ensure_attach
    - sanitize_image_data
    - x
    - impl AsyncRead + Unpin::parse_data
    - Some
    - impl AsyncRead + Unpin::peek_header
    - mediasan_common::bail_attach
    - ChunkReader::peek_header
    - ChunkReader::parse_data
    - mediasan_common::ensure_matches_attach
    - y
    - Result::attach_printable
    linkageType: ''
    returnType: Result
    signature: 'fn sanitize_animated(reader: &mut DynChunkReader<''_>, vp8x: &Vp8xChunk,
      config: &Config) -> Result<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_header
      Src: /src/mp4san/webpsan/src/lib.rs:390,1
    - Dst: TestFileHeaderSpecBuilder::chunk_type
      Src: /src/mp4san/webpsan/src/lib.rs:390,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:390,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:391,1
    - Dst: TestWebpBuilder::header
      Src: /src/mp4san/webpsan/src/lib.rs:391,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:391,1
    - Dst: BoxHeader::build
      Src: /src/mp4san/webpsan/src/lib.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 389
    functionDepth: 16
    functionLinenumber: 389
    functionLinenumberEnd: 395
    functionName: test::not_riff
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestFileHeaderSpecBuilder::chunk_type
    - BoxHeader::build
    - clone
    - test_header
    - Some
    - TestWebpBuilder::header
    linkageType: ''
    returnType: void
    signature: pub fn not_riff()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_header
      Src: /src/mp4san/webpsan/src/lib.rs:399,1
    - Dst: TestFileHeaderSpecBuilder::name
      Src: /src/mp4san/webpsan/src/lib.rs:399,1
    - Dst: FourCC::clone
      Src: /src/mp4san/webpsan/src/lib.rs:399,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:400,1
    - Dst: TestWebpBuilder::header
      Src: /src/mp4san/webpsan/src/lib.rs:400,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:400,1
    - Dst: BoxHeader::build
      Src: /src/mp4san/webpsan/src/lib.rs:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 398
    functionDepth: 16
    functionLinenumber: 398
    functionLinenumberEnd: 404
    functionName: test::not_webp
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestFileHeaderSpecBuilder::name
    - BoxHeader::build
    - test_header
    - Some
    - FourCC::clone
    - TestWebpBuilder::header
    linkageType: ''
    returnType: void
    signature: pub fn not_webp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_header
      Src: /src/mp4san/webpsan/src/lib.rs:408,1
    - Dst: TestFileHeaderSpecBuilder::len
      Src: /src/mp4san/webpsan/src/lib.rs:408,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:408,1
    - Dst: Poll::clone
      Src: /src/mp4san/webpsan/src/lib.rs:408,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:409,1
    - Dst: TestWebpBuilder::header
      Src: /src/mp4san/webpsan/src/lib.rs:409,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:409,1
    - Dst: BoxHeader::build
      Src: /src/mp4san/webpsan/src/lib.rs:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 407
    functionDepth: 16
    functionLinenumber: 407
    functionLinenumberEnd: 413
    functionName: test::file_len_zero
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestFileHeaderSpecBuilder::len
    - BoxHeader::build
    - Some
    - test_header
    - TestWebpBuilder::header
    - Poll::clone
    linkageType: ''
    returnType: void
    signature: pub fn file_len_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_header
      Src: /src/mp4san/webpsan/src/lib.rs:417,1
    - Dst: TestFileHeaderSpecBuilder::len
      Src: /src/mp4san/webpsan/src/lib.rs:417,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:417,1
    - Dst: Poll::clone
      Src: /src/mp4san/webpsan/src/lib.rs:417,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:418,1
    - Dst: TestWebpBuilder::header
      Src: /src/mp4san/webpsan/src/lib.rs:418,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:418,1
    - Dst: BoxHeader::build
      Src: /src/mp4san/webpsan/src/lib.rs:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 16
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: test::file_len_one
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestFileHeaderSpecBuilder::len
    - BoxHeader::build
    - Some
    - test_header
    - TestWebpBuilder::header
    - Poll::clone
    linkageType: ''
    returnType: void
    signature: pub fn file_len_one()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_header
      Src: /src/mp4san/webpsan/src/lib.rs:426,1
    - Dst: TestFileHeaderSpecBuilder::len
      Src: /src/mp4san/webpsan/src/lib.rs:426,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:426,1
    - Dst: Poll::clone
      Src: /src/mp4san/webpsan/src/lib.rs:426,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:427,1
    - Dst: TestWebpBuilder::header
      Src: /src/mp4san/webpsan/src/lib.rs:427,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:427,1
    - Dst: BoxHeader::build
      Src: /src/mp4san/webpsan/src/lib.rs:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 425
    functionDepth: 16
    functionLinenumber: 425
    functionLinenumberEnd: 431
    functionName: test::file_len_invalid
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestFileHeaderSpecBuilder::len
    - BoxHeader::build
    - Some
    - test_header
    - TestWebpBuilder::header
    - Poll::clone
    linkageType: ''
    returnType: void
    signature: pub fn file_len_invalid()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:435,1
    - Dst: TestWebpBuilder::build
      Src: /src/mp4san/webpsan/src/lib.rs:435,1
    - Dst: TestWebp::sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:436,1
    - Dst: concat
      Src: /src/mp4san/webpsan/src/lib.rs:437,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/lib.rs:437,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/lib.rs:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 442
      start: 434
    functionDepth: 15
    functionLinenumber: 434
    functionLinenumberEnd: 442
    functionName: test::file_extra_data
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebp::sanitize_ok
    - TestWebpBuilder::build
    - concat
    - len
    - into
    linkageType: ''
    returnType: void
    signature: pub fn file_extra_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:446,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:446,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 445
    functionDepth: 4
    functionLinenumber: 445
    functionLinenumberEnd: 450
    functionName: test::image_data_missing
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - build
    linkageType: ''
    returnType: void
    signature: pub fn image_data_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:454,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:454,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:454,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 15
    functionLinenumber: 453
    functionLinenumberEnd: 455
    functionName: test::lossy
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn lossy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:459,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:459,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:459,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 458
    functionDepth: 15
    functionLinenumber: 458
    functionLinenumberEnd: 460
    functionName: test::lossless
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn lossless()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:464,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:464,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:464,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 463
    functionDepth: 15
    functionLinenumber: 463
    functionLinenumberEnd: 465
    functionName: test::vp8x_lossy
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_lossy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_alph
      Src: /src/mp4san/webpsan/src/lib.rs:469,1
    - Dst: TestAlphSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:469,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:469,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:470,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:470,1
    - Dst: alph
      Src: /src/mp4san/webpsan/src/lib.rs:470,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:470,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 468
    functionDepth: 15
    functionLinenumber: 468
    functionLinenumberEnd: 471
    functionName: test::vp8x_lossy_alpha_lossless
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_alph
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - alph
    - sanitize_ok
    - TestAlphSpecBuilder::flags
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_lossy_alpha_lossless()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_alph
      Src: /src/mp4san/webpsan/src/lib.rs:475,1
    - Dst: TestAlphSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:475,1
    - Dst: AlphFlags::empty
      Src: /src/mp4san/webpsan/src/lib.rs:475,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:475,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:476,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:476,1
    - Dst: alph
      Src: /src/mp4san/webpsan/src/lib.rs:476,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:476,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 15
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: test::vp8x_lossy_alpha_uncompressed
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_alph
    - AlphFlags::empty
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - alph
    - sanitize_ok
    - TestAlphSpecBuilder::flags
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_lossy_alpha_uncompressed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:481,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:481,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:481,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 482
      start: 480
    functionDepth: 15
    functionLinenumber: 480
    functionLinenumberEnd: 482
    functionName: test::vp8x_lossless
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_lossless()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:486,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:486,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 4
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: test::vp8x_lossless_alpha
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_lossless_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:494,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:494,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:494,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 493
    functionDepth: 15
    functionLinenumber: 493
    functionLinenumberEnd: 495
    functionName: test::vp8x_animated
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:499,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:499,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:499,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 498
    functionDepth: 4
    functionLinenumber: 498
    functionLinenumberEnd: 503
    functionName: test::vp8x_animated_empty
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - anmfs
    - test_webp
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:507,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:507,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:507,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:508,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:509,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:509,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:509,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:509,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 15
    functionLinenumber: 506
    functionLinenumberEnd: 511
    functionName: test::vp8x_animated_lossless
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - anmfs
    - sanitize_ok
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_lossless()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:515,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:515,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:515,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:516,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:517,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:517,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:517,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:517,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 15
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: test::vp8x_animated_lossy
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - anmfs
    - sanitize_ok
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_lossy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:523,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:523,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:523,1
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:523,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:523,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:523,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:524,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:524,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:524,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:524,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 522
    functionDepth: 15
    functionLinenumber: 522
    functionLinenumberEnd: 526
    functionName: test::vp8x_animated_lossy_lossless
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - anmfs
    - sanitize_ok
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_lossy_lossless()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:530,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:530,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:530,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:531,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:532,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:532,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:532,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 529
    functionDepth: 4
    functionLinenumber: 529
    functionLinenumberEnd: 536
    functionName: test::vp8x_animated_lossless_alpha
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - anmfs
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_lossless_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:540,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:540,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:540,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:541,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:542,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:542,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:542,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:542,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 15
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: test::vp8x_animated_lossy_alpha
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - anmfs
    - sanitize_ok
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_lossy_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:548,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:548,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:548,1
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:549,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:549,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:549,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:551,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:551,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:551,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:551,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 547
    functionDepth: 15
    functionLinenumber: 547
    functionLinenumberEnd: 553
    functionName: test::vp8x_animated_alpha_no_alpha
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - anmfs
    - sanitize_ok
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_alpha_no_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:557,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:557,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:557,1
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:558,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:558,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:558,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:560,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:560,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:560,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:560,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 562
      start: 556
    functionDepth: 15
    functionLinenumber: 556
    functionLinenumberEnd: 562
    functionName: test::vp8x_animated_no_alpha_alpha
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - anmfs
    - sanitize_ok
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_no_alpha_alpha()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:566,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:566,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:567,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:566,1
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:569,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:569,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:569,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:570,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:570,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:570,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:570,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:570,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 572
      start: 565
    functionDepth: 15
    functionLinenumber: 565
    functionLinenumberEnd: 572
    functionName: test::vp8x_animated_alph_missing
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - test_vp8x
    - clone
    - Some
    - anmfs
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    - sanitize_ok
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_alph_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:576,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:576,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:576,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:577,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:577,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:577,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 575
    functionDepth: 4
    functionLinenumber: 575
    functionLinenumberEnd: 581
    functionName: test::vp8x_animated_alph_wrong_order
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - clone
    - build
    - anmfs
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_alph_wrong_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:585,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:585,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:585,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:585,1
    - Dst: test_anmf
      Src: /src/mp4san/webpsan/src/lib.rs:586,1
    - Dst: TestAnmfSpecBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:586,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:586,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:587,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:587,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:587,1
    - Dst: anmfs
      Src: /src/mp4san/webpsan/src/lib.rs:587,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 584
    functionDepth: 4
    functionLinenumber: 584
    functionLinenumberEnd: 591
    functionName: test::vp8x_animated_unexpected_alph
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_anmf
    - TestAnmfSpecBuilder::chunks
    - test_webp
    - TestWebpBuilder::chunks
    - test_vp8x
    - clone
    - Some
    - anmfs
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_animated_unexpected_alph()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:595,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:595,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:595,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 599
      start: 594
    functionDepth: 4
    functionLinenumber: 594
    functionLinenumberEnd: 599
    functionName: test::vp8x_image_data_missing
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_image_data_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:603,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:603,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:603,1
    - Dst: Vp8xFlags::empty
      Src: /src/mp4san/webpsan/src/lib.rs:603,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:603,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:604,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:604,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:604,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 602
    functionDepth: 4
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: test::vp8x_unexpected_alph
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - Vp8xFlags::empty
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_unexpected_alph()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:612,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:612,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:612,1
    - Dst: Vp8xFlags::empty
      Src: /src/mp4san/webpsan/src/lib.rs:612,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:612,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:613,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:613,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:613,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 617
      start: 611
    functionDepth: 4
    functionLinenumber: 611
    functionLinenumberEnd: 617
    functionName: test::vp8x_unexpected_anim
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - Vp8xFlags::empty
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_unexpected_anim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:621,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:621,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:621,1
    - Dst: Vp8xFlags::empty
      Src: /src/mp4san/webpsan/src/lib.rs:621,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:621,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:622,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:622,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:622,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 620
    functionDepth: 4
    functionLinenumber: 620
    functionLinenumberEnd: 626
    functionName: test::vp8x_unexpected_anmf
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - Vp8xFlags::empty
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_unexpected_anmf()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:630,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:630,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:630,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:630,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:631,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:631,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:631,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 635
    functionName: test::vp8x_alph_missing
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_alph_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:639,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:639,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:639,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:639,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:640,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:640,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:640,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 644
      start: 638
    functionDepth: 4
    functionLinenumber: 638
    functionLinenumberEnd: 644
    functionName: test::vp8x_anim_missing
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_anim_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:648,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:648,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:648,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:648,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:649,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:649,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:649,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 647
    functionDepth: 4
    functionLinenumber: 647
    functionLinenumberEnd: 653
    functionName: test::vp8x_anim_anmf_missing
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_anim_anmf_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:657,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:657,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:657,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 658
      start: 656
    functionDepth: 15
    functionLinenumber: 656
    functionLinenumberEnd: 658
    functionName: test::vp8x_iccp
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_iccp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:662,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:662,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:662,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 663
      start: 661
    functionDepth: 15
    functionLinenumber: 661
    functionLinenumberEnd: 663
    functionName: test::vp8x_exif
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_exif()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:667,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:667,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:667,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 668
      start: 666
    functionDepth: 15
    functionLinenumber: 666
    functionLinenumberEnd: 668
    functionName: test::vp8x_xmp
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_xmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:672,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:672,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:672,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 671
    functionDepth: 15
    functionLinenumber: 671
    functionLinenumberEnd: 674
    functionName: test::vp8x_all_meta
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_all_meta()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:678,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:678,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 682
      start: 677
    functionDepth: 4
    functionLinenumber: 677
    functionLinenumberEnd: 682
    functionName: test::vp8x_wrong_order
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_wrong_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:686,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:686,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 690
      start: 685
    functionDepth: 4
    functionLinenumber: 685
    functionLinenumberEnd: 690
    functionName: test::vp8x_alph_wrong_order
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_alph_wrong_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:694,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:694,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 693
    functionDepth: 4
    functionLinenumber: 693
    functionLinenumberEnd: 698
    functionName: test::vp8x_iccp_wrong_order
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_iccp_wrong_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:702,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:702,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:702,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:706,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:706,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 710
      start: 701
    functionDepth: 4
    functionLinenumber: 701
    functionLinenumberEnd: 710
    functionName: test::vp8x_exif_wrong_order
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_exif_wrong_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:714,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:714,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 718
      start: 713
    functionDepth: 4
    functionLinenumber: 713
    functionLinenumberEnd: 718
    functionName: test::vp8x_xmp_wrong_order
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::chunks
    - test_webp
    - build
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_xmp_wrong_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:722,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:722,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:722,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:722,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:723,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:723,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:723,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 727
      start: 721
    functionDepth: 4
    functionLinenumber: 721
    functionLinenumberEnd: 727
    functionName: test::vp8x_iccp_missing
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_iccp_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:731,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:731,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:731,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:731,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:732,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:732,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:732,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 736
      start: 730
    functionDepth: 4
    functionLinenumber: 730
    functionLinenumberEnd: 736
    functionName: test::vp8x_exif_missing
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_exif_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:740,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:740,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:740,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:740,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:741,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:741,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:741,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 745
      start: 739
    functionDepth: 4
    functionLinenumber: 739
    functionLinenumberEnd: 745
    functionName: test::vp8x_xmp_missing
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_xmp_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:749,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:749,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:749,1
    - Dst: Vp8xFlags::empty
      Src: /src/mp4san/webpsan/src/lib.rs:749,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:749,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:750,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:750,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:750,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 754
      start: 748
    functionDepth: 4
    functionLinenumber: 748
    functionLinenumberEnd: 754
    functionName: test::vp8x_iccp_unexpected
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - Vp8xFlags::empty
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_iccp_unexpected()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:758,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:758,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:758,1
    - Dst: Vp8xFlags::empty
      Src: /src/mp4san/webpsan/src/lib.rs:758,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:758,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:759,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:759,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:759,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 763
      start: 757
    functionDepth: 4
    functionLinenumber: 757
    functionLinenumberEnd: 763
    functionName: test::vp8x_exif_unexpected
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - Vp8xFlags::empty
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_exif_unexpected()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:767,1
    - Dst: TestVp8xSpecBuilder::flags
      Src: /src/mp4san/webpsan/src/lib.rs:767,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/lib.rs:767,1
    - Dst: Vp8xFlags::empty
      Src: /src/mp4san/webpsan/src/lib.rs:767,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/lib.rs:767,1
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:768,1
    - Dst: TestWebpBuilder::chunks
      Src: /src/mp4san/webpsan/src/lib.rs:768,1
    - Dst: vp8x
      Src: /src/mp4san/webpsan/src/lib.rs:768,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 772
      start: 766
    functionDepth: 4
    functionLinenumber: 766
    functionLinenumberEnd: 772
    functionName: test::vp8x_xmp_unexpected
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - test_webp
    - TestWebpBuilder::chunks
    - Vp8xFlags::empty
    - test_vp8x
    - clone
    - Some
    - build
    - TestVp8xSpecBuilder::flags
    - vp8x
    linkageType: ''
    returnType: void
    signature: pub fn vp8x_xmp_unexpected()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_webp
      Src: /src/mp4san/webpsan/src/lib.rs:777,1
    - Dst: TestWebpBuilder::vp8l_data
      Src: /src/mp4san/webpsan/src/lib.rs:777,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/lib.rs:777,1
    - Dst: sanitize_ok
      Src: /src/mp4san/webpsan/src/lib.rs:777,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 778
      start: 775
    functionDepth: 15
    functionLinenumber: 775
    functionLinenumberEnd: 778
    functionName: test::lossless_max_image_data
    functionSourceFile: /src/mp4san/webpsan/src/lib.rs
    functionUses: 0
    functionsReached:
    - TestWebpBuilder::vp8l_data
    - test_webp
    - sanitize_ok
    - build
    linkageType: ''
    returnType: void
    signature: pub fn lossless_max_image_data()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 5
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Vp8xChunk::canvas_width
    functionSourceFile: /src/mp4san/webpsan/src/parse/vp8x.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: NonZeroU32
    signature: pub fn canvas_width(&self) -> NonZeroU32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 5
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: Vp8xChunk::canvas_height
    functionSourceFile: /src/mp4san/webpsan/src/parse/vp8x.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: NonZeroU32
    signature: pub fn canvas_height(&self) -> NonZeroU32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vp8xFlags::parse
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:53,1
    - Dst: while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:53,1
    - Dst: Reserved::parse
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:54,1
    - Dst: Result::while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:54,1
    - Dst: OneBasedU24::parse
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:55,1
    - Dst: Result::while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:55,1
    - Dst: OneBasedU24::parse
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:56,1
    - Dst: Result::while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:56,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:57,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: Vp8xChunk::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/vp8x.rs
    functionUses: 0
    functionsReached:
    - while_parsing_field
    - Result::while_parsing_field
    - Vp8xFlags::parse
    - mediasan_common::ensure_attach
    - Ok
    - OneBasedU24::parse
    - Reserved::parse
    linkageType: ''
    returnType: Result
    signature: 'fn parse(mut buf: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_buf
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:69,1
    - Dst: put_buf
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:70,1
    - Dst: NonZeroU32::put_buf
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:71,1
    - Dst: NonZeroU32::put_buf
      Src: /src/mp4san/webpsan/src/parse/vp8x.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut dyn BufMut'
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: Vp8xChunk::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/vp8x.rs
    functionUses: 0
    functionsReached:
    - put_buf
    - NonZeroU32::put_buf
    linkageType: ''
    returnType: void
    signature: 'fn put_buf(&self, mut buf: &mut dyn BufMut)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 33
    functionName: chunk_type
    functionSourceFile: /src/mp4san/webpsan/src/parse/header.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: ChunkHeader::padded
    functionSourceFile: /src/mp4san/webpsan/src/parse/header.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn padded(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: R::read_exact
      Src: /src/mp4san/webpsan/src/parse/header.rs:50,1
    - Dst: Self::parse
      Src: /src/mp4san/webpsan/src/parse/header.rs:51,1
    - Dst: map_err
      Src: /src/mp4san/webpsan/src/parse/header.rs:51,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/header.rs:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - input
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: ChunkHeader::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/header.rs
    functionUses: 2
    functionsReached:
    - R::read_exact
    - map_err
    - Self::parse
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'pub(crate) fn read<R: Read>(mut input: R) -> io::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/header.rs:63,1
    - Dst: FourCC::parse
      Src: /src/mp4san/webpsan/src/parse/header.rs:69,1
    - Dst: get_u32_le
      Src: /src/mp4san/webpsan/src/parse/header.rs:70,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/header.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: ChunkHeader::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - Ok
    - get_u32_le
    - mediasan_common::ensure_attach
    - FourCC::parse
    linkageType: ''
    returnType: Result
    signature: 'fn parse<B: Buf>(mut buf: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_buf
      Src: /src/mp4san/webpsan/src/parse/header.rs:75,1
    - Dst: put_u32_le
      Src: /src/mp4san/webpsan/src/parse/header.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: ChunkHeader::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - put_buf
    - put_u32_le
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FourCC::parse
      Src: /src/mp4san/webpsan/src/parse/header.rs:94,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/header.rs:96,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/header.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: WebpChunk::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - Ok
    - mediasan_common::ensure_attach
    - FourCC::parse
    linkageType: ''
    returnType: Result
    signature: 'fn parse(input: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_buf
      Src: /src/mp4san/webpsan/src/parse/header.rs:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut dyn BufMut'
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: WebpChunk::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/header.rs
    functionUses: 0
    functionsReached:
    - put_buf
    linkageType: ''
    returnType: void
    signature: 'fn put_buf(&self, out: &mut dyn BufMut)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestVp8xSpecBuilder::canvas_width
      Src: /src/mp4san/webpsan/src/parse/alph.rs:40,1
    - Dst: TestVp8xSpecBuilder::canvas_height
      Src: /src/mp4san/webpsan/src/parse/alph.rs:40,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/parse/alph.rs:41,1
    - Dst: BitBufReader::<_, LE>::with_capacity
      Src: /src/mp4san/webpsan/src/parse/alph.rs:42,1
    - Dst: LosslessImage::read
      Src: /src/mp4san/webpsan/src/parse/alph.rs:43,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/alph.rs:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - vp8x
    argTypes:
    - R
    - '&Vp8xChunk'
    constantsTouched: []
    func_position:
      end: 46
      start: 39
    functionDepth: 10
    functionLinenumber: 39
    functionLinenumberEnd: 46
    functionName: AlphChunk::sanitize_image_data
    functionSourceFile: /src/mp4san/webpsan/src/parse/alph.rs
    functionUses: 0
    functionsReached:
    - BitBufReader::<_, LE>::with_capacity
    - LosslessImage::read
    - Ok
    - contains
    - TestVp8xSpecBuilder::canvas_width
    - TestVp8xSpecBuilder::canvas_height
    linkageType: ''
    returnType: StdResult
    signature: 'pub fn sanitize_image_data<R: Read>(&self, input: R, vp8x: &Vp8xChunk)
      -> StdResult<(), Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AlphFlags::parse
      Src: /src/mp4san/webpsan/src/parse/alph.rs:55,1
    - Dst: while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/alph.rs:55,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/alph.rs:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: AlphChunk::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/alph.rs
    functionUses: 0
    functionsReached:
    - Ok
    - while_parsing_field
    - AlphFlags::parse
    linkageType: ''
    returnType: Result
    signature: 'fn parse(buf: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_buf
      Src: /src/mp4san/webpsan/src/parse/alph.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut dyn BufMut'
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: AlphChunk::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/alph.rs
    functionUses: 0
    functionsReached:
    - put_buf
    linkageType: ''
    returnType: void
    signature: 'fn put_buf(&self, buf: &mut dyn BufMut)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_of::<Self>
      Src: /src/mp4san/webpsan/src/parse/integers.rs:4,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/integers.rs:7,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/integers.rs:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 56
    functionName: webm_int
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - Ok
    - mediasan_common::ensure_attach
    - size_of::<Self>
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: U24::get
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn get(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/integers.rs:128,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/integers.rs:133,1
    - Dst: Self
      Src: /src/mp4san/webpsan/src/parse/integers.rs:133,1
    - Dst: get_uint_le
      Src: /src/mp4san/webpsan/src/parse/integers.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: U24::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 2
    functionsReached:
    - Ok
    - Self
    - mediasan_common::ensure_attach
    - get_uint_le
    linkageType: ''
    returnType: Result
    signature: 'fn parse<B: Buf>(mut buf: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_uint_le
      Src: /src/mp4san/webpsan/src/parse/integers.rs:137,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/parse/integers.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: U24::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - into
    - put_uint_le
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: OneBasedU24::get
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonZeroU32
    signature: pub fn get(&self) -> NonZeroU32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/integers.rs:155,1
    - Dst: saturating_add
      Src: /src/mp4san/webpsan/src/parse/integers.rs:160,1
    - Dst: get_uint_le
      Src: /src/mp4san/webpsan/src/parse/integers.rs:160,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/integers.rs:161,1
    - Dst: Self
      Src: /src/mp4san/webpsan/src/parse/integers.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: OneBasedU24::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 2
    functionsReached:
    - mediasan_common::ensure_attach
    - Ok
    - Self
    - saturating_add
    - get_uint_le
    linkageType: ''
    returnType: Result
    signature: 'fn parse<B: Buf>(mut buf: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_uint_le
      Src: /src/mp4san/webpsan/src/parse/integers.rs:165,1
    - Dst: u64::from
      Src: /src/mp4san/webpsan/src/parse/integers.rs:165,1
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/integers.rs:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: OneBasedU24::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - get
    - u64::from
    - put_uint_le
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/integers.rs:178,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/integers.rs:185,1
    - Dst: Self
      Src: /src/mp4san/webpsan/src/parse/integers.rs:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 186
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 186
    functionName: Reserved::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Self
    - mediasan_common::ensure_attach
    linkageType: ''
    returnType: Result
    signature: 'fn parse<B: Buf>(mut buf: B) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_u8
      Src: /src/mp4san/webpsan/src/parse/integers.rs:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - B
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: Reserved::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/integers.rs
    functionUses: 0
    functionsReached:
    - put_u8
    linkageType: ''
    returnType: void
    signature: 'fn put_buf<B: BufMut>(&self, mut buf: B)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: Vp8lChunk::width
    functionSourceFile: /src/mp4san/webpsan/src/parse/vp8l.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonZeroU16
    signature: pub fn width(&self) -> NonZeroU16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: Vp8lChunk::height
    functionSourceFile: /src/mp4san/webpsan/src/parse/vp8l.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NonZeroU16
    signature: pub fn height(&self) -> NonZeroU16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitBufReader::<_, LE>::with_capacity
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:53,1
    - Dst: LosslessImage::read
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:54,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:54,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:54,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - input
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 10
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: Vp8lChunk::sanitize_image_data
    functionSourceFile: /src/mp4san/webpsan/src/parse/vp8l.rs
    functionUses: 0
    functionsReached:
    - Ok
    - BitBufReader::<_, LE>::with_capacity
    - into
    - LosslessImage::read
    linkageType: ''
    returnType: StdResult
    signature: 'pub fn sanitize_image_data<R: Read>(&self, input: R) -> StdResult<(),
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: copy_to_slice
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:66,1
    - Dst: BitReader::<_, LE>::new
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:67,1
    - Dst: Cursor::new
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:67,1
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:69,1
    - Dst: Poll::unwrap
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:69,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:71,1
    - Dst: saturating_add
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:77,1
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:77,1
    - Dst: Poll::unwrap
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:77,1
    - Dst: saturating_add
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:78,1
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:78,1
    - Dst: Poll::unwrap
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:78,1
    - Dst: impl AsyncRead + Unpin::read_bit
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:79,1
    - Dst: Result::unwrap
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:79,1
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:80,1
    - Dst: Poll::unwrap
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:80,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:82,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/vp8l.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 85
      start: 64
    functionDepth: 4
    functionLinenumber: 64
    functionLinenumberEnd: 85
    functionName: Vp8lChunk::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/vp8l.rs
    functionUses: 0
    functionsReached:
    - mediasan_common::ensure_attach
    - Ok
    - impl AsyncRead + Unpin::read
    - copy_to_slice
    - impl AsyncRead + Unpin::read_bit
    - BitReader::<_, LE>::new
    - Result::unwrap
    - Cursor::new
    - Poll::unwrap
    - saturating_add
    linkageType: ''
    returnType: Result
    signature: 'fn parse(buf: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseResultExt::attach_printable
      Src: /src/mp4san/webpsan/src/parse/error.rs:49,1
    - Dst: WhileParsingChunk
      Src: /src/mp4san/webpsan/src/parse/error.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chunk_type
    argTypes:
    - FourCC
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: ParseResultExt::while_parsing_chunk
    functionSourceFile: /src/mp4san/webpsan/src/parse/error.rs
    functionUses: 0
    functionsReached:
    - ParseResultExt::attach_printable
    - WhileParsingChunk
    linkageType: ''
    returnType: Self
    signature: 'fn while_parsing_chunk(self, chunk_type: FourCC) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParseResultExt::attach_printable
      Src: /src/mp4san/webpsan/src/parse/error.rs:56,1
    - Dst: WhileParsingField
      Src: /src/mp4san/webpsan/src/parse/error.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - chunk_type
    - field_name
    argTypes:
    - FourCC
    - T
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: ParseResultExt::while_parsing_field
    functionSourceFile: /src/mp4san/webpsan/src/parse/error.rs
    functionUses: 0
    functionsReached:
    - ParseResultExt::attach_printable
    - WhileParsingField
    linkageType: ''
    returnType: Self
    signature: 'fn while_parsing_field<T>(self, chunk_type: FourCC, field_name: T)
      -> SelfwhereT: Display + Debug + Send + Sync + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncRead + Unpin::read_bit
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:174,1
    - Dst: Transform::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:175,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:175,1
    - Dst: transformed_width
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:177,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:179,1
    - Dst: transform_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:185,1
    - Dst: SpatiallyCodedImage::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:189,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:189,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 3
    argNames:
    - reader
    - width
    - height
    argTypes:
    - '&mut BitBufReader<R, LE>'
    - NonZeroU32
    - NonZeroU32
    constantsTouched: []
    func_position:
      end: 192
      start: 167
    functionDepth: 9
    functionLinenumber: 167
    functionLinenumberEnd: 192
    functionName: LosslessImage::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 2
    functionsReached:
    - mediasan_common::ensure_attach
    - Transform::read
    - SpatiallyCodedImage::read
    - Ok
    - impl AsyncRead + Unpin::read_bit
    - Result::while_parsing_type
    - transform_type
    - transformed_width
    linkageType: ''
    returnType: Result
    signature: 'pub fn read<R: Read>(reader: &mut BitBufReader<R, LE>,width: NonZeroU32,height:
      NonZeroU32,) -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TransformType::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:201,1
    - Dst: read::<u32>
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:203,1
    - Dst: attach_printable
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:203,1
    - Dst: WhileParsingTransform
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:205,1
    - Dst: pow
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:206,1
    - Dst: len_in_blocks
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:207,1
    - Dst: len_in_blocks
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:208,1
    - Dst: EntropyCodedImage::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:209,1
    - Dst: mediasan_common::ensure_matches_attach
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:210,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:216,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:209,1
    - Dst: Self::attach_printable
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:209,1
    - Dst: WhileParsingTransform
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:219,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:220,1
    - Dst: read::<u32>
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:223,1
    - Dst: attach_printable
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:223,1
    - Dst: WhileParsingTransform
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:225,1
    - Dst: pow
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:226,1
    - Dst: len_in_blocks
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:227,1
    - Dst: len_in_blocks
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:228,1
    - Dst: EntropyCodedImage::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:229,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:229,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:229,1
    - Dst: Self::attach_printable
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:229,1
    - Dst: WhileParsingTransform
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:231,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:232,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:234,1
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:236,1
    - Dst: Poll::attach_printable
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:236,1
    - Dst: WhileParsingTransform
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:236,1
    - Dst: saturating_add
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:237,1
    - Dst: EntropyCodedImage::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:238,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:238,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:238,1
    - Dst: Self::attach_printable
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:238,1
    - Dst: WhileParsingTransform
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:240,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:241,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 3
    argNames:
    - reader
    - width
    - height
    argTypes:
    - '&mut BitBufReader<R, LE>'
    - NonZeroU32
    - NonZeroU32
    constantsTouched: []
    func_position:
      end: 244
      start: 200
    functionDepth: 8
    functionLinenumber: 200
    functionLinenumberEnd: 244
    functionName: Transform::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 1
    functionsReached:
    - read::<u32>
    - TransformType::read
    - Poll::attach_printable
    - Ok
    - mediasan_common::ensure_matches_attach
    - impl AsyncRead + Unpin::read
    - len_in_blocks
    - pow
    - Result::while_parsing_type
    - WhileParsingTransform
    - Self::attach_printable
    - attach_printable
    - EntropyCodedImage::read
    - saturating_add
    linkageType: ''
    returnType: Result
    signature: 'fn read<R: Read>(reader: &mut BitBufReader<R, LE>, width: NonZeroU32,
      height: NonZeroU32) -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 253
    functionName: Transform::transform_type
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TransformType
    signature: fn transform_type(&self) -> TransformType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:258,1
    - Dst: len_in_blocks
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - width
    argTypes:
    - NonZeroU32
    constantsTouched: []
    func_position:
      end: 268
      start: 255
    functionDepth: 5
    functionLinenumber: 255
    functionLinenumberEnd: 268
    functionName: Transform::transformed_width
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached:
    - get
    - len_in_blocks
    linkageType: ''
    returnType: NonZeroU32
    signature: 'fn transformed_width(&self, width: NonZeroU32) -> NonZeroU32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:280,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:281,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:282,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:283,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut BitBufReader<R, LE>'
    constantsTouched: []
    func_position:
      end: 287
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 287
    functionName: TransformType::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 1
    functionsReached:
    - Ok
    - impl AsyncRead + Unpin::read
    linkageType: ''
    returnType: Result
    signature: 'fn read<R: Read>(reader: &mut BitBufReader<R, LE>) -> Result<Self,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorCache::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:301,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:301,1
    - Dst: PrefixCodeGroup::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:302,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:302,1
    - Dst: green_readahead_bits
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:303,1
    - Dst: arb_readahead_bits
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:304,1
    - Dst: backref_readahead_bits
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:305,1
    - Dst: u32::max
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:306,1
    - Dst: NonZeroU32::saturating_mul
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:308,1
    - Dst: Poll::get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:310,1
    - Dst: impl AsyncRead + Unpin::buf_bits
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:311,1
    - Dst: u64::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:311,1
    - Dst: impl AsyncRead + Unpin::fill_buf
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:312,1
    - Dst: impl AsyncRead + Unpin::buf_read_huffman
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:314,1
    - Dst: Color::buf_read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:316,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:316,1
    - Dst: fun
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:318,1
    - Dst: Poll::get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:320,1
    - Dst: BackReference::buf_read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:326,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:326,1
    - Dst: mediasan_common::ensure_matches_attach
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:328,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:334,1
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:339,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:344,1
    - Dst: Poll::get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:350,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:357,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 88
    argCount: 4
    argNames:
    - reader
    - width
    - height
    - fun
    argTypes:
    - '&mut BitBufReader<R, LE>'
    - NonZeroU32
    - NonZeroU32
    - F
    constantsTouched: []
    func_position:
      end: 358
      start: 295
    functionDepth: 7
    functionLinenumber: 295
    functionLinenumberEnd: 358
    functionName: EntropyCodedImage::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 2
    functionsReached:
    - BackReference::buf_read
    - impl AsyncRead + Unpin::buf_bits
    - Result::while_parsing_type
    - backref_readahead_bits
    - fun
    - u32::max
    - Ok
    - u64::from
    - impl AsyncRead + Unpin::fill_buf
    - arb_readahead_bits
    - impl AsyncRead + Unpin::buf_read_huffman
    - green_readahead_bits
    - mediasan_common::ensure_attach
    - ColorCache::read
    - Color::buf_read
    - NonZeroU32::saturating_mul
    - PrefixCodeGroup::read
    - mediasan_common::ensure_matches_attach
    - Poll::get
    - get
    linkageType: ''
    returnType: Result
    signature: 'fn read<R: Read, F: FnMut(Color) -> Result<(), Error>>(reader: &mut
      BitBufReader<R, LE>,width: NonZeroU32,height: NonZeroU32,mut fun: F,) -> Result<Self,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ColorCache::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:367,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:367,1
    - Dst: MetaPrefixCodes::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:368,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:368,1
    - Dst: AnyMp4Box::max_code_group
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:371,1
    - Dst: PrefixCodeGroup::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:372,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:372,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - reader
    - width
    - height
    argTypes:
    - '&mut BitBufReader<R, LE>'
    - NonZeroU32
    - NonZeroU32
    constantsTouched: []
    func_position:
      end: 375
      start: 366
    functionDepth: 9
    functionLinenumber: 366
    functionLinenumberEnd: 375
    functionName: SpatiallyCodedImage::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 1
    functionsReached:
    - Ok
    - ColorCache::read
    - Result::while_parsing_type
    - MetaPrefixCodes::read
    - AnyMp4Box::max_code_group
    - PrefixCodeGroup::read
    linkageType: ''
    returnType: Result
    signature: 'fn read<R: Read>(reader: &mut BitBufReader<R, LE>, width: NonZeroU32,
      height: NonZeroU32) -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncRead + Unpin::buf_read_lz77
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:412,1
    - Dst: impl AsyncRead + Unpin::buf_read_huffman
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:413,1
    - Dst: impl AsyncRead + Unpin::buf_read_lz77
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:414,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:414,1
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:415,1
    - Dst: u32::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:419,1
    - Dst: u32::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:419,1
    - Dst: checked_add_signed
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:419,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:420,1
    - Dst: and_then
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:419,1
    - Dst: unwrap_or
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:419,1
    - Dst: NonZeroU32::new
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:424,1
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:424,1
    - Dst: Self::unwrap_or_else
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:424,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:426,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 4
    argNames:
    - reader
    - len_symbol
    - codes
    - width
    argTypes:
    - '&mut BitBufReader<R, LE>'
    - u16
    - '&PrefixCodeGroup'
    - NonZeroU32
    constantsTouched: []
    func_position:
      end: 427
      start: 406
    functionDepth: 5
    functionLinenumber: 406
    functionLinenumberEnd: 427
    functionName: BackReference::buf_read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 1
    functionsReached:
    - Ok
    - checked_add_signed
    - u32::from
    - and_then
    - get
    - impl AsyncRead + Unpin::buf_read_huffman
    - Self::unwrap_or_else
    - NonZeroU32::new
    - unwrap_or
    - into
    - impl AsyncRead + Unpin::buf_read_lz77
    linkageType: ''
    returnType: Result
    signature: 'fn buf_read<R: Read>(reader: &mut BitBufReader<R, LE>,len_symbol:
      u16,codes: &PrefixCodeGroup,width: NonZeroU32,) -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:430,1
    - Dst: longest_code_len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - codes
    argTypes:
    - '&PrefixCodeGroup'
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: BackReference::readahead_bits
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 1
    functionsReached:
    - longest_code_len
    - u32::from
    linkageType: ''
    returnType: u32
    signature: 'fn readahead_bits(codes: &PrefixCodeGroup) -> u32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:440,1
    - Dst: impl AsyncRead + Unpin::buf_read_huffman
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:442,1
    - Dst: impl AsyncRead + Unpin::buf_read_huffman
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:443,1
    - Dst: impl AsyncRead + Unpin::buf_read_huffman
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - reader
    - green
    - codes
    argTypes:
    - '&mut BitBufReader<R, LE>'
    - u8
    - '&PrefixCodeGroup'
    constantsTouched: []
    func_position:
      end: 446
      start: 439
    functionDepth: 5
    functionLinenumber: 439
    functionLinenumberEnd: 446
    functionName: Color::buf_read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 1
    functionsReached:
    - Ok
    - impl AsyncRead + Unpin::buf_read_huffman
    linkageType: ''
    returnType: Result
    signature: 'fn buf_read<R: Read>(reader: &mut BitBufReader<R, LE>, green: u8,
      codes: &PrefixCodeGroup) -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - color
    argTypes:
    - Color
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: u32::from
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(color: Color) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncRead + Unpin::read_bit
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:461,1
    - Dst: read::<u8>
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:463,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:464,1
    - Dst: mediasan_common::ensure_matches_attach
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:465,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:471,1
    - Dst: Some
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:471,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut BitBufReader<R, LE>'
    constantsTouched: []
    func_position:
      end: 475
      start: 460
    functionDepth: 4
    functionLinenumber: 460
    functionLinenumberEnd: 475
    functionName: ColorCache::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 2
    functionsReached:
    - mediasan_common::ensure_attach
    - Ok
    - mediasan_common::ensure_matches_attach
    - impl AsyncRead + Unpin::read_bit
    - Some
    - read::<u8>
    linkageType: ''
    returnType: Result
    signature: 'fn read<R: Read>(reader: &mut BitBufReader<R, LE>) -> Result<Self,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:478,1
    - Dst: pow
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:478,1
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:478,1
    - Dst: Result::into
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:478,1
    - Dst: unwrap_or_default
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 479
      start: 477
    functionDepth: 5
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: ColorCache::len
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 1
    functionsReached:
    - pow
    - map
    - get
    - Result::into
    - unwrap_or_default
    linkageType: ''
    returnType: u16
    signature: fn len(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncRead + Unpin::read_bit
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:488,1
    - Dst: read::<u32>
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:490,1
    - Dst: pow
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:491,1
    - Dst: len_in_blocks
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:492,1
    - Dst: len_in_blocks
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:493,1
    - Dst: EntropyCodedImage::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:495,1
    - Dst: u16::max
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:496,1
    - Dst: u16::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:496,1
    - Dst: u16::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:496,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:497,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:495,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:500,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:502,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - reader
    - width
    - height
    argTypes:
    - '&mut BitBufReader<R, LE>'
    - NonZeroU32
    - NonZeroU32
    constantsTouched: []
    func_position:
      end: 504
      start: 487
    functionDepth: 8
    functionLinenumber: 487
    functionLinenumberEnd: 504
    functionName: MetaPrefixCodes::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 1
    functionsReached:
    - read::<u32>
    - u16::from
    - Ok
    - u16::max
    - len_in_blocks
    - pow
    - impl AsyncRead + Unpin::read_bit
    - Result::while_parsing_type
    - EntropyCodedImage::read
    linkageType: ''
    returnType: Result
    signature: 'fn read<R: Read>(reader: &mut BitBufReader<R, LE>, width: NonZeroU32,
      height: NonZeroU32) -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 511
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 511
    functionName: MetaPrefixCodes::max_code_group
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: fn max_code_group(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::read_prefix_code
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:520,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:520,1
    - Dst: Self::read_prefix_code
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:521,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:521,1
    - Dst: Self::read_prefix_code
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:522,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:522,1
    - Dst: Self::read_prefix_code
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:523,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:523,1
    - Dst: Self::read_prefix_code
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:524,1
    - Dst: Result::while_parsing_type
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:524,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:525,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - reader
    - color_cache
    argTypes:
    - '&mut BitBufReader<R, LE>'
    - '&ColorCache'
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 6
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: PrefixCodeGroup::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 2
    functionsReached:
    - Result::while_parsing_type
    - Ok
    - Self::read_prefix_code
    linkageType: ''
    returnType: Result
    signature: 'fn read<R: Read>(reader: &mut BitBufReader<R, LE>, color_cache: &ColorCache)
      -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncRead + Unpin::read_bit
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:536,1
    - Dst: impl AsyncRead + Unpin::read_bit
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:538,1
    - Dst: impl AsyncRead + Unpin::read_bit
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:540,1
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:542,1
    - Dst: Numeric::from_u8
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:544,1
    - Dst: impl AsyncRead + Unpin::read_bit
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:544,1
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:547,1
    - Dst: CanonicalHuffmanTree::from_symbols
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:552,1
    - Dst: CodeLengthPrefixCode::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:554,1
    - Dst: T::alphabet_size
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:556,1
    - Dst: '&ColorCache::len'
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:556,1
    - Dst: impl AsyncRead + Unpin::read_bit
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:557,1
    - Dst: read::<u32>
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:558,1
    - Dst: saturating_add
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:560,1
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:560,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:567,1
    - Dst: Vec::with_capacity
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:573,1
    - Dst: NonZeroU8::new
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:574,1
    - Dst: Self::unwrap_or_else
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:574,1
    - Dst: Self::len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:576,1
    - Dst: u16::into
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:576,1
    - Dst: impl AsyncRead + Unpin::read_huffman
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:580,1
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:583,1
    - Dst: read::<u8>
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:583,1
    - Dst: read::<u8>
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:584,1
    - Dst: read::<u8>
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:585,1
    - Dst: NonZeroU8::new
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:588,1
    - Dst: Self::len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:592,1
    - Dst: usize::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:592,1
    - Dst: mediasan_common::ensure_attach
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:593,1
    - Dst: Self::len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:599,1
    - Dst: map
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:599,1
    - Dst: as_
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:599,1
    - Dst: Self::extend
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:600,1
    - Dst: CanonicalHuffmanTree::new
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:604,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:606,1
    - Dst: T::new
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:606,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 119
    argCount: 2
    argNames:
    - reader
    - color_cache
    argTypes:
    - '&mut BitBufReader<R, LE>'
    - '&ColorCache'
    constantsTouched: []
    func_position:
      end: 607
      start: 528
    functionDepth: 5
    functionLinenumber: 528
    functionLinenumberEnd: 607
    functionName: PrefixCodeGroup::read_prefix_code
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached:
    - u16::into
    - as_
    - impl AsyncRead + Unpin::read
    - T::new
    - impl AsyncRead + Unpin::read_huffman
    - Ok
    - usize::from
    - Self::extend
    - impl AsyncRead + Unpin::read_bit
    - Self::unwrap_or_else
    - '&ColorCache::len'
    - saturating_add
    - mediasan_common::ensure_attach
    - Self::len
    - map
    - CanonicalHuffmanTree::from_symbols
    - read::<u8>
    - T::alphabet_size
    - read::<u32>
    - Vec::with_capacity
    - CanonicalHuffmanTree::new
    - get
    - Numeric::from_u8
    - NonZeroU8::new
    - CodeLengthPrefixCode::read
    linkageType: ''
    returnType: Result
    signature: 'fn read_prefix_code<R: Read, T: PrefixCode>(reader: &mut BitBufReader<R,
      LE>,color_cache: &ColorCache,) -> Result<T, Error>whereusize: AsPrimitive<T::Symbol>,T::Symbol:
      Copy + Ord + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: longest_code_len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 611
    functionName: PrefixCodeGroup::green_readahead_bits
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached:
    - longest_code_len
    linkageType: ''
    returnType: u32
    signature: pub fn green_readahead_bits(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: longest_code_len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:614,1
    - Dst: longest_code_len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:614,1
    - Dst: longest_code_len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 615
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 615
    functionName: PrefixCodeGroup::arb_readahead_bits
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached:
    - longest_code_len
    linkageType: ''
    returnType: u32
    signature: pub fn arb_readahead_bits(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: longest_code_len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:618,1
    - Dst: BackReference::readahead_bits
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 619
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 619
    functionName: PrefixCodeGroup::backref_readahead_bits
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached:
    - longest_code_len
    - BackReference::readahead_bits
    linkageType: ''
    returnType: u32
    signature: pub fn backref_readahead_bits(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: usize::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:630,1
    - Dst: read::<u8>
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:630,1
    - Dst: Default::default
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:632,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:632,1
    - Dst: iter
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:633,1
    - Dst: by_ref
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:634,1
    - Dst: take
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:634,1
    - Dst: usize::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:635,1
    - Dst: impl AsyncRead + Unpin::read
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:635,1
    - Dst: usize::from
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:638,1
    - Dst: CanonicalHuffmanTree::new
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:641,1
    - Dst: Result::attach_printable
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:641,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut BitBufReader<R, LE>'
    constantsTouched: []
    func_position:
      end: 643
      start: 627
    functionDepth: 5
    functionLinenumber: 627
    functionLinenumberEnd: 643
    functionName: CodeLengthPrefixCode::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 1
    functionsReached:
    - Default::default
    - take
    - iter
    - Ok
    - impl AsyncRead + Unpin::read
    - usize::from
    - CanonicalHuffmanTree::new
    - len
    - Result::attach_printable
    - by_ref
    - read::<u8>
    linkageType: ''
    returnType: Result
    signature: 'fn read<R: Read>(reader: &mut BitBufReader<R, LE>) -> Result<Self,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tree
    argTypes:
    - CanonicalHuffmanTree<LE, Self::Symbol>
    constantsTouched: []
    func_position:
      end: 655
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 655
    functionName: GreenPrefixCode::new
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(tree: CanonicalHuffmanTree<LE, Self::Symbol>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - color_cache_len
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 659
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 659
    functionName: GreenPrefixCode::alphabet_size
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: 'fn alphabet_size(color_cache_len: u16) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tree
    argTypes:
    - CanonicalHuffmanTree<LE, Self::Symbol>
    constantsTouched: []
    func_position:
      end: 671
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 671
    functionName: ARBPrefixCode::new
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(tree: CanonicalHuffmanTree<LE, Self::Symbol>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _color_cache_len
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 675
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 675
    functionName: ARBPrefixCode::alphabet_size
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: 'fn alphabet_size(_color_cache_len: u16) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tree
    argTypes:
    - CanonicalHuffmanTree<LE, Self::Symbol>
    constantsTouched: []
    func_position:
      end: 687
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 687
    functionName: DistancePrefixCode::new
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(tree: CanonicalHuffmanTree<LE, Self::Symbol>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _color_cache_len
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 691
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 691
    functionName: DistancePrefixCode::alphabet_size
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: 'fn alphabet_size(_color_cache_len: u16) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroU32::new
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:699,1
    - Dst: num_integer::div_ceil
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:699,1
    - Dst: Poll::get
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:699,1
    - Dst: u16::into
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:699,1
    - Dst: Self::unwrap_or_else
      Src: /src/mp4san/webpsan/src/parse/lossless.rs:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - len
    - block_size
    argTypes:
    - NonZeroU32
    - u16
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 5
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: len_in_blocks
    functionSourceFile: /src/mp4san/webpsan/src/parse/lossless.rs
    functionUses: 3
    functionsReached:
    - u16::into
    - Poll::get
    - Self::unwrap_or_else
    - NonZeroU32::new
    - num_integer::div_ceil
    linkageType: ''
    returnType: NonZeroU32
    signature: 'fn len_in_blocks(len: NonZeroU32, block_size: u16) -> NonZeroU32'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 5
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: AnmfChunk::x
    functionSourceFile: /src/mp4san/webpsan/src/parse/anmf.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: u32
    signature: pub fn x(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: AnmfChunk::y
    functionSourceFile: /src/mp4san/webpsan/src/parse/anmf.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: u32
    signature: pub fn y(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 5
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: AnmfChunk::width
    functionSourceFile: /src/mp4san/webpsan/src/parse/anmf.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: NonZeroU32
    signature: pub fn width(&self) -> NonZeroU32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 5
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: AnmfChunk::height
    functionSourceFile: /src/mp4san/webpsan/src/parse/anmf.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: NonZeroU32
    signature: pub fn height(&self) -> NonZeroU32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: AnmfChunk::duration
    functionSourceFile: /src/mp4san/webpsan/src/parse/anmf.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: u32
    signature: pub fn duration(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: U24::parse
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:68,1
    - Dst: Result::while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:68,1
    - Dst: U24::parse
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:69,1
    - Dst: Result::while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:69,1
    - Dst: OneBasedU24::parse
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:70,1
    - Dst: Result::while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:70,1
    - Dst: OneBasedU24::parse
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:71,1
    - Dst: Result::while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:71,1
    - Dst: U24::parse
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:72,1
    - Dst: Result::while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:72,1
    - Dst: AnmfFlags::parse
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:73,1
    - Dst: while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:73,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:74,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 75
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 75
    functionName: AnmfChunk::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/anmf.rs
    functionUses: 0
    functionsReached:
    - while_parsing_field
    - Result::while_parsing_field
    - AnmfFlags::parse
    - Ok
    - OneBasedU24::parse
    - U24::parse
    linkageType: ''
    returnType: Result
    signature: 'fn parse(mut buf: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::put_buf
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:81,1
    - Dst: put_buf
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:82,1
    - Dst: NonZeroU32::put_buf
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:83,1
    - Dst: NonZeroU32::put_buf
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:84,1
    - Dst: u32::put_buf
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:85,1
    - Dst: put_buf
      Src: /src/mp4san/webpsan/src/parse/anmf.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut dyn BufMut'
    constantsTouched: []
    func_position:
      end: 87
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 87
    functionName: AnmfChunk::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/anmf.rs
    functionUses: 0
    functionsReached:
    - put_buf
    - NonZeroU32::put_buf
    - u32::put_buf
    - Result::put_buf
    linkageType: ''
    returnType: void
    signature: 'fn put_buf(&self, mut buf: &mut dyn BufMut)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u32::parse
      Src: /src/mp4san/webpsan/src/parse/anim.rs:27,1
    - Dst: while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/anim.rs:27,1
    - Dst: u16::parse
      Src: /src/mp4san/webpsan/src/parse/anim.rs:28,1
    - Dst: while_parsing_field
      Src: /src/mp4san/webpsan/src/parse/anim.rs:28,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/anim.rs:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut BytesMut'
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: AnimChunk::parse
    functionSourceFile: /src/mp4san/webpsan/src/parse/anim.rs
    functionUses: 0
    functionsReached:
    - Ok
    - while_parsing_field
    - u32::parse
    - u16::parse
    linkageType: ''
    returnType: Result
    signature: 'fn parse(mut buf: &mut BytesMut) -> Result<Self, ParseError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: put_buf
      Src: /src/mp4san/webpsan/src/parse/anim.rs:36,1
    - Dst: put_buf
      Src: /src/mp4san/webpsan/src/parse/anim.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut dyn BufMut'
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: AnimChunk::put_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/anim.rs
    functionUses: 0
    functionsReached:
    - put_buf
    linkageType: ''
    returnType: void
    signature: 'fn put_buf(&self, mut buf: &mut dyn BufMut)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:42,1
    - Dst: BitReader::new
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:42,1
    - Dst: Cursor::new
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:42,1
    - Dst: Vec::with_capacity
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - input
    - capacity
    argTypes:
    - R
    - usize
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: BitBufReader::with_capacity
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 0
    functionsReached:
    - Cursor::new
    - BitReader::new
    - Vec::with_capacity
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_capacity(input: R, capacity: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitBufReader::buf_bit_pos
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:46,1
    - Dst: as_mut
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:49,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:50,1
    - Dst: std::mem::replace
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:53,1
    - Dst: BitReader::new
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:53,1
    - Dst: Cursor::new
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:53,1
    - Dst: Vec::new
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:53,1
    - Dst: impl AsyncRead + Unpin::into_reader
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:54,1
    - Dst: into_inner
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:54,1
    - Dst: drain
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:56,1
    - Dst: take
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:57,1
    - Dst: capacity
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:57,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:57,1
    - Dst: read_to_end
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:57,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:58,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:61,1
    - Dst: BitReader::new
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:63,1
    - Dst: Cursor::new
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:63,1
    - Dst: skip
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:64,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: BitBufReader::fill_buf
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 3
    functionsReached:
    - take
    - impl AsyncRead + Unpin::into_reader
    - std::mem::replace
    - BitReader::new
    - Ok
    - Vec::new
    - skip
    - as_mut
    - into_inner
    - len
    - BitBufReader::buf_bit_pos
    - drain
    - Cursor::new
    - read_to_end
    - capacity
    linkageType: ''
    returnType: Result
    signature: pub fn fill_buf(&mut self) -> Result<(), Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitBufReader::buf_bit_pos
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: BitBufReader::buf_bits
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 3
    functionsReached:
    - BitBufReader::buf_bit_pos
    linkageType: ''
    returnType: u64
    signature: pub fn buf_bits(&mut self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:73,1
    - Dst: map_eof
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:73,1
    - Dst: Error::Parse
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:75,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - bits
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: BitBufReader::buf_read
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 1
    functionsReached:
    - read
    - mediasan_common::report_attach
    - map_eof
    - Error::Parse
    linkageType: ''
    returnType: Result
    signature: 'pub fn buf_read<T: Numeric>(&mut self, bits: u32) -> Result<T, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_bit
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:79,1
    - Dst: map_eof
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:79,1
    - Dst: Error::Parse
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:81,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 82
    functionName: BitBufReader::buf_read_bit
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 1
    functionsReached:
    - read_bit
    - Error::Parse
    - mediasan_common::report_attach
    - map_eof
    linkageType: ''
    returnType: Result
    signature: pub fn buf_read_bit(&mut self) -> Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_huffman
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:85,1
    - Dst: map_eof
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:85,1
    - Dst: Error::Parse
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:87,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - tree
    argTypes:
    - '&CanonicalHuffmanTree<E, T>'
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 4
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: BitBufReader::buf_read_huffman
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 1
    functionsReached:
    - Error::Parse
    - mediasan_common::report_attach
    - map_eof
    - read_huffman
    linkageType: ''
    returnType: Result
    signature: 'pub fn buf_read_huffman<T: Clone>(&mut self, tree: &CanonicalHuffmanTree<E,
      T>) -> Result<T, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:92,1
    - Dst: saturating_add
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:92,1
    - Dst: Result::into
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:92,1
    - Dst: u32::from
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:94,1
    - Dst: u32::from
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:95,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:96,1
    - Dst: saturating_add
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:96,1
    - Dst: buf_read::<u32>
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:96,1
    - Dst: mediasan_common::bail_attach
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - prefix_code
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: BitBufReader::buf_read_lz77
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 0
    functionsReached:
    - mediasan_common::bail_attach
    - Ok
    - u32::from
    - Result::into
    - buf_read::<u32>
    - saturating_add
    linkageType: ''
    returnType: Result
    signature: 'pub fn buf_read_lz77(&mut self, prefix_code: u16) -> Result<NonZeroU32,
      Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitBufReader::buf_bits
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:103,1
    - Dst: u32::into
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:103,1
    - Dst: BitBufReader::fill_buf
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:104,1
    - Dst: BitBufReader::buf_read
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - bits
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 4
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: BitBufReader::read
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 0
    functionsReached:
    - BitBufReader::fill_buf
    - BitBufReader::buf_read
    - BitBufReader::buf_bits
    - u32::into
    linkageType: ''
    returnType: Result
    signature: 'pub fn read<T: Numeric>(&mut self, bits: u32) -> Result<T, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitBufReader::buf_bits
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:110,1
    - Dst: BitBufReader::fill_buf
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:111,1
    - Dst: BitBufReader::buf_read_bit
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 114
    functionName: BitBufReader::read_bit
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 0
    functionsReached:
    - BitBufReader::fill_buf
    - BitBufReader::buf_bits
    - BitBufReader::buf_read_bit
    linkageType: ''
    returnType: Result
    signature: pub fn read_bit(&mut self) -> Result<bool, Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitBufReader::buf_bits
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:117,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:117,1
    - Dst: BitBufReader::fill_buf
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:118,1
    - Dst: BitBufReader::buf_read_huffman
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - tree
    argTypes:
    - '&CanonicalHuffmanTree<E, T>'
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 4
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: BitBufReader::read_huffman
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 0
    functionsReached:
    - into
    - BitBufReader::fill_buf
    - BitBufReader::buf_bits
    - BitBufReader::buf_read_huffman
    linkageType: ''
    returnType: Result
    signature: 'pub fn read_huffman<T: Clone>(&mut self, tree: &CanonicalHuffmanTree<E,
      T>) -> Result<T, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: position_in_bits
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:124,1
    - Dst: unwrap_or_else
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: BitBufReader::buf_bit_pos
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 2
    functionsReached:
    - unwrap_or_else
    - position_in_bits
    linkageType: ''
    returnType: u64
    signature: fn buf_bit_pos(&mut self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::symbols
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:137,1
    - Dst: Self::from_symbols
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - code_lengths
    argTypes:
    - '&mut [(S, u8)]'
    constantsTouched: []
    func_position:
      end: 140
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: CanonicalHuffmanTree::new
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 4
    functionsReached:
    - Self::symbols
    - Self::from_symbols
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(code_lengths: &mut [(S, u8)]) -> Result<Self, Error>whereS:
      Copy + Debug + Ord + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:145,1
    - Dst: Self::map
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:145,1
    - Dst: Result::len
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:145,1
    - Dst: max
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:145,1
    - Dst: unwrap_or_default
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:145,1
    - Dst: bitstream_io::huffman::compile_read_tree
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:148,1
    - Dst: map_err
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:148,1
    - Dst: mediasan_common::report_attach
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:148,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - symbols
    argTypes:
    - Vec<(S, Vec<u8>)>
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: CanonicalHuffmanTree::from_symbols
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Result::len
    - Result::iter
    - map_err
    - mediasan_common::report_attach
    - unwrap_or_default
    - max
    - bitstream_io::huffman::compile_read_tree
    - Self::map
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_symbols(symbols: Vec<(S, Vec<u8>)>) -> Result<Self, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: CanonicalHuffmanTree::read_tree
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[ReadHuffmanTree'
    signature: pub fn read_tree(&self) -> &[ReadHuffmanTree<E, S>]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    functionName: CanonicalHuffmanTree::longest_code_len
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn longest_code_len(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [(S, u8)]::sort_unstable_by_key'
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:164,1
    - Dst: '&mut [(S, u8)]::partition_point'
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:165,1
    - Dst: Vec::with_capacity
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:171,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:171,1
    - Dst: Result::resize
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:172,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:172,1
    - Dst: Vec::with_capacity
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:174,1
    - Dst: '&mut [(S, u8)]::len'
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:174,1
    - Dst: Result::push
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:175,1
    - Dst: Result::clone
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:175,1
    - Dst: Result::iter_mut
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:177,1
    - Dst: rev
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:177,1
    - Dst: Result::resize
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:183,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:183,1
    - Dst: Result::push
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:184,1
    - Dst: Result::clone
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 61
    argCount: 1
    argNames:
    - code_lengths
    argTypes:
    - '&mut [(S, u8)]'
    constantsTouched: []
    func_position:
      end: 190
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 190
    functionName: CanonicalHuffmanTree::symbols
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 0
    functionsReached:
    - '&mut [(S, u8)]::len'
    - Vec::with_capacity
    - '&mut [(S, u8)]::sort_unstable_by_key'
    - Result::push
    - '&mut [(S, u8)]::partition_point'
    - rev
    - Result::resize
    - Result::clone
    - into
    - Result::iter_mut
    linkageType: ''
    returnType: Vec
    signature: 'fn symbols(code_lengths: &mut [(S, u8)]) -> Vec<(S, Vec<u8>)>whereS:
      Copy + Ord + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_symbols
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:195,1
    - Dst: Result::unwrap_or_else
      Src: /src/mp4san/webpsan/src/parse/bitstream.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 5
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: CanonicalHuffmanTree::default
    functionSourceFile: /src/mp4san/webpsan/src/parse/bitstream.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_or_else
    - Self::from_symbols
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/webpsan/src/util/test.rs:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10
      start: 8
    functionDepth: 3
    functionLinenumber: 8
    functionLinenumberEnd: 10
    functionName: test_alph
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 3
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: TestAlphSpecBuilder
    signature: pub fn test_alph() -> TestAlphSpecBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/webpsan/src/util/test.rs:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 3
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: test_anmf
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 11
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: TestAnmfSpecBuilder
    signature: pub fn test_anmf() -> TestAnmfSpecBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/webpsan/src/util/test.rs:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 3
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: test_header
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 5
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: TestFileHeaderSpecBuilder
    signature: pub fn test_header() -> TestFileHeaderSpecBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/webpsan/src/util/test.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: test_vp8x
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 15
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: TestVp8xSpecBuilder
    signature: pub fn test_vp8x() -> TestVp8xSpecBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/mp4san/webpsan/src/util/test.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: test_webp
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 49
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: TestWebpBuilder
    signature: pub fn test_webp() -> TestWebpBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/webpsan/src/util/test.rs:29,1
    - Dst: '&mut Vec<u8>::put_u32_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:30,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/util/test.rs:30,1
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/webpsan/src/util/test.rs:31,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/util/test.rs:32,1
    - Dst: '&mut Vec<u8>::put_u8'
      Src: /src/mp4san/webpsan/src/util/test.rs:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - out
    - name
    - data
    argTypes:
    - '&mut Vec<u8>'
    - '&[u8; 4]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: write_test_chunk
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 4
    functionsReached:
    - '&mut Vec<u8>::put_u32_le'
    - '&mut Vec<u8>::put_u8'
    - len
    - '&mut Vec<u8>::extend_from_slice'
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_chunk(out: &mut Vec<u8>, name: &[u8; 4], data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/webpsan/src/util/test.rs:38,1
    - Dst: '&mut Vec<u8>::put_u32_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:39,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/util/test.rs:39,1
    - Dst: '&mut Vec<u8>::put_u8'
      Src: /src/mp4san/webpsan/src/util/test.rs:40,1
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/webpsan/src/util/test.rs:41,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/util/test.rs:42,1
    - Dst: '&mut Vec<u8>::put_u8'
      Src: /src/mp4san/webpsan/src/util/test.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 3
    argNames:
    - out
    - flags
    - data
    argTypes:
    - '&mut Vec<u8>'
    - u8
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: write_test_alph
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 1
    functionsReached:
    - '&mut Vec<u8>::put_u32_le'
    - '&mut Vec<u8>::put_u8'
    - len
    - '&mut Vec<u8>::extend_from_slice'
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_alph(out: &mut Vec<u8>, flags: u8, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/webpsan/src/util/test.rs:48,1
    - Dst: '&mut Vec<u8>::put_u32_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:49,1
    - Dst: '&mut Vec<u8>::put_u32_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:50,1
    - Dst: '&mut Vec<u8>::put_u16_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: write_test_anim
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 1
    functionsReached:
    - '&mut Vec<u8>::put_u16_le'
    - '&mut Vec<u8>::put_u32_le'
    - '&mut Vec<u8>::extend_from_slice'
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_anim(out: &mut Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/webpsan/src/util/test.rs:55,1
    - Dst: '&mut Vec<u8>::put_u32_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:56,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/util/test.rs:56,1
    - Dst: '&mut Vec<u8>::put_uint_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:57,1
    - Dst: Result::into
      Src: /src/mp4san/webpsan/src/util/test.rs:57,1
    - Dst: '&mut Vec<u8>::put_uint_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:58,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/util/test.rs:58,1
    - Dst: '&mut Vec<u8>::put_uint_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:59,1
    - Dst: NonZeroU32::into
      Src: /src/mp4san/webpsan/src/util/test.rs:59,1
    - Dst: '&mut Vec<u8>::put_uint_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:60,1
    - Dst: NonZeroU32::into
      Src: /src/mp4san/webpsan/src/util/test.rs:60,1
    - Dst: '&mut Vec<u8>::put_uint_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:61,1
    - Dst: '&mut Vec<u8>::put_u8'
      Src: /src/mp4san/webpsan/src/util/test.rs:62,1
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/webpsan/src/util/test.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 6
    argNames:
    - out
    - x
    - y
    - width
    - height
    - data
    argTypes:
    - '&mut Vec<u8>'
    - u32
    - u32
    - u32
    - u32
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 64
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 64
    functionName: write_test_anmf
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 1
    functionsReached:
    - '&mut Vec<u8>::put_u32_le'
    - '&mut Vec<u8>::put_uint_le'
    - '&mut Vec<u8>::put_u8'
    - NonZeroU32::into
    - len
    - Result::into
    - into
    - '&mut Vec<u8>::extend_from_slice'
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_anmf(out: &mut Vec<u8>, x: u32, y: u32, width: u32,
      height: u32, data: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_test_chunk
      Src: /src/mp4san/webpsan/src/util/test.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: write_test_exif
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 1
    functionsReached:
    - write_test_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_exif(out: &mut Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_test_chunk
      Src: /src/mp4san/webpsan/src/util/test.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: write_test_iccp
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 1
    functionsReached:
    - write_test_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_iccp(out: &mut Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/webpsan/src/util/test.rs:75,1
    - Dst: '&mut Vec<u8>::put_u32_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:76,1
    - Dst: '&mut Vec<u8>::push'
      Src: /src/mp4san/webpsan/src/util/test.rs:77,1
    - Dst: '&mut Vec<u8>::extend_from_slice'
      Src: /src/mp4san/webpsan/src/util/test.rs:78,1
    - Dst: '&mut Vec<u8>::put_int_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:80,1
    - Dst: '&mut Vec<u8>::put_int_le'
      Src: /src/mp4san/webpsan/src/util/test.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 4
    argNames:
    - out
    - flags
    - width
    - height
    argTypes:
    - '&mut Vec<u8>'
    - u8
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 83
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 83
    functionName: write_test_vp8x
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 1
    functionsReached:
    - '&mut Vec<u8>::put_u32_le'
    - '&mut Vec<u8>::push'
    - '&mut Vec<u8>::put_int_le'
    - '&mut Vec<u8>::extend_from_slice'
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_vp8x(out: &mut Vec<u8>, flags: u8, width: u32, height:
      u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_test_chunk
      Src: /src/mp4san/webpsan/src/util/test.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 3
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: write_test_xmp
    functionSourceFile: /src/mp4san/webpsan/src/util/test.rs
    functionUses: 1
    functionsReached:
    - write_test_chunk
    linkageType: ''
    returnType: void
    signature: 'pub fn write_test_xmp(out: &mut Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestWebpBuilder::build_spec
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:143,1
    - Dst: unwrap
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:143,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: TestWebpBuilder::build
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 1
    functionsReached:
    - TestWebpBuilder::build_spec
    - unwrap
    - build
    linkageType: ''
    returnType: TestWebp
    signature: pub fn build(&self) -> TestWebp
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mediasan_common_test::init_logger
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:149,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:153,1
    - Dst: map
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:153,1
    - Dst: BoxHeader::build
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:153,1
    - Dst: Config::unwrap
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:153,1
    - Dst: unwrap_or
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:155,1
    - Dst: extend_from_slice
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:157,1
    - Dst: put_u32_le
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:158,1
    - Dst: extend_from_slice
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:159,1
    - Dst: clone
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:162,1
    - Dst: super::write_test_chunk
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:166,1
    - Dst: super::write_test_chunk
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:167,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:169,1
    - Dst: unwrap
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:169,1
    - Dst: unwrap_or_else
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:170,1
    - Dst: Vp8xFlags::empty
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:171,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:172,1
    - Dst: insert
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:173,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:175,1
    - Dst: insert
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:176,1
    - Dst: iter
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:178,1
    - Dst: map
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:178,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:178,1
    - Dst: Config::unwrap
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:178,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:180,1
    - Dst: any
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:180,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:180,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:181,1
    - Dst: insert
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:182,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:184,1
    - Dst: insert
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:185,1
    - Dst: contains
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:187,1
    - Dst: insert
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:188,1
    - Dst: write_test_vp8x
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:192,1
    - Dst: bits
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:192,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:195,1
    - Dst: unwrap
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:195,1
    - Dst: write_test_alph
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:196,1
    - Dst: bits
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:196,1
    - Dst: super::write_test_anim
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:198,1
    - Dst: is_empty
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:200,1
    - Dst: then
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:200,1
    - Dst: remove
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:200,1
    - Dst: unwrap_or_default
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:200,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:201,1
    - Dst: Config::unwrap
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:201,1
    - Dst: build
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:202,1
    - Dst: Config::unwrap
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:202,1
    - Dst: write_test_alph
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:207,1
    - Dst: bits
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:207,1
    - Dst: super::write_test_chunk
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:208,1
    - Dst: super::write_test_chunk
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:209,1
    - Dst: super::write_test_anmf
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:213,1
    - Dst: super::write_test_iccp
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:215,1
    - Dst: super::write_test_exif
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:216,1
    - Dst: super::write_test_xmp
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:217,1
    - Dst: is_none
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:223,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:224,1
    - Dst: put_u32_le
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:225,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:229,1
    - Dst: into
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:229,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 230
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 148
    functionDepth: 4
    functionLinenumber: 148
    functionLinenumberEnd: 230
    functionName: TestWebpSpec::build
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 0
    functionsReached:
    - put_u32_le
    - any
    - contains
    - super::write_test_exif
    - build
    - super::write_test_anim
    - then
    - super::write_test_iccp
    - bits
    - remove
    - clone
    - super::write_test_chunk
    - unwrap_or_default
    - unwrap_or
    - write_test_alph
    - is_none
    - iter
    - Vp8xFlags::empty
    - BoxHeader::build
    - super::write_test_anmf
    - insert
    - map
    - is_empty
    - unwrap
    - mediasan_common_test::init_logger
    - extend_from_slice
    - super::write_test_xmp
    - Config::unwrap
    - unwrap_or_else
    - len
    - into
    - write_test_vp8x
    linkageType: ''
    returnType: TestWebp
    signature: pub fn build(&self) -> TestWebp
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestWebp::sanitize_ok_with_config
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:236,1
    - Dst: Config::default
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 14
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: TestWebp::sanitize_ok
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 1
    functionsReached:
    - TestWebp::sanitize_ok_with_config
    - Config::default
    linkageType: ''
    returnType: void
    signature: pub fn sanitize_ok(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_with_config
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:241,1
    - Dst: TestWebp::clone
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:241,1
    - Dst: Result::unwrap
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:241,1
    - Dst: webpsan_test::libwebp_assert_valid
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 13
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: TestWebp::sanitize_ok_with_config
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 1
    functionsReached:
    - Result::unwrap
    - webpsan_test::libwebp_assert_valid
    - sanitize_with_config
    - TestWebp::clone
    linkageType: ''
    returnType: void
    signature: 'pub fn sanitize_ok_with_config(&self, config: Config)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestWebp::sanitize_invalid_with_config
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:247,1
    - Dst: Config::default
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 14
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: TestWebp::sanitize_invalid
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 0
    functionsReached:
    - TestWebp::sanitize_invalid_with_config
    - Config::default
    linkageType: ''
    returnType: Error
    signature: pub fn sanitize_invalid(&self) -> Error
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_with_config
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:252,1
    - Dst: TestWebp::clone
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:252,1
    - Dst: Result::unwrap_err
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:252,1
    - Dst: webpsan_test::libwebp_assert_invalid
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    constantsTouched: []
    func_position:
      end: 256
      start: 251
    functionDepth: 13
    functionLinenumber: 251
    functionLinenumberEnd: 256
    functionName: TestWebp::sanitize_invalid_with_config
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 1
    functionsReached:
    - webpsan_test::libwebp_assert_invalid
    - Result::unwrap_err
    - sanitize_with_config
    - TestWebp::clone
    linkageType: ''
    returnType: Error
    signature: 'pub fn sanitize_invalid_with_config(&self, config: Config) -> Error'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestWebp::sanitize_non_compliant_with_config
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:260,1
    - Dst: Config::default
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 259
    functionDepth: 14
    functionLinenumber: 259
    functionLinenumberEnd: 261
    functionName: TestWebp::sanitize_non_compliant
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 0
    functionsReached:
    - Config::default
    - TestWebp::sanitize_non_compliant_with_config
    linkageType: ''
    returnType: Error
    signature: pub fn sanitize_non_compliant(&self) -> Error
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: sanitize_with_config
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:266,1
    - Dst: TestWebp::clone
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:266,1
    - Dst: Result::unwrap_err
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    constantsTouched: []
    func_position:
      end: 269
      start: 265
    functionDepth: 13
    functionLinenumber: 265
    functionLinenumberEnd: 269
    functionName: TestWebp::sanitize_non_compliant_with_config
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 1
    functionsReached:
    - Result::unwrap_err
    - sanitize_with_config
    - TestWebp::clone
    linkageType: ''
    returnType: Error
    signature: 'pub fn sanitize_non_compliant_with_config(&self, config: Config) ->
      Error'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reader
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:274,1
    - Dst: read
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 2
    functionLinenumber: 273
    functionLinenumberEnd: 275
    functionName: TestWebp::read
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 0
    functionsReached:
    - read
    - reader
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:280,1
    - Dst: min
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:280,1
    - Dst: advance
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:281,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - amount
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 283
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: TestWebp::skip
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 0
    functionsReached:
    - Ok
    - advance
    - min
    - len
    linkageType: ''
    returnType: io::Result
    signature: 'fn skip(&mut self, amount: u64) -> io::Result<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:286,1
    - Dst: len
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: TestWebp::stream_position
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 0
    functionsReached:
    - Ok
    - len
    linkageType: ''
    returnType: io::Result
    signature: fn stream_position(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/mp4san/webpsan/src/util/test/webp.rs:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: TestWebp::stream_len
    functionSourceFile: /src/mp4san/webpsan/src/util/test/webp.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: fn stream_len(&mut self) -> io::Result<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: criterion::black_box
      Src: /src/mp4san/webpsan/benches/bitstream.rs:22,1
    - Dst: Ok
      Src: /src/mp4san/webpsan/benches/bitstream.rs:22,1
    - Dst: len
      Src: /src/mp4san/webpsan/benches/bitstream.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: BlackBoxZeroesInput::read
    functionSourceFile: /src/mp4san/webpsan/benches/bitstream.rs
    functionUses: 0
    functionsReached:
    - Ok
    - criterion::black_box
    - len
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::benchmark_group
      Src: /src/mp4san/webpsan/benches/bitstream.rs:27,1
    - Dst: CanonicalHuffmanTree::<LE, ()>::default
      Src: /src/mp4san/webpsan/benches/bitstream.rs:28,1
    - Dst: read_huffman
      Src: /src/mp4san/webpsan/benches/bitstream.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 5
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: read_huffman_one_symbol
    functionSourceFile: /src/mp4san/webpsan/benches/bitstream.rs
    functionUses: 0
    functionsReached:
    - Result::benchmark_group
    - CanonicalHuffmanTree::<LE, ()>::default
    - read_huffman
    linkageType: ''
    returnType: void
    signature: 'pub fn read_huffman_one_symbol(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::benchmark_group
      Src: /src/mp4san/webpsan/benches/bitstream.rs:33,1
    - Dst: CanonicalHuffmanTree::new
      Src: /src/mp4san/webpsan/benches/bitstream.rs:34,1
    - Dst: Result::unwrap
      Src: /src/mp4san/webpsan/benches/bitstream.rs:34,1
    - Dst: read_huffman
      Src: /src/mp4san/webpsan/benches/bitstream.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 6
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: read_huffman_two_symbols
    functionSourceFile: /src/mp4san/webpsan/benches/bitstream.rs
    functionUses: 0
    functionsReached:
    - Result::benchmark_group
    - CanonicalHuffmanTree::new
    - Result::unwrap
    - read_huffman
    linkageType: ''
    returnType: void
    signature: 'pub fn read_huffman_two_symbols(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::benchmark_group
      Src: /src/mp4san/webpsan/benches/bitstream.rs:39,1
    - Dst: CanonicalHuffmanTree::new
      Src: /src/mp4san/webpsan/benches/bitstream.rs:40,1
    - Dst: Result::unwrap
      Src: /src/mp4san/webpsan/benches/bitstream.rs:40,1
    - Dst: read_huffman
      Src: /src/mp4san/webpsan/benches/bitstream.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 6
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: read_huffman_256_symbols
    functionSourceFile: /src/mp4san/webpsan/benches/bitstream.rs
    functionUses: 0
    functionsReached:
    - Result::benchmark_group
    - CanonicalHuffmanTree::new
    - Result::unwrap
    - read_huffman
    linkageType: ''
    returnType: void
    signature: 'pub fn read_huffman_256_symbols(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BitBufReader::<_, LE>::with_capacity
      Src: /src/mp4san/webpsan/benches/bitstream.rs:46,1
    - Dst: u16::throughput
      Src: /src/mp4san/webpsan/benches/bitstream.rs:47,1
    - Dst: criterion::Throughput::Bytes
      Src: /src/mp4san/webpsan/benches/bitstream.rs:47,1
    - Dst: u16::bench_function
      Src: /src/mp4san/webpsan/benches/bitstream.rs:48,1
    - Dst: iter_batched
      Src: /src/mp4san/webpsan/benches/bitstream.rs:49,1
    - Dst: Result::longest_code_len
      Src: /src/mp4san/webpsan/benches/bitstream.rs:52,1
    - Dst: impl AsyncRead + Unpin::fill_buf
      Src: /src/mp4san/webpsan/benches/bitstream.rs:53,1
    - Dst: criterion::black_box
      Src: /src/mp4san/webpsan/benches/bitstream.rs:56,1
    - Dst: impl AsyncRead + Unpin::buf_read_huffman
      Src: /src/mp4san/webpsan/benches/bitstream.rs:56,1
    - Dst: Ok::<_, Error>
      Src: /src/mp4san/webpsan/benches/bitstream.rs:58,1
    - Dst: u16::bench_function
      Src: /src/mp4san/webpsan/benches/bitstream.rs:63,1
    - Dst: iter_batched
      Src: /src/mp4san/webpsan/benches/bitstream.rs:64,1
    - Dst: criterion::black_box
      Src: /src/mp4san/webpsan/benches/bitstream.rs:68,1
    - Dst: impl AsyncRead + Unpin::read_huffman
      Src: /src/mp4san/webpsan/benches/bitstream.rs:68,1
    - Dst: Ok::<_, Error>
      Src: /src/mp4san/webpsan/benches/bitstream.rs:70,1
    - Dst: u16::finish
      Src: /src/mp4san/webpsan/benches/bitstream.rs:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 2
    argNames:
    - group
    - code
    argTypes:
    - BenchmarkGroup<'_, M>
    - '&CanonicalHuffmanTree<LE, S>'
    constantsTouched: []
    func_position:
      end: 76
      start: 44
    functionDepth: 4
    functionLinenumber: 44
    functionLinenumberEnd: 76
    functionName: read_huffman
    functionSourceFile: /src/mp4san/webpsan/benches/bitstream.rs
    functionUses: 10
    functionsReached:
    - iter_batched
    - u16::bench_function
    - BitBufReader::<_, LE>::with_capacity
    - criterion::Throughput::Bytes
    - u16::finish
    - Ok::<_, Error>
    - impl AsyncRead + Unpin::fill_buf
    - Result::longest_code_len
    - criterion::black_box
    - impl AsyncRead + Unpin::read_huffman
    - impl AsyncRead + Unpin::buf_read_huffman
    - u16::throughput
    linkageType: ''
    returnType: void
    signature: 'fn read_huffman<M: Measurement, S: Clone>(mut group: BenchmarkGroup<''_,
      M>, code: &CanonicalHuffmanTree<LE, S>)'
Fuzzer filename: /src/mp4san/webpsan/fuzz/fuzz_targets/sanitize.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - test_data
  source_file: /src/mp4san/mp4san/tests/test-data.rs
- function_names:
  - main
  source_file: /src/mp4san/mp4san/fuzz-afl/src/main.rs
- function_names:
  - sanitize_with_config
  - buf_async_reader
  - AsyncInputAdapter::poll_read
  - AsyncInputAdapter::poll_read_vectored
  - AsyncInputAdapter::poll_skip
  - AsyncInputAdapter::poll_stream_position
  - AsyncInputAdapter::poll_stream_len
  source_file: /src/mp4san/mp4san/src/sync.rs
- function_names: []
  source_file: /src/mp4san/mp4san/src/error.rs
- function_names:
  - test::test_size_simple
  - test::test_size_exttype
  - test::test_type_bytes
  - test::test_type_compact_int_decimal
  - test::test_type_extended
  - test::test_type_compact_str
  - test::put_buf_empty
  - test::put_buf
  - test::parse
  source_file: /src/mp4san/mp4san/src/parse.rs
- function_names: []
  source_file: /src/mp4san/mp4san/src/util.rs
- function_names:
  - sanitize
  - sanitize_with_config
  - sanitize_async
  - sanitize_async_with_config
  - Config::builder
  - Config::default
  - ConfigBuilder::build
  - skip_box
  - test::until_eof_sized_moov
  - test::until_eof_sized_mdat
  - test::skip
  - test::max_input_length
  - test::input_length_overflow
  - test::box_size_overflow
  - test::ftyp_too_large
  - test::max_moov_size
  - test::moov_too_large
  - test::mdat_after_moov
  - test::no_ftyp
  - test::multiple_ftyp
  - test::ftyp_not_first_box
  - test::ftyp_not_first_significant_box
  - test::no_moov
  - test::no_mdat
  - test::free_boxes_in_metadata
  - test::free_boxes_after_mdat
  - test::meta_boxes_in_metadata
  - test::meta_boxes_after_mdat
  - test::multiple_mdat
  - test::uuid
  - test::mp41
  - test::mp42
  - test::no_compatible_brands
  - test::no_trak
  - test::no_mdia
  - test::no_minf
  - test::no_stbl
  - test::no_stco
  - test::co64
  - test::stco_and_co64
  - test::cumulative_mdat_box_size
  source_file: /src/mp4san/mp4san/src/lib.rs
- function_names:
  - main
  source_file: /src/mp4san/mp4san/src/bin/minimal.rs
- function_names:
  - BoxHeader::with_u32_data_size
  - BoxHeader::with_data_size
  - BoxHeader::until_eof
  - BoxHeader::parse
  - BoxHeader::read
  - BoxHeader::overwrite_size
  - BoxHeader::encoded_len
  - BoxHeader::box_size
  - BoxHeader::box_data_size
  - BoxHeader::box_type
  - BoxHeader::put_buf
  - BoxSize::size
  - box_type
  - BoxUuid::fmt
  - FullBoxHeader::default
  - FullBoxHeader::ensure_eq
  - FullBoxHeader::parse
  - FullBoxHeader::encoded_len
  - FullBoxHeader::put_buf
  - FullBoxHeader::from
  - ConstFullBoxHeader::parse
  - ConstFullBoxHeader::encoded_len
  - ConstFullBoxHeader::put_buf
  source_file: /src/mp4san/mp4san/src/parse/header.rs
- function_names:
  - MdiaBox::with_children
  - MdiaBox::minf_mut
  source_file: /src/mp4san/mp4san/src/parse/mdia.rs
- function_names:
  - mp4_int
  - '[T; N]::parse'
  - '[T; N]::encoded_len'
  - '[T; N]::put_buf'
  - FourCC::parse
  - FourCC::encoded_len
  - FourCC::put_buf
  source_file: /src/mp4san/mp4san/src/parse/integers.rs
- function_names:
  - StblBox::with_children
  - StblBox::co_mut
  - StblCoMut::entry_count
  source_file: /src/mp4san/mp4san/src/parse/stbl.rs
- function_names:
  - BoundedArray::entries
  - BoundedArray::entries_mut
  - BoundedArray::entry_count
  - BoundedArray::parse
  - BoundedArray::encoded_len
  - BoundedArray::put_buf
  - BoundedArray::from_iter
  - UnboundedArray::entries
  - UnboundedArray::entries_mut
  - UnboundedArray::entry_count
  - UnboundedArray::parse
  - UnboundedArray::encoded_len
  - UnboundedArray::put_buf
  - UnboundedArray::from_iter
  - ArrayEntry::get
  - ArrayEntryMut::get
  - ArrayEntryMut::set
  source_file: /src/mp4san/mp4san/src/parse/array.rs
- function_names:
  - __ParseResultExt::while_parsing_box
  - __ParseResultExt::while_parsing_field
  - __ParseResultExt::while_parsing_child
  - __ParseResultExt::where_eq
  source_file: /src/mp4san/mp4san/src/parse/error.rs
- function_names:
  - Co64Box::entries_mut
  - Co64Box::entry_count
  - Co64Box::from_iter
  - test::roundtrip
  source_file: /src/mp4san/mp4san/src/parse/co64.rs
- function_names:
  - MoovBox::with_children
  - MoovBox::traks
  - MoovChildrenValidator::validate
  - test::test_trak
  - test::roundtrip
  - test::no_traks
  source_file: /src/mp4san/mp4san/src/parse/moov.rs
- function_names:
  - Mp4ValueWriterExt::put_mp4_value
  - T::parse
  - T::encoded_len
  - T::put_buf
  - BytesMut::get_mp4_value
  source_file: /src/mp4san/mp4san/src/parse/value.rs
- function_names:
  - MinfBox::with_children
  - MinfBox::stbl_mut
  source_file: /src/mp4san/mp4san/src/parse/minf.rs
- function_names:
  - StcoBox::entries_mut
  - StcoBox::entry_count
  - StcoBox::from_iter
  - test::roundtrip
  source_file: /src/mp4san/mp4san/src/parse/stco.rs
- function_names:
  - TrakBox::with_children
  - TrakBox::co_mut
  - TrakBox::mdia_mut
  source_file: /src/mp4san/mp4san/src/parse/trak.rs
- function_names:
  - FtypBox::new
  - FtypBox::compatible_brands
  source_file: /src/mp4san/mp4san/src/parse/ftyp.rs
- function_names:
  - BoxesValidator::validate
  - Mp4Box::with_data
  - Mp4Box::read_data
  - Mp4Box::calculated_header
  - Mp4Box::parse_data_as
  - Mp4Box::parse
  - Mp4Box::encoded_len
  - Mp4Box::put_buf
  - AnyMp4Box::with_bytes
  - AnyMp4Box::from
  - BoxData::get_from_bytes_mut
  - BoxData::parse
  - BoxData::parse_as
  - BoxData::encoded_len
  - BoxData::put_buf
  - BoxData::from
  - BoxData::from
  - Box::from
  - Boxes::box_types
  - Boxes::get_mut
  - Boxes::get_one_mut
  - Boxes::parse
  - Boxes::encoded_len
  - Boxes::put_buf
  - Boxes::from
  source_file: /src/mp4san/mp4san/src/parse/mp4box.rs
- function_names:
  - sanitized_data
  - test_dinf
  - test_free
  - test_ftyp
  - test_hdlr
  - test_mdhd
  - test_meco
  - test_meta
  - test_moov
  - test_mp4
  - test_mvhd
  - test_stsc
  - test_stsd
  - test_stsz
  - test_stts
  - test_tkhd
  - write_hdlr_data
  - write_mdat_header
  - write_test_dinf_data
  - write_test_mdat
  - write_test_meco_data
  - write_test_meta_data
  - write_test_mdhd_data
  - write_test_mvhd_data
  - write_test_stsc_data
  - write_test_stsd_data
  - write_test_stsz_data
  - write_test_stts_data
  - write_test_tkhd_data
  - write_test_uuid
  source_file: /src/mp4san/mp4san/src/util/test.rs
- function_names:
  - TestMp4Builder::mdat_data_until_eof
  - TestMp4Builder::build
  - TestMp4Spec::build
  - TestMp4Spec::moov
  - TestMp4::sanitize_ok
  - TestMp4::sanitize_ok_with_config
  - TestMp4::sanitize_ok_noop
  - TestMp4::expected_metadata
  - TestMp4::read
  - TestMp4::skip
  - TestMp4::stream_position
  - TestMp4::stream_len
  source_file: /src/mp4san/mp4san/src/util/test/mp4.rs
- function_names:
  - TestMoovBuilder::build
  source_file: /src/mp4san/mp4san/src/util/test/moov.rs
- function_names:
  - TestFtypBuilder::build
  source_file: /src/mp4san/mp4san/src/util/test/ftyp.rs
- function_names:
  - fuzz_target
  source_file: /src/mp4san/mp4san/fuzz/fuzz_targets/sanitize.rs
- function_names:
  - libwebp_assert_invalid
  - libwebp_assert_valid
  source_file: /src/mp4san/webpsan-test/src/lib.rs
- function_names:
  - verify
  - VP8StatusCode::ok
  - Decoder::new
  - Decoder::next
  - Decoder::drop
  source_file: /src/mp4san/webpsan-test/src/libwebp.rs
- function_names:
  - derive_parse_box
  - derive_parsed_box
  - derive_write_fn
  - derive_read_fn
  - extract_box_type
  - sum_box_size
  source_file: /src/mp4san/mp4san-derive/src/lib.rs
- function_names:
  - bail_attach
  - ensure_attach
  - ensure_matches_attach
  - report_attach
  source_file: /src/mp4san/common/src/macros.rs
- function_names:
  - sanitize
  - buf_async_reader
  - AsyncInputAdapter::poll_read
  - AsyncInputAdapter::poll_read_vectored
  - AsyncInputAdapter::poll_skip
  - AsyncInputAdapter::poll_stream_position
  - AsyncInputAdapter::poll_stream_len
  source_file: /src/mp4san/common/src/sync.rs
- function_names:
  - Report::get_ref
  - Report::into_inner
  - Report::attach_printable
  - Report::from
  - Report::fmt
  - WhileParsingType::new
  - ReportStack::fmt
  - ReportStack::new
  - ReportStack::attach_printable
  - NullReportStack::new
  - NullReportStack::attach_printable
  - Result::attach_printable
  - Result::while_parsing_type
  - StdResult::attach_printable
  - StdResult::while_parsing_type
  - test::test_report
  - test::test_report_display
  - test::test_report_debug
  source_file: /src/mp4san/common/src/error.rs
- function_names: []
  source_file: /src/mp4san/common/src/test.rs
- function_names: []
  source_file: /src/mp4san/common/src/parse.rs
- function_names:
  - checked_add_signed
  - impl_checked_add_signed
  - Result::map_eof
  source_file: /src/mp4san/common/src/util.rs
- function_names: []
  source_file: /src/mp4san/common/src/lib.rs
- function_names:
  - deref_skip
  - skip_via_adapter
  - BufReader::skip
  - BufReader::stream_position
  - BufReader::stream_len
  - SeekSkipAdapter::skip
  - SeekSkipAdapter::stream_position
  - SeekSkipAdapter::stream_len
  - SeekSkipAdapter::read
  source_file: /src/mp4san/common/src/skip.rs
- function_names:
  - AsyncSkipExt::skip
  - AsyncSkipExt::stream_position
  - AsyncSkipExt::stream_len
  - Skip::poll
  - StreamPosition::poll
  - StreamLen::poll
  - SeekSkipAdapter::poll_read
  - SeekSkipAdapter::poll_skip
  - SeekSkipAdapter::poll_stream_position
  - SeekSkipAdapter::poll_stream_len
  - deref_async_skip
  - Pin::poll_skip
  - Pin::poll_stream_position
  - Pin::poll_stream_len
  - async_skip_via_adapter
  - BufReader::poll_skip
  - BufReader::poll_stream_position
  - BufReader::poll_stream_len
  source_file: /src/mp4san/common/src/async_skip.rs
- function_names:
  - FourCC::from_str
  - FourCC::size
  - FourCC::read
  - FourCC::parse
  - FourCC::put_buf
  - FourCC::fmt
  source_file: /src/mp4san/common/src/parse/fourcc.rs
- function_names:
  - gunzip
  - test_dir
  - init_logger
  - test_data
  source_file: /src/mp4san/common-test/src/lib.rs
- function_names:
  - main
  source_file: /src/mp4san/mp4san-test/build.rs
- function_names:
  - ffmpeg_assert_eq
  - ffmpeg_assert_invalid
  - ffmpeg_assert_valid
  - gpac_assert_eq
  - gpac_assert_invalid
  - gpac_assert_valid
  - example_ftyp
  - example_mdat
  - example_moov
  source_file: /src/mp4san/mp4san-test/src/lib.rs
- function_names:
  - v::e::r::i::f::y::_::g::p::a::c::mp4san_test_gpac_log
  - verify_gpac
  - bool::from
  source_file: /src/mp4san/mp4san-test/src/gpac.rs
- function_names:
  - v::e::r::i::f::y::_::f::f::m::p::e::g::mp4san_test_ffmpeg_log
  - verify_ffmpeg
  source_file: /src/mp4san/mp4san-test/src/ffmpeg.rs
- function_names: []
  source_file: /src/mp4san/mp4san-test/src/ffmpeg/bindings.rs
- function_names:
  - Blob::new
  - Blob::url
  - Blob::deref
  - Blob::drop
  source_file: /src/mp4san/mp4san-test/src/gpac/blob.rs
- function_names:
  - Error::last
  - Error::last_for_file
  - Error::fmt
  source_file: /src/mp4san/mp4san-test/src/gpac/error.rs
- function_names:
  - IsoFile::new
  - IsoFile::samples
  - IsoFile::sample
  - IsoSample::data_offset
  - IsoSample::deref
  - IsoSample::drop
  - isofile_method
  - IsoFile::drop
  source_file: /src/mp4san/mp4san-test/src/gpac/iso_file.rs
- function_names: []
  source_file: /src/mp4san/mp4san-test/src/gpac/bindings.rs
- function_names: []
  source_file: /src/mp4san/mp4san-test/src/gpac/iso_sample.rs
- function_names:
  - main
  source_file: /src/mp4san/cli/src/main.rs
- function_names:
  - test_data
  source_file: /src/mp4san/webpsan/tests/test-data.rs
- function_names:
  - main
  source_file: /src/mp4san/webpsan/fuzz-afl/src/main.rs
- function_names:
  - ChunkReader::new
  - ChunkReader::has_remaining
  - ChunkReader::peek_header
  - ChunkReader::read_header
  - ChunkReader::read_any_header
  - ChunkReader::parse_data
  - ChunkReader::read_data
  - ChunkReader::skip_data
  - ChunkReader::data_reader
  - ChunkReader::child_reader
  - ChunkReader::current_chunk_name
  - ChunkReader::read_padding
  - ChunkDataReader::read
  - ChunkDataReader::skip
  - ChunkDataReader::stream_position
  - ChunkDataReader::stream_len
  source_file: /src/mp4san/webpsan/src/reader.rs
- function_names: []
  source_file: /src/mp4san/webpsan/src/parse.rs
- function_names: []
  source_file: /src/mp4san/webpsan/src/util.rs
- function_names:
  - sanitize
  - sanitize_with_config
  - sanitize_extended
  - sanitize_still
  - sanitize_animated
  - Config::builder
  - Config::default
  - ConfigBuilder::build
  - test::not_riff
  - test::not_webp
  - test::file_len_zero
  - test::file_len_one
  - test::file_len_invalid
  - test::file_extra_data
  - test::image_data_missing
  - test::lossy
  - test::lossless
  - test::vp8x_lossy
  - test::vp8x_lossy_alpha_lossless
  - test::vp8x_lossy_alpha_uncompressed
  - test::vp8x_lossless
  - test::vp8x_lossless_alpha
  - test::vp8x_animated
  - test::vp8x_animated_empty
  - test::vp8x_animated_lossless
  - test::vp8x_animated_lossy
  - test::vp8x_animated_lossy_lossless
  - test::vp8x_animated_lossless_alpha
  - test::vp8x_animated_lossy_alpha
  - test::vp8x_animated_alpha_no_alpha
  - test::vp8x_animated_no_alpha_alpha
  - test::vp8x_animated_alph_missing
  - test::vp8x_animated_alph_wrong_order
  - test::vp8x_animated_unexpected_alph
  - test::vp8x_image_data_missing
  - test::vp8x_unexpected_alph
  - test::vp8x_unexpected_anim
  - test::vp8x_unexpected_anmf
  - test::vp8x_alph_missing
  - test::vp8x_anim_missing
  - test::vp8x_anim_anmf_missing
  - test::vp8x_iccp
  - test::vp8x_exif
  - test::vp8x_xmp
  - test::vp8x_all_meta
  - test::vp8x_wrong_order
  - test::vp8x_alph_wrong_order
  - test::vp8x_iccp_wrong_order
  - test::vp8x_exif_wrong_order
  - test::vp8x_xmp_wrong_order
  - test::vp8x_iccp_missing
  - test::vp8x_exif_missing
  - test::vp8x_xmp_missing
  - test::vp8x_iccp_unexpected
  - test::vp8x_exif_unexpected
  - test::vp8x_xmp_unexpected
  - test::lossless_max_image_data
  source_file: /src/mp4san/webpsan/src/lib.rs
- function_names:
  - Vp8xChunk::canvas_width
  - Vp8xChunk::canvas_height
  - Vp8xChunk::parse
  - Vp8xChunk::put_buf
  source_file: /src/mp4san/webpsan/src/parse/vp8x.rs
- function_names:
  - chunk_type
  - ChunkHeader::padded
  - ChunkHeader::read
  - ChunkHeader::parse
  - ChunkHeader::put_buf
  - WebpChunk::parse
  - WebpChunk::put_buf
  source_file: /src/mp4san/webpsan/src/parse/header.rs
- function_names:
  - AlphChunk::sanitize_image_data
  - AlphChunk::parse
  - AlphChunk::put_buf
  source_file: /src/mp4san/webpsan/src/parse/alph.rs
- function_names:
  - webm_int
  - FourCC::parse
  - FourCC::put_buf
  - T::parse
  - T::put_buf
  - U24::get
  - U24::parse
  - U24::put_buf
  - OneBasedU24::get
  - OneBasedU24::parse
  - OneBasedU24::put_buf
  - Reserved::parse
  - Reserved::put_buf
  source_file: /src/mp4san/webpsan/src/parse/integers.rs
- function_names:
  - Vp8lChunk::width
  - Vp8lChunk::height
  - Vp8lChunk::sanitize_image_data
  - Vp8lChunk::parse
  source_file: /src/mp4san/webpsan/src/parse/vp8l.rs
- function_names:
  - ParseResultExt::while_parsing_chunk
  - ParseResultExt::while_parsing_field
  source_file: /src/mp4san/webpsan/src/parse/error.rs
- function_names:
  - LosslessImage::read
  - Transform::read
  - Transform::transform_type
  - Transform::transformed_width
  - TransformType::read
  - EntropyCodedImage::read
  - SpatiallyCodedImage::read
  - BackReference::buf_read
  - BackReference::readahead_bits
  - Color::buf_read
  - u32::from
  - ColorCache::read
  - ColorCache::len
  - MetaPrefixCodes::read
  - MetaPrefixCodes::max_code_group
  - PrefixCodeGroup::read
  - PrefixCodeGroup::read_prefix_code
  - PrefixCodeGroup::green_readahead_bits
  - PrefixCodeGroup::arb_readahead_bits
  - PrefixCodeGroup::backref_readahead_bits
  - CodeLengthPrefixCode::read
  - GreenPrefixCode::new
  - GreenPrefixCode::alphabet_size
  - ARBPrefixCode::new
  - ARBPrefixCode::alphabet_size
  - DistancePrefixCode::new
  - DistancePrefixCode::alphabet_size
  - len_in_blocks
  source_file: /src/mp4san/webpsan/src/parse/lossless.rs
- function_names:
  - AnmfChunk::x
  - AnmfChunk::y
  - AnmfChunk::width
  - AnmfChunk::height
  - AnmfChunk::duration
  - AnmfChunk::parse
  - AnmfChunk::put_buf
  source_file: /src/mp4san/webpsan/src/parse/anmf.rs
- function_names:
  - AnimChunk::parse
  - AnimChunk::put_buf
  source_file: /src/mp4san/webpsan/src/parse/anim.rs
- function_names:
  - BitBufReader::with_capacity
  - BitBufReader::fill_buf
  - BitBufReader::buf_bits
  - BitBufReader::buf_read
  - BitBufReader::buf_read_bit
  - BitBufReader::buf_read_huffman
  - BitBufReader::buf_read_lz77
  - BitBufReader::read
  - BitBufReader::read_bit
  - BitBufReader::read_huffman
  - BitBufReader::buf_bit_pos
  - CanonicalHuffmanTree::new
  - CanonicalHuffmanTree::from_symbols
  - CanonicalHuffmanTree::read_tree
  - CanonicalHuffmanTree::longest_code_len
  - CanonicalHuffmanTree::symbols
  - CanonicalHuffmanTree::default
  source_file: /src/mp4san/webpsan/src/parse/bitstream.rs
- function_names:
  - test_alph
  - test_anmf
  - test_header
  - test_vp8x
  - test_webp
  - write_test_chunk
  - write_test_alph
  - write_test_anim
  - write_test_anmf
  - write_test_exif
  - write_test_iccp
  - write_test_vp8x
  - write_test_xmp
  source_file: /src/mp4san/webpsan/src/util/test.rs
- function_names:
  - TestWebpBuilder::build
  - TestWebpSpec::build
  - TestWebp::sanitize_ok
  - TestWebp::sanitize_ok_with_config
  - TestWebp::sanitize_invalid
  - TestWebp::sanitize_invalid_with_config
  - TestWebp::sanitize_non_compliant
  - TestWebp::sanitize_non_compliant_with_config
  - TestWebp::read
  - TestWebp::skip
  - TestWebp::stream_position
  - TestWebp::stream_len
  source_file: /src/mp4san/webpsan/src/util/test/webp.rs
- function_names:
  - fuzz_target
  source_file: /src/mp4san/webpsan/fuzz/fuzz_targets/sanitize.rs
- function_names:
  - BlackBoxZeroesInput::read
  - read_huffman_one_symbol
  - read_huffman_two_symbols
  - read_huffman_256_symbols
  - read_huffman
  source_file: /src/mp4san/webpsan/benches/bitstream.rs
- function_names:
  - main
  source_file: /src/mp4san/mp4san-test-gen/src/main.rs
