All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/zip/tests/end_to_end.rs:14,1
    - Dst: Vec::new
      Src: /src/zip/tests/end_to_end.rs:14,1
    - Dst: write_test_archive
      Src: /src/zip/tests/end_to_end.rs:17,1
    - Dst: zip::result::ZipResult::expect
      Src: /src/zip/tests/end_to_end.rs:17,1
    - Dst: check_archive_file
      Src: /src/zip/tests/end_to_end.rs:20,1
    - Dst: Some
      Src: /src/zip/tests/end_to_end.rs:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 12
    functionDepth: 10
    functionLinenumber: 12
    functionLinenumberEnd: 22
    functionName: end_to_end
    functionSourceFile: /src/zip/tests/end_to_end.rs
    functionUses: 0
    functionsReached:
    - write_test_archive
    - Cursor::new
    - Vec::new
    - Some
    - zip::result::ZipResult::expect
    - check_archive_file
    linkageType: ''
    returnType: void
    signature: fn end_to_end()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/zip/tests/end_to_end.rs:29,1
    - Dst: Vec::new
      Src: /src/zip/tests/end_to_end.rs:29,1
    - Dst: write_test_archive
      Src: /src/zip/tests/end_to_end.rs:30,1
    - Dst: zip::result::ZipResult::expect
      Src: /src/zip/tests/end_to_end.rs:30,1
    - Dst: Cursor::new
      Src: /src/zip/tests/end_to_end.rs:32,1
    - Dst: Vec::new
      Src: /src/zip/tests/end_to_end.rs:32,1
    - Dst: zip::ZipArchive::new
      Src: /src/zip/tests/end_to_end.rs:35,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/end_to_end.rs:35,1
    - Dst: zip::ZipWriter::new
      Src: /src/zip/tests/end_to_end.rs:36,1
    - Dst: W::by_name
      Src: /src/zip/tests/end_to_end.rs:39,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/end_to_end.rs:39,1
    - Dst: raw_copy_file
      Src: /src/zip/tests/end_to_end.rs:43,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/end_to_end.rs:43,1
    - Dst: W::by_name
      Src: /src/zip/tests/end_to_end.rs:47,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/end_to_end.rs:47,1
    - Dst: raw_copy_file_rename
      Src: /src/zip/tests/end_to_end.rs:51,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/end_to_end.rs:51,1
    - Dst: zip::ZipArchive::new
      Src: /src/zip/tests/end_to_end.rs:56,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/end_to_end.rs:56,1
    - Dst: check_archive_file_contents
      Src: /src/zip/tests/end_to_end.rs:58,1
    - Dst: check_archive_file_contents
      Src: /src/zip/tests/end_to_end.rs:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 27
    functionDepth: 10
    functionLinenumber: 27
    functionLinenumberEnd: 61
    functionName: copy
    functionSourceFile: /src/zip/tests/end_to_end.rs
    functionUses: 3
    functionsReached:
    - ZipResult::unwrap
    - zip::ZipWriter::new
    - write_test_archive
    - Cursor::new
    - zip::ZipArchive::new
    - W::by_name
    - raw_copy_file
    - Vec::new
    - check_archive_file_contents
    - raw_copy_file_rename
    - ZipResult::expect
    - zip::result::ZipResult::expect
    linkageType: ''
    returnType: void
    signature: fn copy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/zip/tests/end_to_end.rs:68,1
    - Dst: Vec::new
      Src: /src/zip/tests/end_to_end.rs:68,1
    - Dst: write_test_archive
      Src: /src/zip/tests/end_to_end.rs:69,1
    - Dst: zip::result::ZipResult::expect
      Src: /src/zip/tests/end_to_end.rs:69,1
    - Dst: zip::ZipWriter::new_append
      Src: /src/zip/tests/end_to_end.rs:72,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/end_to_end.rs:72,1
    - Dst: start_file
      Src: /src/zip/tests/end_to_end.rs:73,1
    - Dst: FileOptions::default
      Src: /src/zip/tests/end_to_end.rs:75,1
    - Dst: Self::compression_method
      Src: /src/zip/tests/end_to_end.rs:75,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/end_to_end.rs:73,1
    - Dst: write_all
      Src: /src/zip/tests/end_to_end.rs:78,1
    - Dst: unwrap
      Src: /src/zip/tests/end_to_end.rs:78,1
    - Dst: finish
      Src: /src/zip/tests/end_to_end.rs:79,1
    - Dst: std::io::Result::unwrap
      Src: /src/zip/tests/end_to_end.rs:79,1
    - Dst: zip::ZipArchive::new
      Src: /src/zip/tests/end_to_end.rs:82,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/end_to_end.rs:82,1
    - Dst: check_archive_file_contents
      Src: /src/zip/tests/end_to_end.rs:83,1
    - Dst: check_archive_file_contents
      Src: /src/zip/tests/end_to_end.rs:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 66
    functionDepth: 10
    functionLinenumber: 66
    functionLinenumberEnd: 86
    functionName: append
    functionSourceFile: /src/zip/tests/end_to_end.rs
    functionUses: 1
    functionsReached:
    - start_file
    - ZipResult::unwrap
    - finish
    - write_test_archive
    - Cursor::new
    - write_all
    - zip::ZipArchive::new
    - Self::compression_method
    - Vec::new
    - check_archive_file_contents
    - unwrap
    - std::io::Result::unwrap
    - zip::ZipWriter::new_append
    - zip::result::ZipResult::expect
    - FileOptions::default
    linkageType: ''
    returnType: void
    signature: fn append()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zip::ZipWriter::new
      Src: /src/zip/tests/end_to_end.rs:93,1
    - Dst: add_directory
      Src: /src/zip/tests/end_to_end.rs:95,1
    - Dst: Default::default
      Src: /src/zip/tests/end_to_end.rs:95,1
    - Dst: FileOptions::default
      Src: /src/zip/tests/end_to_end.rs:97,1
    - Dst: Self::compression_method
      Src: /src/zip/tests/end_to_end.rs:97,1
    - Dst: FileOptions::unix_permissions
      Src: /src/zip/tests/end_to_end.rs:97,1
    - Dst: start_file
      Src: /src/zip/tests/end_to_end.rs:101,1
    - Dst: write_all
      Src: /src/zip/tests/end_to_end.rs:102,1
    - Dst: start_file_with_extra_data
      Src: /src/zip/tests/end_to_end.rs:104,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/tests/end_to_end.rs:105,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/tests/end_to_end.rs:106,1
    - Dst: len
      Src: /src/zip/tests/end_to_end.rs:106,1
    - Dst: write_all
      Src: /src/zip/tests/end_to_end.rs:107,1
    - Dst: end_extra_data
      Src: /src/zip/tests/end_to_end.rs:108,1
    - Dst: write_all
      Src: /src/zip/tests/end_to_end.rs:109,1
    - Dst: start_file
      Src: /src/zip/tests/end_to_end.rs:111,1
    - Dst: write_all
      Src: /src/zip/tests/end_to_end.rs:112,1
    - Dst: finish
      Src: /src/zip/tests/end_to_end.rs:114,1
    - Dst: Ok
      Src: /src/zip/tests/end_to_end.rs:115,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 2
    argNames:
    - file
    - method
    argTypes:
    - '&mut Cursor<Vec<u8>>'
    - CompressionMethod
    constantsTouched: []
    func_position:
      end: 116
      start: 89
    functionDepth: 9
    functionLinenumber: 89
    functionLinenumberEnd: 116
    functionName: write_test_archive
    functionSourceFile: /src/zip/tests/end_to_end.rs
    functionUses: 3
    functionsReached:
    - FileOptions::unix_permissions
    - add_directory
    - Default::default
    - zip::ZipWriter::new
    - start_file
    - finish
    - write_all
    - Self::compression_method
    - write_u16::<LittleEndian>
    - Ok
    - start_file_with_extra_data
    - end_extra_data
    - len
    - FileOptions::default
    linkageType: ''
    returnType: zip::result::ZipResult
    signature: 'fn write_test_archive(file: &mut Cursor<Vec<u8>>,method: CompressionMethod,)
      -> zip::result::ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zip::ZipArchive::new
      Src: /src/zip/tests/end_to_end.rs:120,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/end_to_end.rs:120,1
    - Dst: HashSet::from_iter
      Src: /src/zip/tests/end_to_end.rs:130,1
    - Dst: iter
      Src: /src/zip/tests/end_to_end.rs:130,1
    - Dst: copied
      Src: /src/zip/tests/end_to_end.rs:130,1
    - Dst: zip::result::ZipResult::file_names
      Src: /src/zip/tests/end_to_end.rs:131,1
    - Dst: file_names().collect::<HashSet<_>>
      Src: /src/zip/tests/end_to_end.rs:131,1
    - Dst: zip::result::ZipResult::by_name
      Src: /src/zip/tests/end_to_end.rs:137,1
    - Dst: Vec::new
      Src: /src/zip/tests/end_to_end.rs:138,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/tests/end_to_end.rs:139,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/tests/end_to_end.rs:140,1
    - Dst: len
      Src: /src/zip/tests/end_to_end.rs:140,1
    - Dst: '&[u8]::write_all'
      Src: /src/zip/tests/end_to_end.rs:141,1
    - Dst: Ok
      Src: /src/zip/tests/end_to_end.rs:145,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 1
    argNames:
    - zip_file
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 146
      start: 119
    functionDepth: 6
    functionLinenumber: 119
    functionLinenumberEnd: 146
    functionName: check_test_archive
    functionSourceFile: /src/zip/tests/end_to_end.rs
    functionUses: 1
    functionsReached:
    - copied
    - ZipResult::unwrap
    - zip::result::ZipResult::file_names
    - iter
    - zip::ZipArchive::new
    - HashSet::from_iter
    - Vec::new
    - write_u16::<LittleEndian>
    - '&[u8]::write_all'
    - Ok
    - file_names().collect::<HashSet<_>>
    - zip::result::ZipResult::by_name
    - len
    linkageType: ''
    returnType: zip::result::ZipResult
    signature: 'fn check_test_archive<R: Read + Seek>(zip_file: R) -> zip::result::ZipResult<zip::ZipArchive<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zip::result::ZipResult::by_name
      Src: /src/zip/tests/end_to_end.rs:153,1
    - Dst: String::new
      Src: /src/zip/tests/end_to_end.rs:155,1
    - Dst: zip::result::ZipResult::read_to_string
      Src: /src/zip/tests/end_to_end.rs:156,1
    - Dst: unwrap
      Src: /src/zip/tests/end_to_end.rs:156,1
    - Dst: Ok
      Src: /src/zip/tests/end_to_end.rs:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - archive
    - name
    argTypes:
    - '&mut zip::ZipArchive<R>'
    - '&str'
    constantsTouched: []
    func_position:
      end: 159
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 159
    functionName: read_archive_file
    functionSourceFile: /src/zip/tests/end_to_end.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - Ok
    - zip::result::ZipResult::read_to_string
    - String::new
    - zip::result::ZipResult::by_name
    linkageType: ''
    returnType: zip::result::ZipResult
    signature: 'fn read_archive_file<R: Read + Seek>(archive: &mut zip::ZipArchive<R>,name:
      &str,) -> zip::result::ZipResult<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_test_archive
      Src: /src/zip/tests/end_to_end.rs:168,1
    - Dst: zip::result::ZipResult::unwrap
      Src: /src/zip/tests/end_to_end.rs:168,1
    - Dst: zip::result::ZipResult::by_name
      Src: /src/zip/tests/end_to_end.rs:172,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/end_to_end.rs:172,1
    - Dst: zip::result::ZipResult::compression
      Src: /src/zip/tests/end_to_end.rs:173,1
    - Dst: check_archive_file_contents
      Src: /src/zip/tests/end_to_end.rs:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 4
    argNames:
    - zip_file
    - name
    - expected_method
    - expected_data
    argTypes:
    - '&mut Cursor<Vec<u8>>'
    - '&str'
    - Option<CompressionMethod>
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 182
      start: 162
    functionDepth: 7
    functionLinenumber: 162
    functionLinenumberEnd: 182
    functionName: check_archive_file
    functionSourceFile: /src/zip/tests/end_to_end.rs
    functionUses: 1
    functionsReached:
    - ZipResult::unwrap
    - check_test_archive
    - zip::result::ZipResult::compression
    - check_archive_file_contents
    - zip::result::ZipResult::unwrap
    - zip::result::ZipResult::by_name
    linkageType: ''
    returnType: void
    signature: 'fn check_archive_file(zip_file: &mut Cursor<Vec<u8>>,name: &str,expected_method:
      Option<CompressionMethod>,expected_data: &[u8],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_archive_file
      Src: /src/zip/tests/end_to_end.rs:190,1
    - Dst: zip::result::ZipResult::unwrap
      Src: /src/zip/tests/end_to_end.rs:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - archive
    - name
    - expected
    argTypes:
    - '&mut zip::ZipArchive<R>'
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: check_archive_file_contents
    functionSourceFile: /src/zip/tests/end_to_end.rs
    functionUses: 3
    functionsReached:
    - read_archive_file
    - zip::result::ZipResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn check_archive_file_contents<R: Read + Seek>(archive: &mut zip::ZipArchive<R>,name:
      &str,expected: &[u8],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: Zip64File::new
    functionSourceFile: /src/zip/tests/zip64_large.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/zip/tests/zip64_large.rs:147,1
    - Dst: io::Error::new
      Src: /src/zip/tests/zip64_large.rs:147,1
    - Dst: Err
      Src: /src/zip/tests/zip64_large.rs:154,1
    - Dst: io::Error::new
      Src: /src/zip/tests/zip64_large.rs:154,1
    - Dst: Ok
      Src: /src/zip/tests/zip64_large.rs:159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - pos
    argTypes:
    - SeekFrom
    constantsTouched: []
    func_position:
      end: 160
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 160
    functionName: Zip64File::seek
    functionSourceFile: /src/zip/tests/zip64_large.rs
    functionUses: 0
    functionsReached:
    - Ok
    - io::Error::new
    - Err
    linkageType: ''
    returnType: io::Result
    signature: 'fn seek(&mut self, pos: SeekFrom) -> io::Result<u64>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/zip/tests/zip64_large.rs:166,1
    - Dst: Ok
      Src: /src/zip/tests/zip64_large.rs:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 187
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 187
    functionName: Zip64File::read
    functionSourceFile: /src/zip/tests/zip64_large.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Zip64File::new
      Src: /src/zip/tests/zip64_large.rs:192,1
    - Dst: zip::ZipArchive::new
      Src: /src/zip/tests/zip64_large.rs:193,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/zip64_large.rs:193,1
    - Dst: zip::result::ZipResult::len
      Src: /src/zip/tests/zip64_large.rs:196,1
    - Dst: zip::result::ZipResult::by_index
      Src: /src/zip/tests/zip64_large.rs:197,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/zip64_large.rs:197,1
    - Dst: zip::result::ZipResult::enclosed_name
      Src: /src/zip/tests/zip64_large.rs:198,1
    - Dst: Option::unwrap
      Src: /src/zip/tests/zip64_large.rs:198,1
    - Dst: zip::result::ZipResult::read_exact
      Src: /src/zip/tests/zip64_large.rs:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 191
    functionDepth: 6
    functionLinenumber: 191
    functionLinenumberEnd: 211
    functionName: zip64_large
    functionSourceFile: /src/zip/tests/zip64_large.rs
    functionUses: 0
    functionsReached:
    - Zip64File::new
    - zip::result::ZipResult::read_exact
    - ZipResult::unwrap
    - zip::ZipArchive::new
    - Option::unwrap
    - zip::result::ZipResult::by_index
    - zip::result::ZipResult::len
    - zip::result::ZipResult::enclosed_name
    linkageType: ''
    returnType: void
    signature: fn zip64_large()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zip::write::ZipWriter::new
      Src: /src/zip/tests/zip_crypto.rs:28,1
    - Dst: std::io::Cursor::new
      Src: /src/zip/tests/zip_crypto.rs:28,1
    - Dst: zip::result::ZipResult::start_file
      Src: /src/zip/tests/zip_crypto.rs:29,1
    - Dst: zip::write::FileOptions::default
      Src: /src/zip/tests/zip_crypto.rs:29,1
    - Dst: Self::with_deprecated_encryption
      Src: /src/zip/tests/zip_crypto.rs:29,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/zip_crypto.rs:29,1
    - Dst: zip::result::ZipResult::write_all
      Src: /src/zip/tests/zip_crypto.rs:30,1
    - Dst: unwrap
      Src: /src/zip/tests/zip_crypto.rs:30,1
    - Dst: zip::result::ZipResult::finish
      Src: /src/zip/tests/zip_crypto.rs:31,1
    - Dst: std::io::Result::unwrap
      Src: /src/zip/tests/zip_crypto.rs:31,1
    - Dst: drop
      Src: /src/zip/tests/zip_crypto.rs:32,1
    - Dst: zip::ZipArchive::new
      Src: /src/zip/tests/zip_crypto.rs:33,1
    - Dst: std::io::Cursor::new
      Src: /src/zip/tests/zip_crypto.rs:33,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/zip_crypto.rs:33,1
    - Dst: zip::result::ZipResult::by_index_decrypt
      Src: /src/zip/tests/zip_crypto.rs:34,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/zip_crypto.rs:34,1
    - Dst: W::unwrap
      Src: /src/zip/tests/zip_crypto.rs:34,1
    - Dst: Vec::new
      Src: /src/zip/tests/zip_crypto.rs:35,1
    - Dst: zip::result::ZipResult::read_to_end
      Src: /src/zip/tests/zip_crypto.rs:36,1
    - Dst: unwrap
      Src: /src/zip/tests/zip_crypto.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: encrypting_file
    functionSourceFile: /src/zip/tests/zip_crypto.rs
    functionUses: 0
    functionsReached:
    - zip::write::ZipWriter::new
    - std::io::Cursor::new
    - ZipResult::unwrap
    - zip::result::ZipResult::by_index_decrypt
    - zip::ZipArchive::new
    - zip::result::ZipResult::write_all
    - drop
    - Vec::new
    - unwrap
    - Self::with_deprecated_encryption
    - zip::write::FileOptions::default
    - zip::result::ZipResult::finish
    - std::io::Result::unwrap
    - zip::result::ZipResult::start_file
    - W::unwrap
    - zip::result::ZipResult::read_to_end
    linkageType: ''
    returnType: void
    signature: fn encrypting_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cursor::new
      Src: /src/zip/tests/zip_crypto.rs:42,1
    - Dst: zip::ZipArchive::new
      Src: /src/zip/tests/zip_crypto.rs:59,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/zip_crypto.rs:59,1
    - Dst: zip::result::ZipResult::by_index
      Src: /src/zip/tests/zip_crypto.rs:65,1
    - Dst: zip::result::ZipResult::by_index_decrypt
      Src: /src/zip/tests/zip_crypto.rs:79,1
    - Dst: zip::result::ZipResult::by_index_decrypt
      Src: /src/zip/tests/zip_crypto.rs:91,1
    - Dst: '&str::as_bytes'
      Src: /src/zip/tests/zip_crypto.rs:92,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/zip_crypto.rs:91,1
    - Dst: W::unwrap
      Src: /src/zip/tests/zip_crypto.rs:91,1
    - Dst: zip::result::ZipResult::enclosed_name
      Src: /src/zip/tests/zip_crypto.rs:95,1
    - Dst: Option::unwrap
      Src: /src/zip/tests/zip_crypto.rs:95,1
    - Dst: Vec::new
      Src: /src/zip/tests/zip_crypto.rs:98,1
    - Dst: zip::result::ZipResult::read_to_end
      Src: /src/zip/tests/zip_crypto.rs:99,1
    - Dst: unwrap
      Src: /src/zip/tests/zip_crypto.rs:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 41
    functionDepth: 6
    functionLinenumber: 41
    functionLinenumberEnd: 102
    functionName: encrypted_file
    functionSourceFile: /src/zip/tests/zip_crypto.rs
    functionUses: 0
    functionsReached:
    - zip::result::ZipResult::by_index_decrypt
    - ZipResult::unwrap
    - Cursor::new
    - '&str::as_bytes'
    - zip::ZipArchive::new
    - Option::unwrap
    - Vec::new
    - unwrap
    - zip::result::ZipResult::by_index
    - W::unwrap
    - zip::result::ZipResult::read_to_end
    - zip::result::ZipResult::enclosed_name
    linkageType: ''
    returnType: void
    signature: fn encrypted_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Cursor::new
      Src: /src/zip/tests/issue_234.rs:25,1
    - Dst: zip::ZipArchive::new
      Src: /src/zip/tests/issue_234.rs:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: invalid_header
    functionSourceFile: /src/zip/tests/issue_234.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - zip::ZipArchive::new
    linkageType: ''
    returnType: void
    signature: fn invalid_header()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipArchive::new
      Src: /src/zip/tests/invalid_date.rs:23,1
    - Dst: Cursor::new
      Src: /src/zip/tests/invalid_date.rs:23,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/tests/invalid_date.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 6
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: invalid_date
    functionSourceFile: /src/zip/tests/invalid_date.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - Cursor::new
    - ZipArchive::new
    linkageType: ''
    returnType: void
    signature: fn invalid_date()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/zip/tests/zip_comment_garbage.rs:25,1
    - Dst: Self::extend_from_slice
      Src: /src/zip/tests/zip_comment_garbage.rs:26,1
    - Dst: ZipArchive::new
      Src: /src/zip/tests/zip_comment_garbage.rs:27,1
    - Dst: io::Cursor::new
      Src: /src/zip/tests/zip_comment_garbage.rs:27,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/zip_comment_garbage.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 30
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 30
    functionName: correctly_handle_zip_with_garbage_after_comment
    functionSourceFile: /src/zip/tests/zip_comment_garbage.rs
    functionUses: 0
    functionsReached:
    - ZipArchive::new
    - Self::extend_from_slice
    - Vec::new
    - io::Cursor::new
    - ZipResult::expect
    linkageType: ''
    returnType: void
    signature: fn correctly_handle_zip_with_garbage_after_comment()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/zip/tests/aes_encryption.rs:12,1
    - Dst: Self::extend_from_slice
      Src: /src/zip/tests/aes_encryption.rs:13,1
    - Dst: ZipArchive::new
      Src: /src/zip/tests/aes_encryption.rs:14,1
    - Dst: io::Cursor::new
      Src: /src/zip/tests/aes_encryption.rs:14,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/aes_encryption.rs:14,1
    - Dst: zip::result::ZipResult::by_name_decrypt
      Src: /src/zip/tests/aes_encryption.rs:16,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/aes_encryption.rs:16,1
    - Dst: expect
      Src: /src/zip/tests/aes_encryption.rs:16,1
    - Dst: String::new
      Src: /src/zip/tests/aes_encryption.rs:22,1
    - Dst: zip::result::ZipResult::read_to_string
      Src: /src/zip/tests/aes_encryption.rs:23,1
    - Dst: expect
      Src: /src/zip/tests/aes_encryption.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 26
      start: 11
    functionDepth: 6
    functionLinenumber: 11
    functionLinenumberEnd: 26
    functionName: aes256_encrypted_uncompressed_file
    functionSourceFile: /src/zip/tests/aes_encryption.rs
    functionUses: 0
    functionsReached:
    - ZipArchive::new
    - Self::extend_from_slice
    - Vec::new
    - zip::result::ZipResult::by_name_decrypt
    - zip::result::ZipResult::read_to_string
    - io::Cursor::new
    - ZipResult::expect
    - expect
    - String::new
    linkageType: ''
    returnType: void
    signature: fn aes256_encrypted_uncompressed_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/zip/tests/aes_encryption.rs:30,1
    - Dst: Self::extend_from_slice
      Src: /src/zip/tests/aes_encryption.rs:31,1
    - Dst: ZipArchive::new
      Src: /src/zip/tests/aes_encryption.rs:32,1
    - Dst: io::Cursor::new
      Src: /src/zip/tests/aes_encryption.rs:32,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/aes_encryption.rs:32,1
    - Dst: zip::result::ZipResult::by_name_decrypt
      Src: /src/zip/tests/aes_encryption.rs:34,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/aes_encryption.rs:34,1
    - Dst: expect
      Src: /src/zip/tests/aes_encryption.rs:34,1
    - Dst: String::new
      Src: /src/zip/tests/aes_encryption.rs:40,1
    - Dst: zip::result::ZipResult::read_to_string
      Src: /src/zip/tests/aes_encryption.rs:41,1
    - Dst: expect
      Src: /src/zip/tests/aes_encryption.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 6
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: aes256_encrypted_file
    functionSourceFile: /src/zip/tests/aes_encryption.rs
    functionUses: 0
    functionsReached:
    - ZipArchive::new
    - Self::extend_from_slice
    - Vec::new
    - zip::result::ZipResult::by_name_decrypt
    - zip::result::ZipResult::read_to_string
    - io::Cursor::new
    - ZipResult::expect
    - expect
    - String::new
    linkageType: ''
    returnType: void
    signature: fn aes256_encrypted_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/zip/tests/aes_encryption.rs:48,1
    - Dst: Self::extend_from_slice
      Src: /src/zip/tests/aes_encryption.rs:49,1
    - Dst: ZipArchive::new
      Src: /src/zip/tests/aes_encryption.rs:50,1
    - Dst: io::Cursor::new
      Src: /src/zip/tests/aes_encryption.rs:50,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/aes_encryption.rs:50,1
    - Dst: zip::result::ZipResult::by_name_decrypt
      Src: /src/zip/tests/aes_encryption.rs:52,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/aes_encryption.rs:52,1
    - Dst: expect
      Src: /src/zip/tests/aes_encryption.rs:52,1
    - Dst: String::new
      Src: /src/zip/tests/aes_encryption.rs:58,1
    - Dst: zip::result::ZipResult::read_to_string
      Src: /src/zip/tests/aes_encryption.rs:59,1
    - Dst: expect
      Src: /src/zip/tests/aes_encryption.rs:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 47
    functionDepth: 6
    functionLinenumber: 47
    functionLinenumberEnd: 62
    functionName: aes192_encrypted_file
    functionSourceFile: /src/zip/tests/aes_encryption.rs
    functionUses: 0
    functionsReached:
    - ZipArchive::new
    - Self::extend_from_slice
    - Vec::new
    - zip::result::ZipResult::by_name_decrypt
    - zip::result::ZipResult::read_to_string
    - io::Cursor::new
    - ZipResult::expect
    - expect
    - String::new
    linkageType: ''
    returnType: void
    signature: fn aes192_encrypted_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/zip/tests/aes_encryption.rs:66,1
    - Dst: Self::extend_from_slice
      Src: /src/zip/tests/aes_encryption.rs:67,1
    - Dst: ZipArchive::new
      Src: /src/zip/tests/aes_encryption.rs:68,1
    - Dst: io::Cursor::new
      Src: /src/zip/tests/aes_encryption.rs:68,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/aes_encryption.rs:68,1
    - Dst: zip::result::ZipResult::by_name_decrypt
      Src: /src/zip/tests/aes_encryption.rs:70,1
    - Dst: ZipResult::expect
      Src: /src/zip/tests/aes_encryption.rs:70,1
    - Dst: expect
      Src: /src/zip/tests/aes_encryption.rs:70,1
    - Dst: String::new
      Src: /src/zip/tests/aes_encryption.rs:76,1
    - Dst: zip::result::ZipResult::read_to_string
      Src: /src/zip/tests/aes_encryption.rs:77,1
    - Dst: expect
      Src: /src/zip/tests/aes_encryption.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 6
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: aes128_encrypted_file
    functionSourceFile: /src/zip/tests/aes_encryption.rs
    functionUses: 0
    functionsReached:
    - ZipArchive::new
    - Self::extend_from_slice
    - Vec::new
    - zip::result::ZipResult::by_name_decrypt
    - zip::result::ZipResult::read_to_string
    - io::Cursor::new
    - ZipResult::expect
    - expect
    - String::new
    linkageType: ''
    returnType: void
    signature: fn aes128_encrypted_file()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - system
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: System::from_u8
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: System
    signature: 'pub fn from_u8(system: u8) -> System'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: DateTime::default
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: DateTime
    signature: fn default() -> DateTime
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - datepart
    - timepart
    argTypes:
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 135
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 135
    functionName: DateTime::from_msdos
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: DateTime
    signature: 'pub fn from_msdos(datepart: u16, timepart: u16) -> DateTime'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/zip/src/types.rs:155,1
    - Dst: contains
      Src: /src/zip/src/types.rs:156,1
    - Dst: contains
      Src: /src/zip/src/types.rs:157,1
    - Dst: Ok
      Src: /src/zip/src/types.rs:162,1
    - Dst: Err
      Src: /src/zip/src/types.rs:171,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 6
    argNames:
    - year
    - month
    - day
    - hour
    - minute
    - second
    argTypes:
    - u16
    - u8
    - u8
    - u8
    - u8
    - u8
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: DateTime::from_date_and_time
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 4
    functionsReached:
    - Ok
    - Err
    - contains
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_date_and_time(year: u16,month: u8,day: u8,hour: u8,minute:
      u8,second: u8,) -> Result<DateTime, ()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OffsetDateTime::try_into
      Src: /src/zip/src/types.rs:182,1
    - Dst: map_err
      Src: /src/zip/src/types.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dt
    argTypes:
    - OffsetDateTime
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: DateTime::from_time
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - map_err
    - OffsetDateTime::try_into
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_time(dt: OffsetDateTime) -> Result<DateTime, ()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: DateTime::timepart
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn timepart(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: DateTime::datepart
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn datepart(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Date::from_calendar_date
      Src: /src/zip/src/types.rs:199,1
    - Dst: Month::try_from
      Src: /src/zip/src/types.rs:199,1
    - Dst: Time::from_hms
      Src: /src/zip/src/types.rs:200,1
    - Dst: Ok
      Src: /src/zip/src/types.rs:201,1
    - Dst: PrimitiveDateTime::new
      Src: /src/zip/src/types.rs:201,1
    - Dst: Self::assume_utc
      Src: /src/zip/src/types.rs:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: DateTime::to_time
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - Time::from_hms
    - Date::from_calendar_date
    - Month::try_from
    - Ok
    - Self::assume_utc
    - PrimitiveDateTime::new
    linkageType: ''
    returnType: Result
    signature: pub fn to_time(&self) -> Result<OffsetDateTime, ComponentRange>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: DateTime::year
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn year(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: DateTime::month
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn month(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    functionName: DateTime::day
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn day(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: DateTime::hour
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn hour(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: DateTime::minute
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn minute(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: DateTime::second
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: u8
    signature: pub fn second(&self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OffsetDateTime::year
      Src: /src/zip/src/types.rs:260,1
    - Dst: OffsetDateTime::year
      Src: /src/zip/src/types.rs:260,1
    - Dst: Ok
      Src: /src/zip/src/types.rs:261,1
    - Dst: OffsetDateTime::year
      Src: /src/zip/src/types.rs:262,1
    - Dst: OffsetDateTime::month
      Src: /src/zip/src/types.rs:263,1
    - Dst: OffsetDateTime::day
      Src: /src/zip/src/types.rs:264,1
    - Dst: OffsetDateTime::hour
      Src: /src/zip/src/types.rs:265,1
    - Dst: OffsetDateTime::minute
      Src: /src/zip/src/types.rs:266,1
    - Dst: OffsetDateTime::second
      Src: /src/zip/src/types.rs:267,1
    - Dst: Err
      Src: /src/zip/src/types.rs:270,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 1
    argNames:
    - dt
    argTypes:
    - OffsetDateTime
    constantsTouched: []
    func_position:
      end: 272
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 272
    functionName: DateTime::try_from
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - OffsetDateTime::day
    - OffsetDateTime::month
    - Err
    - OffsetDateTime::minute
    - OffsetDateTime::hour
    - Ok
    - OffsetDateTime::second
    - OffsetDateTime::year
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(dt: OffsetDateTime) -> Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/zip/src/types.rs:286,1
    - Dst: atomic::AtomicU64::new
      Src: /src/zip/src/types.rs:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 287
    functionName: AtomicU64::new
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 6
    functionsReached:
    - Self
    - atomic::AtomicU64::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(v: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/zip/src/types.rs:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: AtomicU64::load
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached:
    - load
    linkageType: ''
    returnType: u64
    signature: pub fn load(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/zip/src/types.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: AtomicU64::store
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - store
    linkageType: ''
    returnType: void
    signature: 'pub fn store(&self, val: u64)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_mut
      Src: /src/zip/src/types.rs:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 299
    functionName: AtomicU64::get_mut
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - get_mut
    linkageType: ''
    returnType: '&mut u64'
    signature: pub fn get_mut(&mut self) -> &mut u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/zip/src/types.rs:304,1
    - Dst: atomic::AtomicU64::new
      Src: /src/zip/src/types.rs:304,1
    - Dst: AtomicU64::load
      Src: /src/zip/src/types.rs:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 2
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: AtomicU64::clone
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - Self
    - AtomicU64::load
    - atomic::AtomicU64::new
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/zip/src/types.rs:357,1
    - Dst: to_string
      Src: /src/zip/src/types.rs:357,1
    - Dst: replace
      Src: /src/zip/src/types.rs:372,1
    - Dst: to_string
      Src: /src/zip/src/types.rs:372,1
    - Dst: to_string
      Src: /src/zip/src/types.rs:372,1
    - Dst: ::std::path::Path::new
      Src: /src/zip/src/types.rs:374,1
    - Dst: Self::components
      Src: /src/zip/src/types.rs:374,1
    - Dst: filter
      Src: /src/zip/src/types.rs:374,1
    - Dst: fold
      Src: /src/zip/src/types.rs:374,1
    - Dst: ::std::path::PathBuf::new
      Src: /src/zip/src/types.rs:377,1
    - Dst: ZipResult::push
      Src: /src/zip/src/types.rs:378,1
    - Dst: as_os_str
      Src: /src/zip/src/types.rs:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 381
    functionName: ZipFileData::file_name_sanitized
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - ::std::path::Path::new
    - to_string
    - fold
    - ::std::path::PathBuf::new
    - filter
    - as_os_str
    - Self::components
    - ZipResult::push
    - find
    - replace
    linkageType: ''
    returnType: ::std::path::PathBuf
    signature: pub fn file_name_sanitized(&self) -> ::std::path::PathBuf
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/zip/src/types.rs:384,1
    - Dst: path::Path::new
      Src: /src/zip/src/types.rs:387,1
    - Dst: ZipResult::components
      Src: /src/zip/src/types.rs:389,1
    - Dst: checked_sub
      Src: /src/zip/src/types.rs:392,1
    - Dst: Some
      Src: /src/zip/src/types.rs:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 398
    functionName: ZipFileData::enclosed_name
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - checked_sub
    - ZipResult::components
    - Some
    - path::Path::new
    - contains
    linkageType: ''
    returnType: Option
    signature: pub(crate) fn enclosed_name(&self) -> Option<&path::Path>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/zip/src/types.rs:407,1
    - Dst: Some
      Src: /src/zip/src/types.rs:419,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 423
    functionName: ZipFileData::unix_mode
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub(crate) fn unix_mode(&self) -> Option<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: ZipFileData::zip64_extension
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn zip64_extension(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipFileData::zip64_extension
      Src: /src/zip/src/types.rs:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 431
    functionDepth: 1
    functionLinenumber: 431
    functionLinenumberEnd: 439
    functionName: ZipFileData::version_needed
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - ZipFileData::zip64_extension
    linkageType: ''
    returnType: u16
    signature: pub fn version_needed(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AesMode::key_length
      Src: /src/zip/src/types.rs:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 464
    functionName: AesMode::salt_length
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached:
    - AesMode::key_length
    linkageType: ''
    returnType: usize
    signature: pub fn salt_length(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 472
    functionName: AesMode::key_length
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn key_length(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 484
    functionName: test::system
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn system()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/zip/src/types.rs:489,1
    - Dst: DateTime::default
      Src: /src/zip/src/types.rs:497,1
    - Dst: String::clone
      Src: /src/zip/src/types.rs:501,1
    - Dst: String::into_bytes
      Src: /src/zip/src/types.rs:502,1
    - Dst: Vec::new
      Src: /src/zip/src/types.rs:503,1
    - Dst: String::new
      Src: /src/zip/src/types.rs:504,1
    - Dst: AtomicU64::new
      Src: /src/zip/src/types.rs:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 487
    functionDepth: 4
    functionLinenumber: 487
    functionLinenumberEnd: 516
    functionName: test::sanitize
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - String::into_bytes
    - AtomicU64::new
    - Vec::new
    - String::clone
    - '&str::to_string'
    - String::new
    - DateTime::default
    linkageType: ''
    returnType: void
    signature: fn sanitize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DateTime::default
      Src: /src/zip/src/types.rs:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 525
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 525
    functionName: test::datetime_default
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - DateTime::default
    linkageType: ''
    returnType: void
    signature: fn datetime_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DateTime::from_date_and_time
      Src: /src/zip/src/types.rs:531,1
    - Dst: Result::unwrap
      Src: /src/zip/src/types.rs:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 529
    functionDepth: 1
    functionLinenumber: 529
    functionLinenumberEnd: 534
    functionName: test::datetime_max
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - DateTime::from_date_and_time
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn datetime_max()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 553
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 553
    functionName: test::datetime_bounds
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn datetime_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 577
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 577
    functionName: test::datetime_try_from_bounds
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn datetime_try_from_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DateTime::from_msdos
      Src: /src/zip/src/types.rs:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 595
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 595
    functionName: test::time_conversion
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - DateTime::from_msdos
    linkageType: ''
    returnType: void
    signature: fn time_conversion()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DateTime::from_msdos
      Src: /src/zip/src/types.rs:600,1
    - Dst: DateTime::from_msdos
      Src: /src/zip/src/types.rs:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 621
    functionName: test::time_out_of_bounds
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - DateTime::from_msdos
    linkageType: ''
    returnType: void
    signature: fn time_out_of_bounds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OffsetDateTime::from_unix_timestamp
      Src: /src/zip/src/types.rs:630,1
    - Dst: unwrap
      Src: /src/zip/src/types.rs:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 633
      start: 625
    functionDepth: 1
    functionLinenumber: 625
    functionLinenumberEnd: 633
    functionName: test::time_at_january
    functionSourceFile: /src/zip/src/types.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - OffsetDateTime::from_unix_timestamp
    linkageType: ''
    returnType: void
    signature: fn time_at_january()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: CentralDirectoryEnd::record_too_small
    functionSourceFile: /src/zip/src/spec.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn record_too_small(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:39,1
    - Dst: Err
      Src: /src/zip/src/spec.rs:41,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/spec.rs:41,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:43,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:44,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:45,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:46,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:47,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:48,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:49,1
    - Dst: ZipResult::read_exact
      Src: /src/zip/src/spec.rs:51,1
    - Dst: Ok
      Src: /src/zip/src/spec.rs:53,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 62
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 62
    functionName: CentralDirectoryEnd::parse
    functionSourceFile: /src/zip/src/spec.rs
    functionUses: 1
    functionsReached:
    - Err
    - ZipError::InvalidArchive
    - read_u16::<LittleEndian>
    - ZipResult::read_exact
    - read_u32::<LittleEndian>
    - Ok
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn parse<T: Read>(reader: &mut T) -> ZipResult<CentralDirectoryEnd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipResult::seek
      Src: /src/zip/src/spec.rs:69,1
    - Dst: io::SeekFrom::End
      Src: /src/zip/src/spec.rs:69,1
    - Dst: saturating_sub
      Src: /src/zip/src/spec.rs:71,1
    - Dst: Err
      Src: /src/zip/src/spec.rs:74,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/spec.rs:74,1
    - Dst: ZipResult::seek
      Src: /src/zip/src/spec.rs:79,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/spec.rs:79,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:80,1
    - Dst: ZipResult::seek
      Src: /src/zip/src/spec.rs:81,1
    - Dst: io::SeekFrom::Current
      Src: /src/zip/src/spec.rs:81,1
    - Dst: ZipResult::seek
      Src: /src/zip/src/spec.rs:84,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/spec.rs:84,1
    - Dst: CentralDirectoryEnd::parse
      Src: /src/zip/src/spec.rs:85,1
    - Dst: ZipResult::map
      Src: /src/zip/src/spec.rs:85,1
    - Dst: checked_sub
      Src: /src/zip/src/spec.rs:87,1
    - Dst: Err
      Src: /src/zip/src/spec.rs:92,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/spec.rs:92,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 56
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 95
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 95
    functionName: CentralDirectoryEnd::find_and_parse
    functionSourceFile: /src/zip/src/spec.rs
    functionUses: 3
    functionsReached:
    - checked_sub
    - ZipError::InvalidArchive
    - Err
    - CentralDirectoryEnd::parse
    - read_u32::<LittleEndian>
    - ZipResult::map
    - io::SeekFrom::Start
    - io::SeekFrom::End
    - saturating_sub
    - io::SeekFrom::Current
    - ZipResult::seek
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn find_and_parse<T: Read + io::Seek>(reader: &mut T,) -> ZipResult<(CentralDirectoryEnd,
      u64)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:98,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:99,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:100,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:101,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:102,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:103,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:104,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:105,1
    - Dst: len
      Src: /src/zip/src/spec.rs:105,1
    - Dst: '&mut T::write_all'
      Src: /src/zip/src/spec.rs:106,1
    - Dst: Ok
      Src: /src/zip/src/spec.rs:107,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 108
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 108
    functionName: CentralDirectoryEnd::write
    functionSourceFile: /src/zip/src/spec.rs
    functionUses: 0
    functionsReached:
    - '&mut T::write_all'
    - write_u32::<LittleEndian>
    - write_u16::<LittleEndian>
    - Ok
    - len
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn write<T: Write>(&self, writer: &mut T) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:119,1
    - Dst: Err
      Src: /src/zip/src/spec.rs:121,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/spec.rs:121,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:125,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:126,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:127,1
    - Dst: Ok
      Src: /src/zip/src/spec.rs:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 134
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 134
    functionName: Zip64CentralDirectoryEndLocator::parse
    functionSourceFile: /src/zip/src/spec.rs
    functionUses: 1
    functionsReached:
    - Err
    - ZipError::InvalidArchive
    - read_u64::<LittleEndian>
    - read_u32::<LittleEndian>
    - Ok
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn parse<T: Read>(reader: &mut T) -> ZipResult<Zip64CentralDirectoryEndLocator>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:137,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:138,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:139,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:140,1
    - Dst: Ok
      Src: /src/zip/src/spec.rs:141,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: Zip64CentralDirectoryEndLocator::write
    functionSourceFile: /src/zip/src/spec.rs
    functionUses: 0
    functionsReached:
    - write_u64::<LittleEndian>
    - Ok
    - write_u32::<LittleEndian>
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn write<T: Write>(&self, writer: &mut T) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipResult::seek
      Src: /src/zip/src/spec.rs:166,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/spec.rs:166,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:168,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:171,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:174,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:175,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:176,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:177,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:178,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:179,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:180,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:181,1
    - Dst: Ok
      Src: /src/zip/src/spec.rs:183,1
    - Dst: Err
      Src: /src/zip/src/spec.rs:201,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/spec.rs:201,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - reader
    - nominal_offset
    - search_upper_bound
    argTypes:
    - '&mut T'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 204
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 204
    functionName: Zip64CentralDirectoryEnd::find_and_parse
    functionSourceFile: /src/zip/src/spec.rs
    functionUses: 1
    functionsReached:
    - Err
    - ZipError::InvalidArchive
    - read_u16::<LittleEndian>
    - read_u64::<LittleEndian>
    - read_u32::<LittleEndian>
    - io::SeekFrom::Start
    - Ok
    - ZipResult::seek
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn find_and_parse<T: Read + io::Seek>(reader: &mut T,nominal_offset:
      u64,search_upper_bound: u64,) -> ZipResult<(Zip64CentralDirectoryEnd, u64)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:207,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:208,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:209,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/spec.rs:210,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:211,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/spec.rs:212,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:213,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:214,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:215,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/spec.rs:216,1
    - Dst: Ok
      Src: /src/zip/src/spec.rs:217,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 1
    argNames:
    - writer
    argTypes:
    - '&mut T'
    constantsTouched: []
    func_position:
      end: 218
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 218
    functionName: Zip64CentralDirectoryEnd::write
    functionSourceFile: /src/zip/src/spec.rs
    functionUses: 0
    functionsReached:
    - write_u64::<LittleEndian>
    - Ok
    - write_u32::<LittleEndian>
    - write_u16::<LittleEndian>
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn write<T: Write>(&self, writer: &mut T) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/zip/src/read.rs:88,1
    - Dst: read
      Src: /src/zip/src/read.rs:89,1
    - Dst: read
      Src: /src/zip/src/read.rs:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: CryptoReader::read
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_inner
      Src: /src/zip/src/read.rs:101,1
    - Dst: into_inner
      Src: /src/zip/src/read.rs:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: CryptoReader::into_inner
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - into_inner
    linkageType: ''
    returnType: io::Take
    signature: pub fn into_inner(self) -> io::Take<&'a mut dyn Read>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: CryptoReader::is_ae2_encrypted
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_ae2_encrypted(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/zip/src/read.rs:142,1
    - Dst: read
      Src: /src/zip/src/read.rs:143,1
    - Dst: read
      Src: /src/zip/src/read.rs:149,1
    - Dst: read
      Src: /src/zip/src/read.rs:151,1
    - Dst: read
      Src: /src/zip/src/read.rs:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: ZipFileReader::read
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 1
    functionsReached:
    - read
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_inner
      Src: /src/zip/src/read.rs:164,1
    - Dst: io::Take::into_inner
      Src: /src/zip/src/read.rs:164,1
    - Dst: into_inner
      Src: /src/zip/src/read.rs:170,1
    - Dst: io::Take::into_inner
      Src: /src/zip/src/read.rs:170,1
    - Dst: io::Take::into_inner
      Src: /src/zip/src/read.rs:170,1
    - Dst: into_inner
      Src: /src/zip/src/read.rs:172,1
    - Dst: io::Take::into_inner
      Src: /src/zip/src/read.rs:172,1
    - Dst: io::Take::into_inner
      Src: /src/zip/src/read.rs:172,1
    - Dst: into_inner
      Src: /src/zip/src/read.rs:174,1
    - Dst: io::Take::finish
      Src: /src/zip/src/read.rs:174,1
    - Dst: std::io::Result::into_inner
      Src: /src/zip/src/read.rs:174,1
    - Dst: io::Take::into_inner
      Src: /src/zip/src/read.rs:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 160
    functionDepth: 2
    functionLinenumber: 160
    functionLinenumberEnd: 176
    functionName: ZipFileReader::into_inner
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - io::Take::into_inner
    - io::Take::finish
    - std::io::Result::into_inner
    - into_inner
    linkageType: ''
    returnType: io::Take
    signature: pub fn into_inner(self) -> io::Take<&'a mut dyn Read>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipResult::seek
      Src: /src/zip/src/read.rs:191,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/read.rs:191,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:192,1
    - Dst: Err
      Src: /src/zip/src/read.rs:194,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:194,1
    - Dst: ZipResult::seek
      Src: /src/zip/src/read.rs:197,1
    - Dst: io::SeekFrom::Current
      Src: /src/zip/src/read.rs:197,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:198,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:199,1
    - Dst: store
      Src: /src/zip/src/read.rs:202,1
    - Dst: ZipResult::seek
      Src: /src/zip/src/read.rs:204,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/read.rs:204,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:205,1
    - Dst: take
      Src: /src/zip/src/read.rs:205,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 2
    argNames:
    - data
    - reader
    argTypes:
    - '&ZipFileData'
    - '&''a mut (impl Read + Seek)'
    constantsTouched: []
    func_position:
      end: 206
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 206
    functionName: find_content
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 2
    functionsReached:
    - Err
    - ZipError::InvalidArchive
    - take
    - read_u16::<LittleEndian>
    - store
    - read_u32::<LittleEndian>
    - io::SeekFrom::Start
    - Ok
    - io::SeekFrom::Current
    - ZipResult::seek
    linkageType: ''
    returnType: ZipResult
    signature: 'fn find_content<''a>(data: &ZipFileData,reader: &''a mut (impl Read
      + Seek),) -> ZipResult<io::Take<&''a mut dyn Read>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unsupported_zip_error
      Src: /src/zip/src/read.rs:222,1
    - Dst: Err
      Src: /src/zip/src/read.rs:229,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/read.rs:229,1
    - Dst: AesReader::new
      Src: /src/zip/src/read.rs:235,1
    - Dst: AesReader::validate
      Src: /src/zip/src/read.rs:235,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:236,1
    - Dst: Err
      Src: /src/zip/src/read.rs:236,1
    - Dst: ZipCryptoValidator::InfoZipMsdosTime
      Src: /src/zip/src/read.rs:245,1
    - Dst: FileOptions::timepart
      Src: /src/zip/src/read.rs:245,1
    - Dst: ZipCryptoValidator::PkzipCrc32
      Src: /src/zip/src/read.rs:247,1
    - Dst: ZipCryptoReader::new
      Src: /src/zip/src/read.rs:249,1
    - Dst: ZipCryptoReader::validate
      Src: /src/zip/src/read.rs:249,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:250,1
    - Dst: Err
      Src: /src/zip/src/read.rs:250,1
    - Dst: CryptoReader::ZipCrypto
      Src: /src/zip/src/read.rs:251,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:254,1
    - Dst: Err
      Src: /src/zip/src/read.rs:254,1
    - Dst: CryptoReader::Plaintext
      Src: /src/zip/src/read.rs:255,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:257,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:257,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 8
    argNames:
    - compression_method
    - crc32
    - last_modified_time
    - using_data_descriptor
    - reader
    - password
    - aes_info
    - compressed_size
    argTypes:
    - crate::compression::CompressionMethod
    - u32
    - DateTime
    - bool
    - io::Take<&'a mut dyn io::Read>
    - Option<&[u8]>
    - Option<(AesMode, AesVendorVersion)>
    - u64
    constantsTouched: []
    func_position:
      end: 258
      start: 209
    functionDepth: 4
    functionLinenumber: 209
    functionLinenumberEnd: 258
    functionName: make_crypto_reader
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 2
    functionsReached:
    - ZipCryptoReader::new
    - CryptoReader::ZipCrypto
    - Err
    - ZipCryptoValidator::InfoZipMsdosTime
    - ZipCryptoReader::validate
    - AesReader::new
    - AesReader::validate
    - ZipCryptoValidator::PkzipCrc32
    - Ok
    - FileOptions::timepart
    - CryptoReader::Plaintext
    - ZipError::UnsupportedArchive
    - unsupported_zip_error
    linkageType: ''
    returnType: ZipResult
    signature: 'fn make_crypto_reader<''a>(compression_method: crate::compression::CompressionMethod,crc32:
      u32,last_modified_time: DateTime,using_data_descriptor: bool,reader: io::Take<&''a
      mut dyn io::Read>,password: Option<&[u8]>,aes_info: Option<(AesMode, AesVendorVersion)>,#[cfg(feature
      = "aes-crypto")] compressed_size: u64,) -> ZipResult<Result<CryptoReader<''a>,
      InvalidPassword>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipResult::is_ae2_encrypted
      Src: /src/zip/src/read.rs:265,1
    - Dst: ZipFileReader::Stored
      Src: /src/zip/src/read.rs:269,1
    - Dst: Crc32Reader::new
      Src: /src/zip/src/read.rs:269,1
    - Dst: DeflateDecoder::new
      Src: /src/zip/src/read.rs:277,1
    - Dst: ZipFileReader::Deflated
      Src: /src/zip/src/read.rs:278,1
    - Dst: Crc32Reader::new
      Src: /src/zip/src/read.rs:278,1
    - Dst: BzDecoder::new
      Src: /src/zip/src/read.rs:282,1
    - Dst: ZipFileReader::Bzip2
      Src: /src/zip/src/read.rs:283,1
    - Dst: Crc32Reader::new
      Src: /src/zip/src/read.rs:283,1
    - Dst: ZstdDecoder::new
      Src: /src/zip/src/read.rs:287,1
    - Dst: Self::unwrap
      Src: /src/zip/src/read.rs:287,1
    - Dst: ZipFileReader::Zstd
      Src: /src/zip/src/read.rs:288,1
    - Dst: Crc32Reader::new
      Src: /src/zip/src/read.rs:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - compression_method
    - crc32
    - reader
    argTypes:
    - CompressionMethod
    - u32
    - CryptoReader
    constantsTouched: []
    func_position:
      end: 292
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 292
    functionName: make_reader
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 2
    functionsReached:
    - ZipFileReader::Bzip2
    - Crc32Reader::new
    - BzDecoder::new
    - ZipFileReader::Deflated
    - ZipFileReader::Zstd
    - ZipFileReader::Stored
    - ZstdDecoder::new
    - DeflateDecoder::new
    - ZipResult::is_ae2_encrypted
    - Self::unwrap
    linkageType: ''
    returnType: ZipFileReader
    signature: 'fn make_reader(compression_method: CompressionMethod,crc32: u32,reader:
      CryptoReader,) -> ZipFileReader'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipResult::seek
      Src: /src/zip/src/read.rs:306,1
    - Dst: io::SeekFrom::End
      Src: /src/zip/src/read.rs:307,1
    - Dst: len
      Src: /src/zip/src/read.rs:308,1
    - Dst: io::Result::is_ok
      Src: /src/zip/src/read.rs:306,1
    - Dst: spec::Zip64CentralDirectoryEndLocator::parse
      Src: /src/zip/src/read.rs:312,1
    - Dst: Some
      Src: /src/zip/src/read.rs:313,1
    - Dst: Err
      Src: /src/zip/src/read.rs:320,1
    - Dst: u64::checked_sub
      Src: /src/zip/src/read.rs:335,1
    - Dst: and_then
      Src: /src/zip/src/read.rs:335,1
    - Dst: checked_sub
      Src: /src/zip/src/read.rs:337,1
    - Dst: ok_or
      Src: /src/zip/src/read.rs:335,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:338,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:344,1
    - Dst: '&spec::CentralDirectoryEnd::record_too_small'
      Src: /src/zip/src/read.rs:349,1
    - Dst: unsupported_zip_error
      Src: /src/zip/src/read.rs:352,1
    - Dst: u64::checked_sub
      Src: /src/zip/src/read.rs:365,1
    - Dst: ok_or
      Src: /src/zip/src/read.rs:365,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:367,1
    - Dst: spec::Zip64CentralDirectoryEnd::find_and_parse
      Src: /src/zip/src/read.rs:370,1
    - Dst: unsupported_zip_error
      Src: /src/zip/src/read.rs:377,1
    - Dst: checked_add
      Src: /src/zip/src/read.rs:382,1
    - Dst: ok_or
      Src: /src/zip/src/read.rs:382,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:386,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:389,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 86
    argCount: 3
    argNames:
    - reader
    - footer
    - cde_start_pos
    argTypes:
    - '&mut R'
    - '&spec::CentralDirectoryEnd'
    - u64
    constantsTouched: []
    func_position:
      end: 396
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 396
    functionName: ZipArchive::get_directory_counts
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 1
    functionsReached:
    - checked_sub
    - ok_or
    - checked_add
    - spec::Zip64CentralDirectoryEndLocator::parse
    - Err
    - and_then
    - ZipError::InvalidArchive
    - u64::checked_sub
    - Some
    - Ok
    - io::SeekFrom::End
    - io::Result::is_ok
    - spec::Zip64CentralDirectoryEnd::find_and_parse
    - unsupported_zip_error
    - ZipResult::seek
    - '&spec::CentralDirectoryEnd::record_too_small'
    - len
    linkageType: ''
    returnType: ZipResult
    signature: 'pub(crate) fn get_directory_counts(reader: &mut R,footer: &spec::CentralDirectoryEnd,cde_start_pos:
      u64,) -> ZipResult<(u64, u64, usize)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spec::CentralDirectoryEnd::find_and_parse
      Src: /src/zip/src/read.rs:402,1
    - Dst: record_too_small
      Src: /src/zip/src/read.rs:404,1
    - Dst: unsupported_zip_error
      Src: /src/zip/src/read.rs:405,1
    - Dst: Self::get_directory_counts
      Src: /src/zip/src/read.rs:409,1
    - Dst: Vec::with_capacity
      Src: /src/zip/src/read.rs:419,1
    - Dst: HashMap::with_capacity
      Src: /src/zip/src/read.rs:420,1
    - Dst: ZipResult::seek
      Src: /src/zip/src/read.rs:422,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/read.rs:422,1
    - Dst: io::Result::is_err
      Src: /src/zip/src/read.rs:422,1
    - Dst: Err
      Src: /src/zip/src/read.rs:423,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:423,1
    - Dst: central_header_to_zip_file
      Src: /src/zip/src/read.rs:429,1
    - Dst: insert
      Src: /src/zip/src/read.rs:430,1
    - Dst: clone
      Src: /src/zip/src/read.rs:430,1
    - Dst: len
      Src: /src/zip/src/read.rs:430,1
    - Dst: push
      Src: /src/zip/src/read.rs:431,1
    - Dst: Arc::new
      Src: /src/zip/src/read.rs:434,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:441,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 57
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 442
      start: 401
    functionDepth: 5
    functionLinenumber: 401
    functionLinenumberEnd: 442
    functionName: ZipArchive::new
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 20
    functionsReached:
    - Self::get_directory_counts
    - Arc::new
    - Err
    - ZipError::InvalidArchive
    - central_header_to_zip_file
    - push
    - insert
    - clone
    - unsupported_zip_error
    - record_too_small
    - HashMap::with_capacity
    - io::SeekFrom::Start
    - io::Result::is_err
    - Vec::with_capacity
    - Ok
    - spec::CentralDirectoryEnd::find_and_parse
    - ZipResult::seek
    - len
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn new(mut reader: R) -> ZipResult<ZipArchive<R>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipArchive::len
      Src: /src/zip/src/read.rs:451,1
    - Dst: ZipArchive::by_index
      Src: /src/zip/src/read.rs:452,1
    - Dst: zip::result::ZipResult::enclosed_name
      Src: /src/zip/src/read.rs:453,1
    - Dst: Option::ok_or
      Src: /src/zip/src/read.rs:453,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:455,1
    - Dst: ZipResult::as_ref
      Src: /src/zip/src/read.rs:457,1
    - Dst: join
      Src: /src/zip/src/read.rs:457,1
    - Dst: zip::result::ZipResult::name
      Src: /src/zip/src/read.rs:459,1
    - Dst: Option::ends_with
      Src: /src/zip/src/read.rs:459,1
    - Dst: fs::create_dir_all
      Src: /src/zip/src/read.rs:460,1
    - Dst: parent
      Src: /src/zip/src/read.rs:462,1
    - Dst: exists
      Src: /src/zip/src/read.rs:463,1
    - Dst: fs::create_dir_all
      Src: /src/zip/src/read.rs:464,1
    - Dst: fs::File::create
      Src: /src/zip/src/read.rs:467,1
    - Dst: io::copy
      Src: /src/zip/src/read.rs:468,1
    - Dst: zip::result::ZipResult::unix_mode
      Src: /src/zip/src/read.rs:474,1
    - Dst: fs::set_permissions
      Src: /src/zip/src/read.rs:475,1
    - Dst: fs::Permissions::from_mode
      Src: /src/zip/src/read.rs:475,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:479,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 1
    argNames:
    - directory
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 480
      start: 448
    functionDepth: 10
    functionLinenumber: 448
    functionLinenumberEnd: 480
    functionName: ZipArchive::extract
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - zip::result::ZipResult::name
    - ZipResult::as_ref
    - exists
    - ZipError::InvalidArchive
    - Option::ok_or
    - ZipArchive::by_index
    - join
    - fs::File::create
    - io::copy
    - fs::set_permissions
    - fs::create_dir_all
    - fs::Permissions::from_mode
    - parent
    - Ok
    - zip::result::ZipResult::enclosed_name
    - zip::result::ZipResult::unix_mode
    - Option::ends_with
    - ZipArchive::len
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn extract<P: AsRef<Path>>(&mut self, directory: P) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/zip/src/read.rs:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: ZipArchive::len
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 2
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipArchive::len
      Src: /src/zip/src/read.rs:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: ZipArchive::is_empty
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipArchive::len
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: ZipArchive::offset
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn offset(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 503
    functionName: ZipArchive::comment
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn comment(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: keys
      Src: /src/zip/src/read.rs:507,1
    - Dst: map
      Src: /src/zip/src/read.rs:507,1
    - Dst: as_str
      Src: /src/zip/src/read.rs:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 508
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 508
    functionName: ZipArchive::file_names
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - map
    - as_str
    - keys
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn file_names(&self) -> impl Iterator<Item = &str>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipArchive::by_name_with_optional_password
      Src: /src/zip/src/read.rs:528,1
    - Dst: Some
      Src: /src/zip/src/read.rs:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - password
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 7
    functionLinenumber: 523
    functionLinenumberEnd: 529
    functionName: ZipArchive::by_name_decrypt
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipArchive::by_name_with_optional_password
    - Some
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn by_name_decrypt<''a>(&''a mut self,name: &str,password: &[u8],)
      -> ZipResult<Result<ZipFile<''a>, InvalidPassword>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/zip/src/read.rs:533,1
    - Dst: ZipArchive::by_name_with_optional_password
      Src: /src/zip/src/read.rs:533,1
    - Dst: unwrap
      Src: /src/zip/src/read.rs:533,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 534
      start: 532
    functionDepth: 7
    functionLinenumber: 532
    functionLinenumberEnd: 534
    functionName: ZipArchive::by_name
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Ok
    - ZipArchive::by_name_with_optional_password
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn by_name<''a>(&''a mut self, name: &str) -> ZipResult<ZipFile<''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/zip/src/read.rs:541,1
    - Dst: Err
      Src: /src/zip/src/read.rs:544,1
    - Dst: ZipArchive::by_index_with_optional_password
      Src: /src/zip/src/read.rs:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - name
    - password
    argTypes:
    - '&str'
    - Option<&[u8]>
    constantsTouched: []
    func_position:
      end: 548
      start: 536
    functionDepth: 6
    functionLinenumber: 536
    functionLinenumberEnd: 548
    functionName: ZipArchive::by_name_with_optional_password
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 2
    functionsReached:
    - get
    - Err
    - ZipArchive::by_index_with_optional_password
    linkageType: ''
    returnType: ZipResult
    signature: 'fn by_name_with_optional_password<''a>(&''a mut self,name: &str,password:
      Option<&[u8]>,) -> ZipResult<Result<ZipFile<''a>, InvalidPassword>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipArchive::by_index_with_optional_password
      Src: /src/zip/src/read.rs:568,1
    - Dst: Some
      Src: /src/zip/src/read.rs:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - file_number
    - password
    argTypes:
    - usize
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 569
      start: 563
    functionDepth: 6
    functionLinenumber: 563
    functionLinenumberEnd: 569
    functionName: ZipArchive::by_index_decrypt
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipArchive::by_index_with_optional_password
    - Some
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn by_index_decrypt<''a>(&''a mut self,file_number: usize,password:
      &[u8],) -> ZipResult<Result<ZipFile<''a>, InvalidPassword>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/zip/src/read.rs:573,1
    - Dst: ZipArchive::by_index_with_optional_password
      Src: /src/zip/src/read.rs:573,1
    - Dst: unwrap
      Src: /src/zip/src/read.rs:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - file_number
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 576
      start: 572
    functionDepth: 6
    functionLinenumber: 572
    functionLinenumberEnd: 576
    functionName: ZipArchive::by_index
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - Ok
    - ZipArchive::by_index_with_optional_password
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn by_index(&mut self, file_number: usize) -> ZipResult<ZipFile<''_>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/zip/src/read.rs:581,1
    - Dst: ok_or
      Src: /src/zip/src/read.rs:581,1
    - Dst: and_then
      Src: /src/zip/src/read.rs:581,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:586,1
    - Dst: ZipFileReader::Raw
      Src: /src/zip/src/read.rs:588,1
    - Dst: find_content
      Src: /src/zip/src/read.rs:588,1
    - Dst: Cow::Borrowed
      Src: /src/zip/src/read.rs:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - file_number
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 592
      start: 579
    functionDepth: 3
    functionLinenumber: 579
    functionLinenumberEnd: 592
    functionName: ZipArchive::by_index_raw
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ok_or
    - ZipFileReader::Raw
    - get
    - and_then
    - Cow::Borrowed
    - Ok
    - find_content
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn by_index_raw(&mut self, file_number: usize) -> ZipResult<ZipFile<''_>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/zip/src/read.rs:599,1
    - Dst: ok_or
      Src: /src/zip/src/read.rs:599,1
    - Dst: Err
      Src: /src/zip/src/read.rs:606,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/read.rs:606,1
    - Dst: find_content
      Src: /src/zip/src/read.rs:610,1
    - Dst: make_crypto_reader
      Src: /src/zip/src/read.rs:612,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:623,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:623,1
    - Dst: Some
      Src: /src/zip/src/read.rs:624,1
    - Dst: Cow::Borrowed
      Src: /src/zip/src/read.rs:626,1
    - Dst: Err
      Src: /src/zip/src/read.rs:628,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:629,1
    - Dst: Err
      Src: /src/zip/src/read.rs:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 2
    argNames:
    - file_number
    - password
    argTypes:
    - usize
    - Option<&[u8]>
    constantsTouched: []
    func_position:
      end: 631
      start: 594
    functionDepth: 5
    functionLinenumber: 594
    functionLinenumberEnd: 631
    functionName: ZipArchive::by_index_with_optional_password
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 3
    functionsReached:
    - ok_or
    - get
    - Err
    - Cow::Borrowed
    - Some
    - Ok
    - ZipError::UnsupportedArchive
    - make_crypto_reader
    - find_content
    linkageType: ''
    returnType: ZipResult
    signature: 'fn by_index_with_optional_password<''a>(&''a mut self,file_number:
      usize,mut password: Option<&[u8]>,) -> ZipResult<Result<ZipFile<''a>, InvalidPassword>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 638
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 638
    functionName: ZipArchive::into_inner
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R
    signature: pub fn into_inner(self) -> R
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/zip/src/read.rs:642,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/read.rs:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - detail
    argTypes:
    - '&''static str'
    constantsTouched: []
    func_position:
      end: 643
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 643
    functionName: unsupported_zip_error
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 4
    functionsReached:
    - Err
    - ZipError::UnsupportedArchive
    linkageType: ''
    returnType: ZipResult
    signature: 'fn unsupported_zip_error<T>(detail: &''static str) -> ZipResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipResult::stream_position
      Src: /src/zip/src/read.rs:650,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:653,1
    - Dst: Err
      Src: /src/zip/src/read.rs:655,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:655,1
    - Dst: central_header_to_zip_file_inner
      Src: /src/zip/src/read.rs:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - reader
    - archive_offset
    argTypes:
    - '&mut R'
    - u64
    constantsTouched: []
    func_position:
      end: 659
      start: 646
    functionDepth: 4
    functionLinenumber: 646
    functionLinenumberEnd: 659
    functionName: central_header_to_zip_file
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 2
    functionsReached:
    - Err
    - ZipError::InvalidArchive
    - central_header_to_zip_file_inner
    - ZipResult::stream_position
    - read_u32::<LittleEndian>
    linkageType: ''
    returnType: ZipResult
    signature: 'pub(crate) fn central_header_to_zip_file<R: Read + io::Seek>(reader:
      &mut R,archive_offset: u64,) -> ZipResult<ZipFileData>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:667,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:668,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:669,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:673,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:674,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:675,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:676,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:677,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:678,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:679,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:680,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:681,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:682,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:683,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:684,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:685,1
    - Dst: ZipResult::read_exact
      Src: /src/zip/src/read.rs:687,1
    - Dst: ZipResult::read_exact
      Src: /src/zip/src/read.rs:689,1
    - Dst: ZipResult::read_exact
      Src: /src/zip/src/read.rs:691,1
    - Dst: String::from_utf8_lossy
      Src: /src/zip/src/read.rs:694,1
    - Dst: into_owned
      Src: /src/zip/src/read.rs:694,1
    - Dst: clone
      Src: /src/zip/src/read.rs:695,1
    - Dst: from_cp437
      Src: /src/zip/src/read.rs:695,1
    - Dst: String::from_utf8_lossy
      Src: /src/zip/src/read.rs:698,1
    - Dst: into_owned
      Src: /src/zip/src/read.rs:698,1
    - Dst: from_cp437
      Src: /src/zip/src/read.rs:699,1
    - Dst: System::from_u8
      Src: /src/zip/src/read.rs:704,1
    - Dst: CompressionMethod::from_u16
      Src: /src/zip/src/read.rs:710,1
    - Dst: DateTime::from_msdos
      Src: /src/zip/src/read.rs:713,1
    - Dst: AtomicU64::new
      Src: /src/zip/src/read.rs:723,1
    - Dst: parse_extra_field
      Src: /src/zip/src/read.rs:729,1
    - Dst: Err
      Src: /src/zip/src/read.rs:731,1
    - Dst: is_none
      Src: /src/zip/src/read.rs:735,1
    - Dst: Err
      Src: /src/zip/src/read.rs:736,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:736,1
    - Dst: checked_add
      Src: /src/zip/src/read.rs:742,1
    - Dst: ok_or
      Src: /src/zip/src/read.rs:742,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:745,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:747,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 133
    argCount: 3
    argNames:
    - reader
    - archive_offset
    - central_header_start
    argTypes:
    - '&mut R'
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 748
      start: 662
    functionDepth: 3
    functionLinenumber: 662
    functionLinenumberEnd: 748
    functionName: central_header_to_zip_file_inner
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 2
    functionsReached:
    - ok_or
    - Err
    - ZipError::InvalidArchive
    - read_u16::<LittleEndian>
    - clone
    - ZipResult::read_exact
    - String::from_utf8_lossy
    - AtomicU64::new
    - read_u32::<LittleEndian>
    - System::from_u8
    - DateTime::from_msdos
    - Ok
    - is_none
    - CompressionMethod::from_u16
    - from_cp437
    - into_owned
    - checked_add
    - parse_extra_field
    linkageType: ''
    returnType: ZipResult
    signature: 'fn central_header_to_zip_file_inner<R: Read>(reader: &mut R,archive_offset:
      u64,central_header_start: u64,) -> ZipResult<ZipFileData>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Cursor::new
      Src: /src/zip/src/read.rs:751,1
    - Dst: ZipResult::position
      Src: /src/zip/src/read.rs:753,1
    - Dst: len
      Src: /src/zip/src/read.rs:753,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:754,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:755,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/zip/src/read.rs:762,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/zip/src/read.rs:767,1
    - Dst: read_u64::<LittleEndian>
      Src: /src/zip/src/read.rs:771,1
    - Dst: Err
      Src: /src/zip/src/read.rs:778,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/read.rs:778,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:782,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:783,1
    - Dst: ZipResult::read_u8
      Src: /src/zip/src/read.rs:784,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:785,1
    - Dst: Err
      Src: /src/zip/src/read.rs:788,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:788,1
    - Dst: Err
      Src: /src/zip/src/read.rs:793,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:793,1
    - Dst: Some
      Src: /src/zip/src/read.rs:796,1
    - Dst: Some
      Src: /src/zip/src/read.rs:797,1
    - Dst: Some
      Src: /src/zip/src/read.rs:798,1
    - Dst: Err
      Src: /src/zip/src/read.rs:799,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:799,1
    - Dst: CompressionMethod::from_u16
      Src: /src/zip/src/read.rs:803,1
    - Dst: ZipResult::seek
      Src: /src/zip/src/read.rs:813,1
    - Dst: io::SeekFrom::Current
      Src: /src/zip/src/read.rs:813,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:816,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 122
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&mut ZipFileData'
    constantsTouched: []
    func_position:
      end: 817
      start: 750
    functionDepth: 2
    functionLinenumber: 750
    functionLinenumberEnd: 817
    functionName: parse_extra_field
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 2
    functionsReached:
    - ZipResult::read_u8
    - Err
    - ZipError::InvalidArchive
    - len
    - read_u16::<LittleEndian>
    - read_u64::<LittleEndian>
    - Some
    - Ok
    - io::Cursor::new
    - CompressionMethod::from_u16
    - ZipError::UnsupportedArchive
    - io::SeekFrom::Current
    - ZipResult::seek
    - ZipResult::position
    linkageType: ''
    returnType: ZipResult
    signature: 'fn parse_extra_field(file: &mut ZipFileData) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/zip/src/read.rs:824,1
    - Dst: expect
      Src: /src/zip/src/read.rs:824,1
    - Dst: make_reader
      Src: /src/zip/src/read.rs:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 821
    functionDepth: 3
    functionLinenumber: 821
    functionLinenumberEnd: 828
    functionName: ZipFile::get_reader
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 1
    functionsReached:
    - make_reader
    - expect
    - take
    linkageType: ''
    returnType: '&mut ZipFileReader'
    signature: fn get_reader(&mut self) -> &mut ZipFileReader<'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/zip/src/read.rs:832,1
    - Dst: expect
      Src: /src/zip/src/read.rs:832,1
    - Dst: ZipFileReader::Raw
      Src: /src/zip/src/read.rs:833,1
    - Dst: ZipResult::into_inner
      Src: /src/zip/src/read.rs:833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 836
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 836
    functionName: ZipFile::get_raw_reader
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipResult::into_inner
    - expect
    - ZipFileReader::Raw
    - take
    linkageType: ''
    returnType: '&mut dyn Read'
    signature: pub(crate) fn get_raw_reader(&mut self) -> &mut dyn Read
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 844
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 844
    functionName: ZipFile::version_made_by
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (u8, u8)
    signature: pub fn version_made_by(&self) -> (u8, u8)
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 860
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 860
    functionName: ZipFile::name
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: pub fn name(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 867
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 867
    functionName: ZipFile::name_raw
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn name_raw(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::mangled_name
      Src: /src/zip/src/read.rs:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 878
      start: 876
    functionDepth: 6
    functionLinenumber: 876
    functionLinenumberEnd: 878
    functionName: ZipFile::sanitized_name
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipFile::mangled_name
    linkageType: ''
    returnType: ::std::path::PathBuf
    signature: pub fn sanitized_name(&self) -> ::std::path::PathBuf
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: file_name_sanitized
      Src: /src/zip/src/read.rs:893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 894
      start: 892
    functionDepth: 5
    functionLinenumber: 892
    functionLinenumberEnd: 894
    functionName: ZipFile::mangled_name
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 1
    functionsReached:
    - file_name_sanitized
    linkageType: ''
    returnType: ::std::path::PathBuf
    signature: pub fn mangled_name(&self) -> ::std::path::PathBuf
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enclosed_name
      Src: /src/zip/src/read.rs:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 908
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 908
    functionName: ZipFile::enclosed_name
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - enclosed_name
    linkageType: ''
    returnType: Option
    signature: pub fn enclosed_name(&self) -> Option<&Path>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 913
    functionName: ZipFile::comment
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: pub fn comment(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 918
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 918
    functionName: ZipFile::compression
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CompressionMethod
    signature: pub fn compression(&self) -> CompressionMethod
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 923
      start: 921
    functionDepth: 0
    functionLinenumber: 921
    functionLinenumberEnd: 923
    functionName: ZipFile::compressed_size
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn compressed_size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 928
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 928
    functionName: ZipFile::size
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn size(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 933
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 933
    functionName: ZipFile::last_modified
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DateTime
    signature: pub fn last_modified(&self) -> DateTime
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::name
      Src: /src/zip/src/read.rs:936,1
    - Dst: '&str::chars'
      Src: /src/zip/src/read.rs:936,1
    - Dst: rev
      Src: /src/zip/src/read.rs:936,1
    - Dst: next
      Src: /src/zip/src/read.rs:936,1
    - Dst: map_or
      Src: /src/zip/src/read.rs:936,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 941
      start: 935
    functionDepth: 1
    functionLinenumber: 935
    functionLinenumberEnd: 941
    functionName: ZipFile::is_dir
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 1
    functionsReached:
    - '&str::chars'
    - next
    - map_or
    - rev
    - ZipFile::name
    linkageType: ''
    returnType: bool
    signature: pub fn is_dir(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::is_dir
      Src: /src/zip/src/read.rs:945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 946
      start: 944
    functionDepth: 2
    functionLinenumber: 944
    functionLinenumberEnd: 946
    functionName: ZipFile::is_file
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipFile::is_dir
    linkageType: ''
    returnType: bool
    signature: pub fn is_file(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unix_mode
      Src: /src/zip/src/read.rs:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 951
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 951
    functionName: ZipFile::unix_mode
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - unix_mode
    linkageType: ''
    returnType: Option
    signature: pub fn unix_mode(&self) -> Option<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 956
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 956
    functionName: ZipFile::crc32
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u32
    signature: pub fn crc32(&self) -> u32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 961
    functionName: ZipFile::extra_data
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn extra_data(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/zip/src/read.rs:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 966
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 966
    functionName: ZipFile::data_start
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: u64
    signature: pub fn data_start(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 971
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 971
    functionName: ZipFile::header_start
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn header_start(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 973
    functionDepth: 0
    functionLinenumber: 973
    functionLinenumberEnd: 975
    functionName: ZipFile::central_header_start
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: pub fn central_header_start(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipFile::get_reader
      Src: /src/zip/src/read.rs:980,1
    - Dst: '&mut ZipFileReader::read'
      Src: /src/zip/src/read.rs:980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 981
      start: 979
    functionDepth: 4
    functionLinenumber: 979
    functionLinenumberEnd: 981
    functionName: ZipFile::read
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipFile::get_reader
    - '&mut ZipFileReader::read'
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::std::mem::replace
      Src: /src/zip/src/read.rs:994,1
    - Dst: expect
      Src: /src/zip/src/read.rs:995,1
    - Dst: into_inner
      Src: /src/zip/src/read.rs:995,1
    - Dst: ::std::mem::replace
      Src: /src/zip/src/read.rs:998,1
    - Dst: into_inner
      Src: /src/zip/src/read.rs:999,1
    - Dst: ZipResult::read
      Src: /src/zip/src/read.rs:1004,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 985
    functionDepth: 2
    functionLinenumber: 985
    functionLinenumberEnd: 1013
    functionName: ZipFile::drop
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipResult::read
    - ::std::mem::replace
    - expect
    - into_inner
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:1035,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:1039,1
    - Dst: Err
      Src: /src/zip/src/read.rs:1040,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/read.rs:1040,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:1043,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:1044,1
    - Dst: CompressionMethod::from_u16
      Src: /src/zip/src/read.rs:1049,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:1049,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:1050,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:1051,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:1052,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:1053,1
    - Dst: read_u32::<LittleEndian>
      Src: /src/zip/src/read.rs:1054,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:1055,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/read.rs:1056,1
    - Dst: ZipResult::read_exact
      Src: /src/zip/src/read.rs:1059,1
    - Dst: ZipResult::read_exact
      Src: /src/zip/src/read.rs:1061,1
    - Dst: String::from_utf8_lossy
      Src: /src/zip/src/read.rs:1064,1
    - Dst: into_owned
      Src: /src/zip/src/read.rs:1064,1
    - Dst: clone
      Src: /src/zip/src/read.rs:1065,1
    - Dst: from_cp437
      Src: /src/zip/src/read.rs:1065,1
    - Dst: System::from_u8
      Src: /src/zip/src/read.rs:1069,1
    - Dst: DateTime::from_msdos
      Src: /src/zip/src/read.rs:1075,1
    - Dst: String::new
      Src: /src/zip/src/read.rs:1082,1
    - Dst: AtomicU64::new
      Src: /src/zip/src/read.rs:1086,1
    - Dst: parse_extra_field
      Src: /src/zip/src/read.rs:1096,1
    - Dst: Err
      Src: /src/zip/src/read.rs:1098,1
    - Dst: unsupported_zip_error
      Src: /src/zip/src/read.rs:1102,1
    - Dst: unsupported_zip_error
      Src: /src/zip/src/read.rs:1105,1
    - Dst: take
      Src: /src/zip/src/read.rs:1108,1
    - Dst: make_crypto_reader
      Src: /src/zip/src/read.rs:1112,1
    - Dst: unwrap
      Src: /src/zip/src/read.rs:1112,1
    - Dst: Ok
      Src: /src/zip/src/read.rs:1125,1
    - Dst: Some
      Src: /src/zip/src/read.rs:1125,1
    - Dst: Cow::Owned
      Src: /src/zip/src/read.rs:1126,1
    - Dst: make_reader
      Src: /src/zip/src/read.rs:1128,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 119
    argCount: 1
    argNames:
    - reader
    argTypes:
    - '&''a mut R'
    constantsTouched: []
    func_position:
      end: 1130
      start: 1032
    functionDepth: 5
    functionLinenumber: 1032
    functionLinenumberEnd: 1130
    functionName: read_zipfile_from_stream
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 1
    functionsReached:
    - clone
    - ZipResult::read_exact
    - String::from_utf8_lossy
    - make_reader
    - ZipError::InvalidArchive
    - take
    - Cow::Owned
    - read_u32::<LittleEndian>
    - unsupported_zip_error
    - make_crypto_reader
    - parse_extra_field
    - Err
    - read_u16::<LittleEndian>
    - AtomicU64::new
    - Some
    - Ok
    - CompressionMethod::from_u16
    - from_cp437
    - into_owned
    - unwrap
    - System::from_u8
    - DateTime::from_msdos
    - String::new
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn read_zipfile_from_stream<''a, R: io::Read>(reader: &''a mut
      R,) -> ZipResult<Option<ZipFile<''_>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipStreamReader::new
      Src: /src/zip/src/read/stream.rs:252,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/read/stream.rs:252,1
    - Dst: Self::visit
      Src: /src/zip/src/read/stream.rs:252,1
    - Dst: ZipResult::unwrap_err
      Src: /src/zip/src/read/stream.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 7
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: test::invalid_offset
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - Self::visit
    - io::Cursor::new
    - ZipResult::unwrap_err
    - ZipStreamReader::new
    linkageType: ''
    returnType: void
    signature: fn invalid_offset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipStreamReader::new
      Src: /src/zip/src/read/stream.rs:261,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/read/stream.rs:261,1
    - Dst: Self::visit
      Src: /src/zip/src/read/stream.rs:261,1
    - Dst: ZipResult::unwrap_err
      Src: /src/zip/src/read/stream.rs:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 7
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: test::invalid_offset2
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - Self::visit
    - io::Cursor::new
    - ZipResult::unwrap_err
    - ZipStreamReader::new
    linkageType: ''
    returnType: void
    signature: fn invalid_offset2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/zip/src/read.rs:1161,1
    - Dst: Self::extend_from_slice
      Src: /src/zip/src/read.rs:1162,1
    - Dst: ZipArchive::new
      Src: /src/zip/src/read.rs:1163,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/read.rs:1163,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/read.rs:1163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1157
    functionDepth: 6
    functionLinenumber: 1157
    functionLinenumberEnd: 1165
    functionName: test::zip64_with_leading_junk
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - ZipArchive::new
    - Self::extend_from_slice
    - Vec::new
    - io::Cursor::new
    linkageType: ''
    returnType: void
    signature: fn zip64_with_leading_junk()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/zip/src/read.rs:1172,1
    - Dst: Self::extend_from_slice
      Src: /src/zip/src/read.rs:1173,1
    - Dst: ZipArchive::new
      Src: /src/zip/src/read.rs:1174,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/read.rs:1174,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/read.rs:1174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1168
    functionDepth: 6
    functionLinenumber: 1168
    functionLinenumberEnd: 1177
    functionName: test::zip_contents
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - ZipArchive::new
    - Self::extend_from_slice
    - Vec::new
    - io::Cursor::new
    linkageType: ''
    returnType: void
    signature: fn zip_contents()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipStreamReader::new
      Src: /src/zip/src/read/stream.rs:270,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/read/stream.rs:270,1
    - Dst: ZipResult::visit
      Src: /src/zip/src/read/stream.rs:302,1
    - Dst: V::default
      Src: /src/zip/src/read/stream.rs:302,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/read/stream.rs:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 269
    functionDepth: 7
    functionLinenumber: 269
    functionLinenumberEnd: 303
    functionName: test::zip_read_streaming
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - V::default
    - ZipResult::visit
    - io::Cursor::new
    - ZipStreamReader::new
    linkageType: ''
    returnType: void
    signature: fn zip_read_streaming()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/zip/src/read.rs:1199,1
    - Dst: Self::extend_from_slice
      Src: /src/zip/src/read.rs:1200,1
    - Dst: ZipArchive::new
      Src: /src/zip/src/read.rs:1201,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/read.rs:1201,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/read.rs:1201,1
    - Dst: W::clone
      Src: /src/zip/src/read.rs:1202,1
    - Dst: W::by_index
      Src: /src/zip/src/read.rs:1204,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/read.rs:1204,1
    - Dst: Self::by_index
      Src: /src/zip/src/read.rs:1205,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/read.rs:1205,1
    - Dst: W::last_modified
      Src: /src/zip/src/read.rs:1207,1
    - Dst: W::read_exact
      Src: /src/zip/src/read.rs:1225,1
    - Dst: unwrap
      Src: /src/zip/src/read.rs:1225,1
    - Dst: W::read_exact
      Src: /src/zip/src/read.rs:1226,1
    - Dst: unwrap
      Src: /src/zip/src/read.rs:1226,1
    - Dst: W::read_exact
      Src: /src/zip/src/read.rs:1227,1
    - Dst: unwrap
      Src: /src/zip/src/read.rs:1227,1
    - Dst: W::read_exact
      Src: /src/zip/src/read.rs:1228,1
    - Dst: unwrap
      Src: /src/zip/src/read.rs:1228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1195
    functionDepth: 7
    functionLinenumber: 1195
    functionLinenumberEnd: 1233
    functionName: test::zip_clone
    functionSourceFile: /src/zip/src/read.rs
    functionUses: 0
    functionsReached:
    - W::by_index
    - ZipResult::unwrap
    - W::clone
    - ZipArchive::new
    - W::read_exact
    - Self::extend_from_slice
    - Vec::new
    - W::last_modified
    - unwrap
    - Self::by_index
    - io::Cursor::new
    linkageType: ''
    returnType: void
    signature: fn zip_clone()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipStreamReader::new
      Src: /src/zip/src/read/stream.rs:307,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/read/stream.rs:307,1
    - Dst: ZipResult::visit
      Src: /src/zip/src/read/stream.rs:346,1
    - Dst: V::default
      Src: /src/zip/src/read/stream.rs:346,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/read/stream.rs:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 306
    functionDepth: 7
    functionLinenumber: 306
    functionLinenumberEnd: 347
    functionName: test::file_and_dir_predicates
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - V::default
    - ZipResult::visit
    - io::Cursor::new
    - ZipStreamReader::new
    linkageType: ''
    returnType: void
    signature: fn file_and_dir_predicates()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipStreamReader::new
      Src: /src/zip/src/read/stream.rs:354,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/read/stream.rs:354,1
    - Dst: Self::visit
      Src: /src/zip/src/read/stream.rs:354,1
    - Dst: ZipResult::unwrap_err
      Src: /src/zip/src/read/stream.rs:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 7
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: test::invalid_cde_number_of_files_allocation_smaller_offset
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - Self::visit
    - io::Cursor::new
    - ZipResult::unwrap_err
    - ZipStreamReader::new
    linkageType: ''
    returnType: void
    signature: fn invalid_cde_number_of_files_allocation_smaller_offset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipStreamReader::new
      Src: /src/zip/src/read/stream.rs:366,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/read/stream.rs:366,1
    - Dst: Self::visit
      Src: /src/zip/src/read/stream.rs:366,1
    - Dst: ZipResult::unwrap_err
      Src: /src/zip/src/read/stream.rs:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 7
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: test::invalid_cde_number_of_files_allocation_greater_offset
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - Self::visit
    - io::Cursor::new
    - ZipResult::unwrap_err
    - ZipStreamReader::new
    linkageType: ''
    returnType: void
    signature: fn invalid_cde_number_of_files_allocation_greater_offset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:19,1
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:20,1
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: ZipCryptoKeys::new
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 1
    functionsReached:
    - std::num::Wrapping
    linkageType: ''
    returnType: ZipCryptoKeys
    signature: fn new() -> ZipCryptoKeys
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipCryptoKeys::crc32
      Src: /src/zip/src/zipcrypto.rs:26,1
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:28,1
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:28,1
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:28,1
    - Dst: ZipCryptoKeys::crc32
      Src: /src/zip/src/zipcrypto.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 1
    argNames:
    - input
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: ZipCryptoKeys::update
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 3
    functionsReached:
    - ZipCryptoKeys::crc32
    - std::num::Wrapping
    linkageType: ''
    returnType: void
    signature: 'fn update(&mut self, input: u8)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:33,1
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:33,1
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: ZipCryptoKeys::stream_byte
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 2
    functionsReached:
    - std::num::Wrapping
    linkageType: ''
    returnType: u8
    signature: fn stream_byte(&mut self) -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipCryptoKeys::stream_byte
      Src: /src/zip/src/zipcrypto.rs:38,1
    - Dst: ZipCryptoKeys::update
      Src: /src/zip/src/zipcrypto.rs:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cipher_byte
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: ZipCryptoKeys::decrypt_byte
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 0
    functionsReached:
    - ZipCryptoKeys::stream_byte
    - ZipCryptoKeys::update
    linkageType: ''
    returnType: u8
    signature: 'fn decrypt_byte(&mut self, cipher_byte: u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipCryptoKeys::stream_byte
      Src: /src/zip/src/zipcrypto.rs:45,1
    - Dst: ZipCryptoKeys::update
      Src: /src/zip/src/zipcrypto.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - plain_byte
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: ZipCryptoKeys::encrypt_byte
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 0
    functionsReached:
    - ZipCryptoKeys::stream_byte
    - ZipCryptoKeys::update
    linkageType: ''
    returnType: u8
    signature: 'fn encrypt_byte(&mut self, plain_byte: u8) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:51,1
    - Dst: std::num::Wrapping
      Src: /src/zip/src/zipcrypto.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 2
    argNames:
    - crc
    - input
    argTypes:
    - Wrapping<u32>
    - u8
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: ZipCryptoKeys::crc32
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 1
    functionsReached:
    - std::num::Wrapping
    linkageType: ''
    returnType: Wrapping
    signature: 'fn crc32(crc: Wrapping<u32>, input: u8) -> Wrapping<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipCryptoKeys::new
      Src: /src/zip/src/zipcrypto.rs:54,1
    - Dst: ZipResult::iter
      Src: /src/zip/src/zipcrypto.rs:55,1
    - Dst: ZipCryptoKeys::update
      Src: /src/zip/src/zipcrypto.rs:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: ZipCryptoKeys::derive
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 2
    functionsReached:
    - ZipCryptoKeys::new
    - ZipResult::iter
    - ZipCryptoKeys::update
    linkageType: ''
    returnType: ZipCryptoKeys
    signature: 'pub(crate) fn derive(password: &[u8]) -> ZipCryptoKeys'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipCryptoKeys::derive
      Src: /src/zip/src/zipcrypto.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - file
    - password
    argTypes:
    - R
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: ZipCryptoReader::new
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 1
    functionsReached:
    - ZipCryptoKeys::derive
    linkageType: ''
    returnType: ZipCryptoReader
    signature: 'pub fn new(file: R, password: &[u8]) -> ZipCryptoReader<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read_exact
      Src: /src/zip/src/zipcrypto.rs:94,1
    - Dst: iter_mut
      Src: /src/zip/src/zipcrypto.rs:95,1
    - Dst: decrypt_byte
      Src: /src/zip/src/zipcrypto.rs:96,1
    - Dst: Ok
      Src: /src/zip/src/zipcrypto.rs:106,1
    - Dst: Ok
      Src: /src/zip/src/zipcrypto.rs:118,1
    - Dst: Ok
      Src: /src/zip/src/zipcrypto.rs:123,1
    - Dst: Some
      Src: /src/zip/src/zipcrypto.rs:123,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 1
    argNames:
    - validator
    argTypes:
    - ZipCryptoValidator
    constantsTouched: []
    func_position:
      end: 124
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 124
    functionName: ZipCryptoReader::validate
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 1
    functionsReached:
    - decrypt_byte
    - iter_mut
    - Some
    - Ok
    - read_exact
    linkageType: ''
    returnType: Result
    signature: 'pub fn validate(mut self,validator: ZipCryptoValidator,) -> Result<Option<ZipCryptoReaderValid<R>>,
      std::io::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter_mut
      Src: /src/zip/src/zipcrypto.rs:134,1
    - Dst: encrypt_byte
      Src: /src/zip/src/zipcrypto.rs:135,1
    - Dst: write_all
      Src: /src/zip/src/zipcrypto.rs:137,1
    - Dst: flush
      Src: /src/zip/src/zipcrypto.rs:138,1
    - Dst: Ok
      Src: /src/zip/src/zipcrypto.rs:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - crc32
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: ZipCryptoWriter::finish
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 0
    functionsReached:
    - iter_mut
    - write_all
    - Ok
    - flush
    - encrypt_byte
    linkageType: ''
    returnType: std::io::Result
    signature: 'pub(crate) fn finish(mut self, crc32: u32) -> std::io::Result<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extend_from_slice
      Src: /src/zip/src/zipcrypto.rs:144,1
    - Dst: Ok
      Src: /src/zip/src/zipcrypto.rs:145,1
    - Dst: '&[u8]::len'
      Src: /src/zip/src/zipcrypto.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: ZipCryptoWriter::write
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::len'
    - Ok
    - extend_from_slice
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn write(&mut self, buf: &[u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/zip/src/zipcrypto.rs:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: ZipCryptoWriter::flush
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: std::io::Result
    signature: fn flush(&mut self) -> std::io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/zip/src/zipcrypto.rs:162,1
    - Dst: '&mut [u8]::iter_mut'
      Src: /src/zip/src/zipcrypto.rs:163,1
    - Dst: decrypt_byte
      Src: /src/zip/src/zipcrypto.rs:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 167
      start: 158
    functionDepth: 3
    functionLinenumber: 158
    functionLinenumberEnd: 167
    functionName: ZipCryptoReaderValid::read
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 0
    functionsReached:
    - read
    - decrypt_byte
    - '&mut [u8]::iter_mut'
    linkageType: ''
    returnType: std::io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: ZipCryptoReaderValid::into_inner
    functionSourceFile: /src/zip/src/zipcrypto.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R
    signature: pub fn into_inner(self) -> R
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''a [u8]::iter'
      Src: /src/zip/src/cp437.rs:18,1
    - Dst: all
      Src: /src/zip/src/cp437.rs:18,1
    - Dst: ::std::str::from_utf8
      Src: /src/zip/src/cp437.rs:19,1
    - Dst: unwrap
      Src: /src/zip/src/cp437.rs:19,1
    - Dst: into
      Src: /src/zip/src/cp437.rs:19,1
    - Dst: '&''a [u8]::iter'
      Src: /src/zip/src/cp437.rs:21,1
    - Dst: map
      Src: /src/zip/src/cp437.rs:21,1
    - Dst: to_char
      Src: /src/zip/src/cp437.rs:21,1
    - Dst: iter().map(|c| to_char(*c)).collect::<String>
      Src: /src/zip/src/cp437.rs:21,1
    - Dst: into
      Src: /src/zip/src/cp437.rs:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: '&''a [u8]::from_cp437'
    functionSourceFile: /src/zip/src/cp437.rs
    functionUses: 0
    functionsReached:
    - ::std::str::from_utf8
    - '&''a [u8]::iter'
    - iter().map(|c| to_char(*c)).collect::<String>
    - unwrap
    - map
    - into
    - to_char
    - all
    linkageType: ''
    returnType: Self::Target
    signature: fn from_cp437(self) -> Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::iter
      Src: /src/zip/src/cp437.rs:30,1
    - Dst: all
      Src: /src/zip/src/cp437.rs:30,1
    - Dst: String::from_utf8
      Src: /src/zip/src/cp437.rs:31,1
    - Dst: unwrap
      Src: /src/zip/src/cp437.rs:31,1
    - Dst: Vec::into_iter
      Src: /src/zip/src/cp437.rs:33,1
    - Dst: map
      Src: /src/zip/src/cp437.rs:33,1
    - Dst: collect
      Src: /src/zip/src/cp437.rs:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 35
    functionName: Vec::from_cp437
    functionSourceFile: /src/zip/src/cp437.rs
    functionUses: 0
    functionsReached:
    - Vec::into_iter
    - collect
    - unwrap
    - String::from_utf8
    - map
    - Vec::iter
    - all
    linkageType: ''
    returnType: Self::Target
    signature: fn from_cp437(self) -> Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::std::char::from_u32
      Src: /src/zip/src/cp437.rs:170,1
    - Dst: unwrap
      Src: /src/zip/src/cp437.rs:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 171
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 171
    functionName: to_char
    functionSourceFile: /src/zip/src/cp437.rs
    functionUses: 2
    functionsReached:
    - unwrap
    - ::std::char::from_u32
    linkageType: ''
    returnType: char
    signature: 'fn to_char(input: u8) -> char'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::to_char
      Src: /src/zip/src/cp437.rs:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: test::to_char_valid
    functionSourceFile: /src/zip/src/cp437.rs
    functionUses: 0
    functionsReached:
    - super::to_char
    linkageType: ''
    returnType: void
    signature: fn to_char_valid()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: test::ascii
    functionSourceFile: /src/zip/src/cp437.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn ascii()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: test::example_slice
    functionSourceFile: /src/zip/src/cp437.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn example_slice()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: test::example_vec
    functionSourceFile: /src/zip/src/cp437.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn example_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    functionName: InvalidPassword::fmt
    functionSourceFile: /src/zip/src/result.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipError::Io
      Src: /src/zip/src/result.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - err
    argTypes:
    - io::Error
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: ZipError::from
    functionSourceFile: /src/zip/src/result.rs
    functionUses: 0
    functionsReached:
    - ZipError::Io
    linkageType: ''
    returnType: ZipError
    signature: 'fn from(err: io::Error) -> ZipError'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: ZipError::fmt
    functionSourceFile: /src/zip/src/result.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/zip/src/result.rs:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    functionName: ZipError::source
    functionSourceFile: /src/zip/src/result.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn source(&self) -> Option<&(dyn Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Error::new
      Src: /src/zip/src/result.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - err
    argTypes:
    - ZipError
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: io::Error::from
    functionSourceFile: /src/zip/src/result.rs
    functionUses: 0
    functionsReached:
    - io::Error::new
    linkageType: ''
    returnType: io::Error
    signature: 'fn from(err: ZipError) -> io::Error'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 95
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 95
    functionName: DateTimeRangeError::fmt
    functionSourceFile: /src/zip/src/result.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompressionMethod::Unsupported
      Src: /src/zip/src/compression.rs:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: CompressionMethod::from_u16
    functionSourceFile: /src/zip/src/compression.rs
    functionUses: 5
    functionsReached:
    - CompressionMethod::Unsupported
    linkageType: ''
    returnType: CompressionMethod
    signature: 'pub fn from_u16(val: u16) -> CompressionMethod'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: CompressionMethod::to_u16
    functionSourceFile: /src/zip/src/compression.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn to_u16(self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 145
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 145
    functionName: CompressionMethod::fmt
    functionSourceFile: /src/zip/src/compression.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CompressionMethod::from_u16
      Src: /src/zip/src/compression.rs:171,1
    - Dst: Result::to_u16
      Src: /src/zip/src/compression.rs:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: test::from_eq_to
    functionSourceFile: /src/zip/src/compression.rs
    functionUses: 0
    functionsReached:
    - Result::to_u16
    - CompressionMethod::from_u16
    linkageType: ''
    returnType: void
    signature: fn from_eq_to()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileOptions::to_u16
      Src: /src/zip/src/compression.rs:182,1
    - Dst: CompressionMethod::from_u16
      Src: /src/zip/src/compression.rs:184,1
    - Dst: Result::to_u16
      Src: /src/zip/src/compression.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - method
    argTypes:
    - CompressionMethod
    constantsTouched: []
    func_position:
      end: 188
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 188
    functionName: t::e::s::t::::::::t::o::_::e::q::_::f::r::o::m::check_match
    functionSourceFile: /src/zip/src/compression.rs
    functionUses: 0
    functionsReached:
    - Result::to_u16
    - CompressionMethod::from_u16
    - FileOptions::to_u16
    linkageType: ''
    returnType: void
    signature: 'fn check_match(method: CompressionMethod)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_match
      Src: /src/zip/src/compression.rs:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 193
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 193
    functionName: test::to_eq_from
    functionSourceFile: /src/zip/src/compression.rs
    functionUses: 0
    functionsReached:
    - check_match
    linkageType: ''
    returnType: void
    signature: fn to_eq_from()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - method
    argTypes:
    - CompressionMethod
    constantsTouched: []
    func_position:
      end: 201
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 201
    functionName: t::e::s::t::::::::t::o::_::d::i::s::p::l::a::y::_::f::m::t::check_match
    functionSourceFile: /src/zip/src/compression.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn check_match(method: CompressionMethod)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_match
      Src: /src/zip/src/compression.rs:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 206
    functionName: test::to_display_fmt
    functionSourceFile: /src/zip/src/compression.rs
    functionUses: 0
    functionsReached:
    - check_match
    linkageType: ''
    returnType: void
    signature: fn to_display_fmt()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 80
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 80
    functionName: AesCtrZipKeyStream::fmt
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: C::Cipher::new
      Src: /src/zip/src/aes_ctr.rs:96,1
    - Dst: GenericArray::from_slice
      Src: /src/zip/src/aes_ctr.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: AesCtrZipKeyStream::new
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - C::Cipher::new
    - GenericArray::from_slice
    linkageType: ''
    returnType: AesCtrZipKeyStream
    signature: 'pub fn new(key: &[u8]) -> AesCtrZipKeyStream<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/zip/src/aes_ctr.rs:111,1
    - Dst: as_mut
      Src: /src/zip/src/aes_ctr.rs:114,1
    - Dst: "buffer\n                    .as_mut()\n                    .write_u128::<byteorder::LittleEndian>"
      Src: /src/zip/src/aes_ctr.rs:114,1
    - Dst: expect
      Src: /src/zip/src/aes_ctr.rs:114,1
    - Dst: encrypt_block
      Src: /src/zip/src/aes_ctr.rs:118,1
    - Dst: GenericArray::from_mut_slice
      Src: /src/zip/src/aes_ctr.rs:119,1
    - Dst: len
      Src: /src/zip/src/aes_ctr.rs:124,1
    - Dst: min
      Src: /src/zip/src/aes_ctr.rs:124,1
    - Dst: xor
      Src: /src/zip/src/aes_ctr.rs:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 56
    argCount: 1
    argNames:
    - target
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 133
      start: 110
    functionDepth: 11
    functionLinenumber: 110
    functionLinenumberEnd: 133
    functionName: AesCtrZipKeyStream::crypt_in_place
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - as_mut
    - "buffer\n                    .as_mut()\n                    .write_u128::<byteorder::LittleEndian>"
    - GenericArray::from_mut_slice
    - is_empty
    - xor
    - encrypt_block
    - min
    - expect
    - len
    linkageType: ''
    returnType: void
    signature: 'fn crypt_in_place(&mut self, mut target: &mut [u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::iter_mut'
      Src: /src/zip/src/aes_ctr.rs:146,1
    - Dst: zip
      Src: /src/zip/src/aes_ctr.rs:146,1
    - Dst: '&[u8]::iter'
      Src: /src/zip/src/aes_ctr.rs:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - dest
    - src
    argTypes:
    - '&mut [u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 149
      start: 143
    functionDepth: 10
    functionLinenumber: 143
    functionLinenumberEnd: 149
    functionName: xor
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 1
    functionsReached:
    - '&mut [u8]::iter_mut'
    - zip
    - '&[u8]::iter'
    linkageType: ''
    returnType: void
    signature: 'fn xor(dest: &mut [u8], src: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AesCtrZipKeyStream::<Aes>::new
      Src: /src/zip/src/aes_ctr.rs:163,1
    - Dst: '&mut [u8]::to_vec'
      Src: /src/zip/src/aes_ctr.rs:165,1
    - Dst: Self::crypt_in_place
      Src: /src/zip/src/aes_ctr.rs:166,1
    - Dst: as_mut_slice
      Src: /src/zip/src/aes_ctr.rs:166,1
    - Dst: AesCtrZipKeyStream::<Aes>::new
      Src: /src/zip/src/aes_ctr.rs:170,1
    - Dst: Self::crypt_in_place
      Src: /src/zip/src/aes_ctr.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 3
    argNames:
    - key
    - ciphertext
    - expected_plaintext
    argTypes:
    - '&[u8]'
    - '&mut [u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 12
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: tests::roundtrip
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - '&mut [u8]::to_vec'
    - Self::crypt_in_place
    - AesCtrZipKeyStream::<Aes>::new
    - as_mut_slice
    linkageType: ''
    returnType: void
    signature: 'fn roundtrip<Aes>(key: &[u8], ciphertext: &mut [u8], expected_plaintext:
      &[u8])whereAes: AesKind,Aes::Cipher: KeyInit + BlockEncrypt,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AesCtrZipKeyStream::<Aes128>::new
      Src: /src/zip/src/aes_ctr.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 179
    functionName: tests::new_with_wrong_key_size
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - AesCtrZipKeyStream::<Aes128>::new
    linkageType: ''
    returnType: void
    signature: fn new_with_wrong_key_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip::<Aes256>
      Src: /src/zip/src/aes_ctr.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: tests::crypt_aes_256_0_byte
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - roundtrip::<Aes256>
    linkageType: ''
    returnType: void
    signature: fn crypt_aes_256_0_byte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip::<Aes128>
      Src: /src/zip/src/aes_ctr.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: tests::crypt_aes_128_5_byte
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - roundtrip::<Aes128>
    linkageType: ''
    returnType: void
    signature: fn crypt_aes_128_5_byte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip::<Aes192>
      Src: /src/zip/src/aes_ctr.rs:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 219
    functionName: tests::crypt_aes_192_5_byte
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - roundtrip::<Aes192>
    linkageType: ''
    returnType: void
    signature: fn crypt_aes_192_5_byte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip::<Aes256>
      Src: /src/zip/src/aes_ctr.rs:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 232
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 232
    functionName: tests::crypt_aes_256_5_byte
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - roundtrip::<Aes256>
    linkageType: ''
    returnType: void
    signature: fn crypt_aes_256_5_byte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip::<Aes128>
      Src: /src/zip/src/aes_ctr.rs:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 248
    functionName: tests::crypt_aes_128_40_byte
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - roundtrip::<Aes128>
    linkageType: ''
    returnType: void
    signature: fn crypt_aes_128_40_byte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip::<Aes192>
      Src: /src/zip/src/aes_ctr.rs:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: tests::crypt_aes_192_40_byte
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - roundtrip::<Aes192>
    linkageType: ''
    returnType: void
    signature: fn crypt_aes_192_40_byte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: roundtrip::<Aes256>
      Src: /src/zip/src/aes_ctr.rs:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: tests::crypt_aes_256_40_byte
    functionSourceFile: /src/zip/src/aes_ctr.rs
    functionUses: 0
    functionsReached:
    - roundtrip::<Aes256>
    linkageType: ''
    returnType: void
    signature: fn crypt_aes_256_40_byte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Hasher::new
      Src: /src/zip/src/crc32.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inner
    - checksum
    - ae2_encrypted
    argTypes:
    - R
    - u32
    - bool
    constantsTouched: []
    func_position:
      end: 28
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 28
    functionName: Crc32Reader::new
    functionSourceFile: /src/zip/src/crc32.rs
    functionUses: 4
    functionsReached:
    - Hasher::new
    linkageType: ''
    returnType: Crc32Reader
    signature: 'pub(crate) fn new(inner: R, checksum: u32, ae2_encrypted: bool) ->
      Crc32Reader<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/zip/src/crc32.rs:31,1
    - Dst: finalize
      Src: /src/zip/src/crc32.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 8
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: Crc32Reader::check_matches
    functionSourceFile: /src/zip/src/crc32.rs
    functionUses: 1
    functionsReached:
    - finalize
    - clone
    linkageType: ''
    returnType: bool
    signature: fn check_matches(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Crc32Reader::into_inner
    functionSourceFile: /src/zip/src/crc32.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R
    signature: pub fn into_inner(self) -> R
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut [u8]::is_empty'
      Src: /src/zip/src/crc32.rs:41,1
    - Dst: Crc32Reader::check_matches
      Src: /src/zip/src/crc32.rs:41,1
    - Dst: read
      Src: /src/zip/src/crc32.rs:43,1
    - Dst: Err
      Src: /src/zip/src/crc32.rs:45,1
    - Dst: io::Error::new
      Src: /src/zip/src/crc32.rs:45,1
    - Dst: Err
      Src: /src/zip/src/crc32.rs:48,1
    - Dst: update
      Src: /src/zip/src/crc32.rs:50,1
    - Dst: Ok
      Src: /src/zip/src/crc32.rs:51,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 9
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: Crc32Reader::read
    functionSourceFile: /src/zip/src/crc32.rs
    functionUses: 0
    functionsReached:
    - Crc32Reader::check_matches
    - Err
    - read
    - io::Error::new
    - '&mut [u8]::is_empty'
    - update
    - Ok
    linkageType: ''
    returnType: io::Result
    signature: 'fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crc32Reader::new
      Src: /src/zip/src/crc32.rs:65,1
    - Dst: Crc32Reader::new
      Src: /src/zip/src/crc32.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: test::test_empty_reader
    functionSourceFile: /src/zip/src/crc32.rs
    functionUses: 0
    functionsReached:
    - Crc32Reader::new
    linkageType: ''
    returnType: void
    signature: fn test_empty_reader()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crc32Reader::new
      Src: /src/zip/src/crc32.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 89
    functionName: test::test_byte_by_byte
    functionSourceFile: /src/zip/src/crc32.rs
    functionUses: 0
    functionsReached:
    - Crc32Reader::new
    linkageType: ''
    returnType: void
    signature: fn test_byte_by_byte()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Crc32Reader::new
      Src: /src/zip/src/crc32.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: test::test_zero_read
    functionSourceFile: /src/zip/src/crc32.rs
    functionUses: 0
    functionsReached:
    - Crc32Reader::new
    linkageType: ''
    returnType: void
    signature: fn test_zero_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/zip/src/aes.rs:28,1
    - Dst: aes_ctr::AesCtrZipKeyStream::<aes_ctr::Aes128>::new
      Src: /src/zip/src/aes.rs:28,1
    - Dst: Box::new
      Src: /src/zip/src/aes.rs:30,1
    - Dst: aes_ctr::AesCtrZipKeyStream::<aes_ctr::Aes192>::new
      Src: /src/zip/src/aes.rs:30,1
    - Dst: Box::new
      Src: /src/zip/src/aes.rs:32,1
    - Dst: aes_ctr::AesCtrZipKeyStream::<aes_ctr::Aes256>::new
      Src: /src/zip/src/aes.rs:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - aes_mode
    - key
    argTypes:
    - AesMode
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: cipher_from_mode
    functionSourceFile: /src/zip/src/aes.rs
    functionUses: 1
    functionsReached:
    - aes_ctr::AesCtrZipKeyStream::<aes_ctr::Aes256>::new
    - aes_ctr::AesCtrZipKeyStream::<aes_ctr::Aes192>::new
    - aes_ctr::AesCtrZipKeyStream::<aes_ctr::Aes128>::new
    - Box::new
    linkageType: ''
    returnType: Box
    signature: 'fn cipher_from_mode(aes_mode: AesMode, key: &[u8]) -> Box<dyn aes_ctr::AesCipher>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AesMode::salt_length
      Src: /src/zip/src/aes.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - reader
    - aes_mode
    - compressed_size
    argTypes:
    - R
    - AesMode
    - u64
    constantsTouched: []
    func_position:
      end: 57
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 57
    functionName: AesReader::new
    functionSourceFile: /src/zip/src/aes.rs
    functionUses: 1
    functionsReached:
    - AesMode::salt_length
    linkageType: ''
    returnType: AesReader
    signature: 'pub fn new(reader: R, aes_mode: AesMode, compressed_size: u64) ->
      AesReader<R>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: salt_length
      Src: /src/zip/src/aes.rs:71,1
    - Dst: key_length
      Src: /src/zip/src/aes.rs:72,1
    - Dst: read_exact
      Src: /src/zip/src/aes.rs:75,1
    - Dst: read_exact
      Src: /src/zip/src/aes.rs:79,1
    - Dst: pbkdf2::pbkdf2::<Hmac<Sha1>>
      Src: /src/zip/src/aes.rs:87,1
    - Dst: Ok
      Src: /src/zip/src/aes.rs:95,1
    - Dst: cipher_from_mode
      Src: /src/zip/src/aes.rs:98,1
    - Dst: Hmac::<Sha1>::new_from_slice
      Src: /src/zip/src/aes.rs:99,1
    - Dst: unwrap
      Src: /src/zip/src/aes.rs:99,1
    - Dst: Ok
      Src: /src/zip/src/aes.rs:101,1
    - Dst: Some
      Src: /src/zip/src/aes.rs:101,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 1
    argNames:
    - password
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 108
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 108
    functionName: AesReader::validate
    functionSourceFile: /src/zip/src/aes.rs
    functionUses: 1
    functionsReached:
    - pbkdf2::pbkdf2::<Hmac<Sha1>>
    - cipher_from_mode
    - Hmac::<Sha1>::new_from_slice
    - key_length
    - unwrap
    - Some
    - Ok
    - salt_length
    - read_exact
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn validate(mut self, password: &[u8]) -> io::Result<Option<AesReaderValid<R>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/zip/src/aes.rs:136,1
    - Dst: min
      Src: /src/zip/src/aes.rs:141,1
    - Dst: '&mut [u8]::len'
      Src: /src/zip/src/aes.rs:141,1
    - Dst: read
      Src: /src/zip/src/aes.rs:142,1
    - Dst: update
      Src: /src/zip/src/aes.rs:146,1
    - Dst: crypt_in_place
      Src: /src/zip/src/aes.rs:149,1
    - Dst: read_exact
      Src: /src/zip/src/aes.rs:162,1
    - Dst: finalize_reset
      Src: /src/zip/src/aes.rs:163,1
    - Dst: into_bytes
      Src: /src/zip/src/aes.rs:163,1
    - Dst: constant_time_eq::constant_time_eq
      Src: /src/zip/src/aes.rs:166,1
    - Dst: Err
      Src: /src/zip/src/aes.rs:167,1
    - Dst: io::Error::new
      Src: /src/zip/src/aes.rs:168,1
    - Dst: Ok
      Src: /src/zip/src/aes.rs:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 71
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&mut [u8]'
    constantsTouched: []
    func_position:
      end: 177
      start: 134
    functionDepth: 11
    functionLinenumber: 134
    functionLinenumberEnd: 177
    functionName: AesReaderValid::read
    functionSourceFile: /src/zip/src/aes.rs
    functionUses: 0
    functionsReached:
    - Err
    - read
    - constant_time_eq::constant_time_eq
    - io::Error::new
    - finalize_reset
    - update
    - Ok
    - into_bytes
    - '&mut [u8]::len'
    - min
    - read_exact
    - crypt_in_place
    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: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: AesReaderValid::into_inner
    functionSourceFile: /src/zip/src/aes.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: R
    signature: pub fn into_inner(self) -> R
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write
      Src: /src/zip/src/write.rs:39,1
    - Dst: Self::write
      Src: /src/zip/src/write.rs:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 3
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: MaybeEncrypted::write
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - Self::write
    linkageType: ''
    returnType: io::Result
    signature: 'fn write(&mut self, buf: &[u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::flush
      Src: /src/zip/src/write.rs:45,1
    - Dst: Self::flush
      Src: /src/zip/src/write.rs:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: MaybeEncrypted::flush
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - Self::flush
    linkageType: ''
    returnType: io::Result
    signature: fn flush(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - method
    argTypes:
    - CompressionMethod
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: FileOptions::compression_method
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FileOptions
    signature: 'pub fn compression_method(mut self, method: CompressionMethod) ->
      FileOptions'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - Option<i32>
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: FileOptions::compression_level
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FileOptions
    signature: 'pub fn compression_level(mut self, level: Option<i32>) -> FileOptions'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mod_time
    argTypes:
    - DateTime
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: FileOptions::last_modified_time
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FileOptions
    signature: 'pub fn last_modified_time(mut self, mod_time: DateTime) -> FileOptions'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/zip/src/write.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mode
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 181
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 181
    functionName: FileOptions::unix_permissions
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 4
    functionsReached:
    - Some
    linkageType: ''
    returnType: FileOptions
    signature: 'pub fn unix_permissions(mut self, mode: u32) -> FileOptions'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - large
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: FileOptions::large_file
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: FileOptions
    signature: 'pub fn large_file(mut self, large: bool) -> FileOptions'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/zip/src/write.rs:194,1
    - Dst: crate::zipcrypto::ZipCryptoKeys::derive
      Src: /src/zip/src/write.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - password
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: FileOptions::with_deprecated_encryption
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - crate::zipcrypto::ZipCryptoKeys::derive
    - Some
    linkageType: ''
    returnType: FileOptions
    signature: 'pub(crate) fn with_deprecated_encryption(mut self, password: &[u8])
      -> FileOptions'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OffsetDateTime::now_utc
      Src: /src/zip/src/write.rs:217,1
    - Dst: try_into
      Src: /src/zip/src/write.rs:217,1
    - Dst: unwrap_or_default
      Src: /src/zip/src/write.rs:217,1
    - Dst: DateTime::default
      Src: /src/zip/src/write.rs:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 224
    functionName: FileOptions::default
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 11
    functionsReached:
    - DateTime::default
    - unwrap_or_default
    - try_into
    - OffsetDateTime::now_utc
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/zip/src/write.rs:230,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:230,1
    - Dst: ref_mut
      Src: /src/zip/src/write.rs:235,1
    - Dst: last_mut
      Src: /src/zip/src/write.rs:238,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:238,1
    - Dst: write
      Src: /src/zip/src/write.rs:238,1
    - Dst: Self::write
      Src: /src/zip/src/write.rs:240,1
    - Dst: update
      Src: /src/zip/src/write.rs:242,1
    - Dst: last_mut
      Src: /src/zip/src/write.rs:244,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:244,1
    - Dst: mem::replace
      Src: /src/zip/src/write.rs:246,1
    - Dst: Err
      Src: /src/zip/src/write.rs:247,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:247,1
    - Dst: Err
      Src: /src/zip/src/write.rs:256,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 261
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 261
    functionName: ZipWriter::write
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - Err
    - io::Error::new
    - write
    - unwrap
    - update
    - last_mut
    - Self::write
    - mem::replace
    - ref_mut
    linkageType: ''
    returnType: io::Result
    signature: 'fn write(&mut self, buf: &[u8]) -> io::Result<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ref_mut
      Src: /src/zip/src/write.rs:264,1
    - Dst: Self::flush
      Src: /src/zip/src/write.rs:265,1
    - Dst: Err
      Src: /src/zip/src/write.rs:266,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 271
    functionName: ZipWriter::flush
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - Self::flush
    - io::Error::new
    - Err
    - ref_mut
    linkageType: ''
    returnType: io::Result
    signature: fn flush(&mut self) -> io::Result<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/zip/src/write.rs:276,1
    - Dst: '&[u8]::len'
      Src: /src/zip/src/write.rs:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: ZipWriterStats::update
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - update
    - '&[u8]::len'
    linkageType: ''
    returnType: void
    signature: 'fn update(&mut self, buf: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: spec::CentralDirectoryEnd::find_and_parse
      Src: /src/zip/src/write.rs:284,1
    - Dst: Err
      Src: /src/zip/src/write.rs:287,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/write.rs:287,1
    - Dst: ZipArchive::get_directory_counts
      Src: /src/zip/src/write.rs:293,1
    - Dst: A::seek
      Src: /src/zip/src/write.rs:295,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/write.rs:296,1
    - Dst: io::Result::is_err
      Src: /src/zip/src/write.rs:295,1
    - Dst: Err
      Src: /src/zip/src/write.rs:299,1
    - Dst: ZipError::InvalidArchive
      Src: /src/zip/src/write.rs:299,1
    - Dst: map
      Src: /src/zip/src/write.rs:304,1
    - Dst: read::central_header_to_zip_file
      Src: /src/zip/src/write.rs:305,1
    - Dst: ".number_of_files)\n            .map(|_| central_header_to_zip_file(&mut\
        \ readwriter, archive_offset))\n            .collect::<Result<Vec<_>, _>>"
      Src: /src/zip/src/write.rs:304,1
    - Dst: A::seek
      Src: /src/zip/src/write.rs:308,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/write.rs:308,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:310,1
    - Dst: GenericZipWriter::Storer
      Src: /src/zip/src/write.rs:311,1
    - Dst: MaybeEncrypted::Unencrypted
      Src: /src/zip/src/write.rs:311,1
    - Dst: Default::default
      Src: /src/zip/src/write.rs:313,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 1
    argNames:
    - readwriter
    argTypes:
    - A
    constantsTouched: []
    func_position:
      end: 320
      start: 283
    functionDepth: 5
    functionLinenumber: 283
    functionLinenumberEnd: 320
    functionName: ZipWriter::new_append
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - Default::default
    - GenericZipWriter::Storer
    - ZipArchive::get_directory_counts
    - Err
    - ZipError::InvalidArchive
    - read::central_header_to_zip_file
    - ".number_of_files)\n            .map(|_| central_header_to_zip_file(&mut readwriter,\
      \ archive_offset))\n            .collect::<Result<Vec<_>, _>>"
    - io::Result::is_err
    - io::SeekFrom::Start
    - map
    - Ok
    - ZipError::UnsupportedArchive
    - spec::CentralDirectoryEnd::find_and_parse
    - MaybeEncrypted::Unencrypted
    - A::seek
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn new_append(mut readwriter: A) -> ZipResult<ZipWriter<A>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericZipWriter::Storer
      Src: /src/zip/src/write.rs:329,1
    - Dst: MaybeEncrypted::Unencrypted
      Src: /src/zip/src/write.rs:329,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:330,1
    - Dst: Default::default
      Src: /src/zip/src/write.rs:331,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - inner
    argTypes:
    - W
    constantsTouched: []
    func_position:
      end: 338
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 338
    functionName: ZipWriter::new
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 11
    functionsReached:
    - Default::default
    - GenericZipWriter::Storer
    - Vec::new
    - MaybeEncrypted::Unencrypted
    linkageType: ''
    returnType: ZipWriter
    signature: 'pub fn new(inner: W) -> ZipWriter<W>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::set_raw_comment
      Src: /src/zip/src/write.rs:345,1
    - Dst: into
      Src: /src/zip/src/write.rs:345,1
    - Dst: into
      Src: /src/zip/src/write.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - comment
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 346
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 346
    functionName: ZipWriter::set_comment
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - ZipWriter::set_raw_comment
    - into
    linkageType: ''
    returnType: void
    signature: 'pub fn set_comment<S>(&mut self, comment: S)whereS: Into<String>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comment
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: ZipWriter::set_raw_comment
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_raw_comment(&mut self, comment: Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::finish_file
      Src: /src/zip/src/write.rs:366,1
    - Dst: Option<ZipRawValues>::unwrap_or
      Src: /src/zip/src/write.rs:368,1
    - Dst: get_plain
      Src: /src/zip/src/write.rs:375,1
    - Dst: stream_position
      Src: /src/zip/src/write.rs:376,1
    - Dst: unwrap_or
      Src: /src/zip/src/write.rs:378,1
    - Dst: is_some
      Src: /src/zip/src/write.rs:382,1
    - Dst: Option::into
      Src: /src/zip/src/write.rs:390,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:391,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:392,1
    - Dst: String::new
      Src: /src/zip/src/write.rs:393,1
    - Dst: AtomicU64::new
      Src: /src/zip/src/write.rs:395,1
    - Dst: write_local_file_header
      Src: /src/zip/src/write.rs:401,1
    - Dst: stream_position
      Src: /src/zip/src/write.rs:403,1
    - Dst: get_mut
      Src: /src/zip/src/write.rs:405,1
    - Dst: Hasher::new
      Src: /src/zip/src/write.rs:408,1
    - Dst: push
      Src: /src/zip/src/write.rs:410,1
    - Dst: core::mem::replace
      Src: /src/zip/src/write.rs:413,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:413,1
    - Dst: write_all
      Src: /src/zip/src/write.rs:416,1
    - Dst: GenericZipWriter::Storer
      Src: /src/zip/src/write.rs:417,1
    - Dst: MaybeEncrypted::Encrypted
      Src: /src/zip/src/write.rs:417,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:419,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 87
    argCount: 3
    argNames:
    - name
    - options
    - raw_values
    argTypes:
    - S
    - FileOptions
    - Option<ZipRawValues>
    constantsTouched: []
    func_position:
      end: 420
      start: 357
    functionDepth: 7
    functionLinenumber: 357
    functionLinenumberEnd: 420
    functionName: ZipWriter::start_entry
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 5
    functionsReached:
    - stream_position
    - unwrap_or
    - GenericZipWriter::Storer
    - get_plain
    - is_some
    - AtomicU64::new
    - Option<ZipRawValues>::unwrap_or
    - ZipWriter::finish_file
    - Option::into
    - write_local_file_header
    - core::mem::replace
    - Ok
    - Hasher::new
    - MaybeEncrypted::Encrypted
    - write_all
    - Vec::new
    - unwrap
    - get_mut
    - String::new
    - push
    linkageType: ''
    returnType: ZipResult
    signature: 'fn start_entry<S>(&mut self,name: S,options: FileOptions,raw_values:
      Option<ZipRawValues>,) -> ZipResult<()>whereS: Into<String>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::end_extra_data
      Src: /src/zip/src/write.rs:425,1
    - Dst: switch_to
      Src: /src/zip/src/write.rs:427,1
    - Dst: core::mem::replace
      Src: /src/zip/src/write.rs:428,1
    - Dst: clone
      Src: /src/zip/src/write.rs:430,1
    - Dst: finalize
      Src: /src/zip/src/write.rs:430,1
    - Dst: GenericZipWriter::Storer
      Src: /src/zip/src/write.rs:431,1
    - Dst: MaybeEncrypted::Unencrypted
      Src: /src/zip/src/write.rs:431,1
    - Dst: finish
      Src: /src/zip/src/write.rs:431,1
    - Dst: GenericZipWriter::Storer
      Src: /src/zip/src/write.rs:433,1
    - Dst: get_plain
      Src: /src/zip/src/write.rs:436,1
    - Dst: last_mut
      Src: /src/zip/src/write.rs:439,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:440,1
    - Dst: clone
      Src: /src/zip/src/write.rs:443,1
    - Dst: finalize
      Src: /src/zip/src/write.rs:443,1
    - Dst: stream_position
      Src: /src/zip/src/write.rs:446,1
    - Dst: update_local_file_header
      Src: /src/zip/src/write.rs:449,1
    - Dst: seek
      Src: /src/zip/src/write.rs:450,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/write.rs:450,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 422
    functionDepth: 6
    functionLinenumber: 422
    functionLinenumberEnd: 456
    functionName: ZipWriter::finish_file
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 2
    functionsReached:
    - finish
    - GenericZipWriter::Storer
    - stream_position
    - update_local_file_header
    - ZipWriter::end_extra_data
    - clone
    - switch_to
    - core::mem::replace
    - finalize
    - Ok
    - io::SeekFrom::Start
    - get_plain
    - seek
    - last_mut
    - MaybeEncrypted::Unencrypted
    linkageType: ''
    returnType: ZipResult
    signature: fn finish_file(&mut self) -> ZipResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/zip/src/write.rs:465,1
    - Dst: Some
      Src: /src/zip/src/write.rs:466,1
    - Dst: as_mut
      Src: /src/zip/src/write.rs:468,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:468,1
    - Dst: ZipWriter::start_entry
      Src: /src/zip/src/write.rs:469,1
    - Dst: switch_to
      Src: /src/zip/src/write.rs:470,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - name
    - options
    argTypes:
    - S
    - FileOptions
    constantsTouched: []
    func_position:
      end: 474
      start: 461
    functionDepth: 8
    functionLinenumber: 461
    functionLinenumberEnd: 474
    functionName: ZipWriter::start_file
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 3
    functionsReached:
    - as_mut
    - switch_to
    - Some
    - unwrap
    - Ok
    - is_none
    - ZipWriter::start_entry
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn start_file<S>(&mut self, name: S, mut options: FileOptions)
      -> ZipResult<()>whereS: Into<String>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::start_file
      Src: /src/zip/src/write.rs:489,1
    - Dst: path_to_string
      Src: /src/zip/src/write.rs:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - options
    argTypes:
    - '&std::path::Path'
    - FileOptions
    constantsTouched: []
    func_position:
      end: 490
      start: 484
    functionDepth: 9
    functionLinenumber: 484
    functionLinenumberEnd: 490
    functionName: ZipWriter::start_file_from_path
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - path_to_string
    - ZipWriter::start_file
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn start_file_from_path(&mut self,path: &std::path::Path,options:
      FileOptions,) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::start_file_with_extra_data
      Src: /src/zip/src/write.rs:506,1
    - Dst: ZipWriter::write_all
      Src: /src/zip/src/write.rs:511,1
    - Dst: map_err
      Src: /src/zip/src/write.rs:511,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:512,1
    - Dst: len
      Src: /src/zip/src/write.rs:512,1
    - Dst: map_err
      Src: /src/zip/src/write.rs:512,1
    - Dst: ZipWriter::write_all
      Src: /src/zip/src/write.rs:514,1
    - Dst: map_err
      Src: /src/zip/src/write.rs:514,1
    - Dst: ZipWriter::end_extra_data
      Src: /src/zip/src/write.rs:517,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:518,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 3
    argNames:
    - name
    - options
    - align
    argTypes:
    - S
    - FileOptions
    - u16
    constantsTouched: []
    func_position:
      end: 519
      start: 497
    functionDepth: 9
    functionLinenumber: 497
    functionLinenumberEnd: 519
    functionName: ZipWriter::start_file_aligned
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - map_err
    - ZipWriter::end_extra_data
    - ZipWriter::write_all
    - write_u16::<LittleEndian>
    - Ok
    - len
    - ZipWriter::start_file_with_extra_data
    linkageType: ''
    returnType: Result
    signature: 'pub fn start_file_aligned<S>(&mut self,name: S,options: FileOptions,align:
      u16,) -> Result<u64, ZipError>whereS: Into<String>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/zip/src/write.rs:592,1
    - Dst: Some
      Src: /src/zip/src/write.rs:593,1
    - Dst: as_mut
      Src: /src/zip/src/write.rs:595,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:595,1
    - Dst: ZipWriter::start_entry
      Src: /src/zip/src/write.rs:596,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:599,1
    - Dst: last
      Src: /src/zip/src/write.rs:599,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:599,1
    - Dst: load
      Src: /src/zip/src/write.rs:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - name
    - options
    argTypes:
    - S
    - FileOptions
    constantsTouched: []
    func_position:
      end: 600
      start: 584
    functionDepth: 8
    functionLinenumber: 584
    functionLinenumberEnd: 600
    functionName: ZipWriter::start_file_with_extra_data
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - as_mut
    - load
    - last
    - Some
    - unwrap
    - Ok
    - is_none
    - ZipWriter::start_entry
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn start_file_with_extra_data<S>(&mut self,name: S,mut options:
      FileOptions,) -> ZipResult<u64>whereS: Into<String>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::end_extra_data
      Src: /src/zip/src/write.rs:606,1
    - Dst: last_mut
      Src: /src/zip/src/write.rs:607,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:607,1
    - Dst: clear
      Src: /src/zip/src/write.rs:607,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 6
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: ZipWriter::end_local_start_central_extra_data
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - clear
    - ZipWriter::end_extra_data
    - unwrap
    - Ok
    - last_mut
    linkageType: ''
    returnType: ZipResult
    signature: pub fn end_local_start_central_extra_data(&mut self) -> ZipResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/zip/src/write.rs:619,1
    - Dst: ZipError::Io
      Src: /src/zip/src/write.rs:619,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:619,1
    - Dst: last_mut
      Src: /src/zip/src/write.rs:624,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:624,1
    - Dst: validate_extra_data
      Src: /src/zip/src/write.rs:626,1
    - Dst: get_mut
      Src: /src/zip/src/write.rs:628,1
    - Dst: get_plain
      Src: /src/zip/src/write.rs:631,1
    - Dst: write_all
      Src: /src/zip/src/write.rs:634,1
    - Dst: len
      Src: /src/zip/src/write.rs:637,1
    - Dst: len
      Src: /src/zip/src/write.rs:643,1
    - Dst: seek
      Src: /src/zip/src/write.rs:644,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/write.rs:644,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:645,1
    - Dst: seek
      Src: /src/zip/src/write.rs:646,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/write.rs:646,1
    - Dst: switch_to
      Src: /src/zip/src/write.rs:648,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:654,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 655
      start: 616
    functionDepth: 5
    functionLinenumber: 616
    functionLinenumberEnd: 655
    functionName: ZipWriter::end_extra_data
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 3
    functionsReached:
    - Err
    - write_all
    - validate_extra_data
    - io::Error::new
    - switch_to
    - ZipError::Io
    - unwrap
    - write_u16::<LittleEndian>
    - io::SeekFrom::Start
    - Ok
    - get_mut
    - get_plain
    - seek
    - last_mut
    - len
    linkageType: ''
    returnType: ZipResult
    signature: pub fn end_extra_data(&mut self) -> ZipResult<u64>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileOptions::default
      Src: /src/zip/src/write.rs:687,1
    - Dst: Self::large_file
      Src: /src/zip/src/write.rs:687,1
    - Dst: zip::result::ZipResult::compressed_size
      Src: /src/zip/src/write.rs:688,1
    - Dst: u64::max
      Src: /src/zip/src/write.rs:688,1
    - Dst: zip::result::ZipResult::size
      Src: /src/zip/src/write.rs:688,1
    - Dst: FileOptions::last_modified_time
      Src: /src/zip/src/write.rs:687,1
    - Dst: zip::result::ZipResult::last_modified
      Src: /src/zip/src/write.rs:689,1
    - Dst: FileOptions::compression_method
      Src: /src/zip/src/write.rs:687,1
    - Dst: zip::result::ZipResult::compression
      Src: /src/zip/src/write.rs:690,1
    - Dst: zip::result::ZipResult::unix_mode
      Src: /src/zip/src/write.rs:691,1
    - Dst: FileOptions::unix_permissions
      Src: /src/zip/src/write.rs:692,1
    - Dst: zip::result::ZipResult::crc32
      Src: /src/zip/src/write.rs:696,1
    - Dst: zip::result::ZipResult::compressed_size
      Src: /src/zip/src/write.rs:697,1
    - Dst: zip::result::ZipResult::size
      Src: /src/zip/src/write.rs:698,1
    - Dst: ZipWriter::start_entry
      Src: /src/zip/src/write.rs:701,1
    - Dst: Some
      Src: /src/zip/src/write.rs:701,1
    - Dst: io::copy
      Src: /src/zip/src/write.rs:705,1
    - Dst: zip::result::ZipResult::get_raw_reader
      Src: /src/zip/src/write.rs:705,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:707,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 2
    argNames:
    - file
    - name
    argTypes:
    - ZipFile
    - S
    constantsTouched: []
    func_position:
      end: 708
      start: 683
    functionDepth: 8
    functionLinenumber: 683
    functionLinenumberEnd: 708
    functionName: ZipWriter::raw_copy_file_rename
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - zip::result::ZipResult::compressed_size
    - zip::result::ZipResult::size
    - FileOptions::unix_permissions
    - zip::result::ZipResult::get_raw_reader
    - zip::result::ZipResult::last_modified
    - zip::result::ZipResult::compression
    - Self::large_file
    - Some
    - Ok
    - FileOptions::compression_method
    - FileOptions::last_modified_time
    - u64::max
    - zip::result::ZipResult::unix_mode
    - zip::result::ZipResult::crc32
    - io::copy
    - ZipWriter::start_entry
    - FileOptions::default
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn raw_copy_file_rename<S>(&mut self, mut file: ZipFile, name:
      S) -> ZipResult<()>whereS: Into<String>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zip::result::ZipResult::name
      Src: /src/zip/src/write.rs:734,1
    - Dst: Option::to_owned
      Src: /src/zip/src/write.rs:734,1
    - Dst: ZipWriter::raw_copy_file_rename
      Src: /src/zip/src/write.rs:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - file
    argTypes:
    - ZipFile
    constantsTouched: []
    func_position:
      end: 736
      start: 733
    functionDepth: 9
    functionLinenumber: 733
    functionLinenumberEnd: 736
    functionName: ZipWriter::raw_copy_file
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - Option::to_owned
    - zip::result::ZipResult::name
    - ZipWriter::raw_copy_file_rename
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn raw_copy_file(&mut self, file: ZipFile) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/zip/src/write.rs:745,1
    - Dst: Some
      Src: /src/zip/src/write.rs:746,1
    - Dst: as_mut
      Src: /src/zip/src/write.rs:748,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:748,1
    - Dst: Option::into
      Src: /src/zip/src/write.rs:751,1
    - Dst: chars
      Src: /src/zip/src/write.rs:753,1
    - Dst: last
      Src: /src/zip/src/write.rs:753,1
    - Dst: ZipWriter::start_entry
      Src: /src/zip/src/write.rs:758,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:760,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 2
    argNames:
    - name
    - options
    argTypes:
    - S
    - FileOptions
    constantsTouched: []
    func_position:
      end: 761
      start: 741
    functionDepth: 8
    functionLinenumber: 741
    functionLinenumberEnd: 761
    functionName: ZipWriter::add_directory
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 2
    functionsReached:
    - as_mut
    - chars
    - last
    - Option::into
    - unwrap
    - Some
    - Ok
    - is_none
    - ZipWriter::start_entry
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn add_directory<S>(&mut self, name: S, mut options: FileOptions)
      -> ZipResult<()>whereS: Into<String>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::add_directory
      Src: /src/zip/src/write.rs:776,1
    - Dst: path_to_string
      Src: /src/zip/src/write.rs:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - path
    - options
    argTypes:
    - '&std::path::Path'
    - FileOptions
    constantsTouched: []
    func_position:
      end: 777
      start: 771
    functionDepth: 9
    functionLinenumber: 771
    functionLinenumberEnd: 777
    functionName: ZipWriter::add_directory_from_path
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - path_to_string
    - ZipWriter::add_directory
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn add_directory_from_path(&mut self,path: &std::path::Path,options:
      FileOptions,) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::finalize
      Src: /src/zip/src/write.rs:784,1
    - Dst: mem::replace
      Src: /src/zip/src/write.rs:785,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:786,1
    - Dst: io::Take::unwrap
      Src: /src/zip/src/write.rs:786,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 787
      start: 783
    functionDepth: 8
    functionLinenumber: 783
    functionLinenumberEnd: 787
    functionName: ZipWriter::finish
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 6
    functionsReached:
    - io::Take::unwrap
    - ZipWriter::finalize
    - Ok
    - mem::replace
    linkageType: ''
    returnType: ZipResult
    signature: pub fn finish(&mut self) -> ZipResult<W>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/zip/src/write.rs:811,1
    - Dst: Some
      Src: /src/zip/src/write.rs:812,1
    - Dst: as_mut
      Src: /src/zip/src/write.rs:814,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:814,1
    - Dst: ZipWriter::start_entry
      Src: /src/zip/src/write.rs:819,1
    - Dst: ZipWriter::write_all
      Src: /src/zip/src/write.rs:821,1
    - Dst: into
      Src: /src/zip/src/write.rs:821,1
    - Dst: as_bytes
      Src: /src/zip/src/write.rs:821,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:824,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 3
    argNames:
    - name
    - target
    - options
    argTypes:
    - N
    - T
    - FileOptions
    constantsTouched: []
    func_position:
      end: 825
      start: 801
    functionDepth: 8
    functionLinenumber: 801
    functionLinenumberEnd: 825
    functionName: ZipWriter::add_symlink
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 2
    functionsReached:
    - as_mut
    - as_bytes
    - ZipWriter::write_all
    - Some
    - unwrap
    - Ok
    - into
    - is_none
    - ZipWriter::start_entry
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn add_symlink<N, T>(&mut self,name: N,target: T,mut options:
      FileOptions,) -> ZipResult<()>whereN: Into<String>,T: Into<String>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::finish_file
      Src: /src/zip/src/write.rs:828,1
    - Dst: get_plain
      Src: /src/zip/src/write.rs:831,1
    - Dst: stream_position
      Src: /src/zip/src/write.rs:833,1
    - Dst: iter
      Src: /src/zip/src/write.rs:834,1
    - Dst: write_central_directory_header
      Src: /src/zip/src/write.rs:835,1
    - Dst: stream_position
      Src: /src/zip/src/write.rs:837,1
    - Dst: len
      Src: /src/zip/src/write.rs:839,1
    - Dst: max
      Src: /src/zip/src/write.rs:840,1
    - Dst: len
      Src: /src/zip/src/write.rs:847,1
    - Dst: len
      Src: /src/zip/src/write.rs:848,1
    - Dst: write
      Src: /src/zip/src/write.rs:853,1
    - Dst: write
      Src: /src/zip/src/write.rs:861,1
    - Dst: len
      Src: /src/zip/src/write.rs:864,1
    - Dst: min
      Src: /src/zip/src/write.rs:864,1
    - Dst: clone
      Src: /src/zip/src/write.rs:868,1
    - Dst: min
      Src: /src/zip/src/write.rs:871,1
    - Dst: min
      Src: /src/zip/src/write.rs:872,1
    - Dst: write
      Src: /src/zip/src/write.rs:875,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:878,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 879
      start: 827
    functionDepth: 7
    functionLinenumber: 827
    functionLinenumberEnd: 879
    functionName: ZipWriter::finalize
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 2
    functionsReached:
    - stream_position
    - iter
    - write
    - clone
    - ZipWriter::finish_file
    - Ok
    - get_plain
    - write_central_directory_header
    - min
    - max
    - len
    linkageType: ''
    returnType: ZipResult
    signature: fn finalize(&mut self) -> ZipResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_closed
      Src: /src/zip/src/write.rs:884,1
    - Dst: ZipWriter::finalize
      Src: /src/zip/src/write.rs:885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 889
      start: 883
    functionDepth: 8
    functionLinenumber: 883
    functionLinenumberEnd: 889
    functionName: ZipWriter::drop
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - ZipWriter::finalize
    - is_closed
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: GenericZipWriter::current_compression
      Src: /src/zip/src/write.rs:898,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:899,1
    - Dst: Err
      Src: /src/zip/src/write.rs:901,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:901,1
    - Dst: Self::into
      Src: /src/zip/src/write.rs:901,1
    - Dst: mem::replace
      Src: /src/zip/src/write.rs:910,1
    - Dst: Self::finish
      Src: /src/zip/src/write.rs:917,1
    - Dst: Self::finish
      Src: /src/zip/src/write.rs:919,1
    - Dst: Self::finish
      Src: /src/zip/src/write.rs:921,1
    - Dst: Err
      Src: /src/zip/src/write.rs:923,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:923,1
    - Dst: Self::into
      Src: /src/zip/src/write.rs:923,1
    - Dst: FileOptions::is_some
      Src: /src/zip/src/write.rs:935,1
    - Dst: Err
      Src: /src/zip/src/write.rs:936,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/write.rs:936,1
    - Dst: GenericZipWriter::Storer
      Src: /src/zip/src/write.rs:941,1
    - Dst: GenericZipWriter::Deflater
      Src: /src/zip/src/write.rs:948,1
    - Dst: DeflateEncoder::new
      Src: /src/zip/src/write.rs:948,1
    - Dst: flate2::Compression::new
      Src: /src/zip/src/write.rs:950,1
    - Dst: clamp_opt
      Src: /src/zip/src/write.rs:951,1
    - Dst: FileOptions::unwrap_or
      Src: /src/zip/src/write.rs:952,1
    - Dst: flate2::Compression::default
      Src: /src/zip/src/write.rs:953,1
    - Dst: DateTime::level
      Src: /src/zip/src/write.rs:953,1
    - Dst: deflate_compression_level_range
      Src: /src/zip/src/write.rs:954,1
    - Dst: Option::ok_or
      Src: /src/zip/src/write.rs:951,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/write.rs:956,1
    - Dst: GenericZipWriter::Bzip2
      Src: /src/zip/src/write.rs:962,1
    - Dst: BzEncoder::new
      Src: /src/zip/src/write.rs:962,1
    - Dst: bzip2::Compression::new
      Src: /src/zip/src/write.rs:964,1
    - Dst: clamp_opt
      Src: /src/zip/src/write.rs:965,1
    - Dst: FileOptions::unwrap_or
      Src: /src/zip/src/write.rs:966,1
    - Dst: bzip2::Compression::default
      Src: /src/zip/src/write.rs:967,1
    - Dst: DateTime::level
      Src: /src/zip/src/write.rs:967,1
    - Dst: bzip2_compression_level_range
      Src: /src/zip/src/write.rs:968,1
    - Dst: Option::ok_or
      Src: /src/zip/src/write.rs:965,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/write.rs:970,1
    - Dst: Err
      Src: /src/zip/src/write.rs:976,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/write.rs:976,1
    - Dst: GenericZipWriter::Zstd
      Src: /src/zip/src/write.rs:981,1
    - Dst: ZstdEncoder::new
      Src: /src/zip/src/write.rs:982,1
    - Dst: clamp_opt
      Src: /src/zip/src/write.rs:984,1
    - Dst: FileOptions::unwrap_or
      Src: /src/zip/src/write.rs:985,1
    - Dst: zstd::compression_level_range
      Src: /src/zip/src/write.rs:986,1
    - Dst: Option::ok_or
      Src: /src/zip/src/write.rs:984,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/write.rs:988,1
    - Dst: Self::unwrap
      Src: /src/zip/src/write.rs:982,1
    - Dst: Err
      Src: /src/zip/src/write.rs:995,1
    - Dst: ZipError::UnsupportedArchive
      Src: /src/zip/src/write.rs:995,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:1000,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 95
    argCount: 2
    argNames:
    - compression
    - compression_level
    argTypes:
    - CompressionMethod
    - Option<i32>
    constantsTouched: []
    func_position:
      end: 1001
      start: 893
    functionDepth: 4
    functionLinenumber: 893
    functionLinenumberEnd: 1001
    functionName: GenericZipWriter::switch_to
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - clamp_opt
    - ZstdEncoder::new
    - BzEncoder::new
    - GenericZipWriter::Storer
    - Option::ok_or
    - flate2::Compression::new
    - GenericZipWriter::Deflater
    - ZipError::UnsupportedArchive
    - Self::into
    - FileOptions::unwrap_or
    - GenericZipWriter::Bzip2
    - bzip2::Compression::default
    - DeflateEncoder::new
    - Err
    - bzip2_compression_level_range
    - io::Error::new
    - GenericZipWriter::current_compression
    - Ok
    - deflate_compression_level_range
    - Self::unwrap
    - zstd::compression_level_range
    - GenericZipWriter::Zstd
    - flate2::Compression::default
    - DateTime::level
    - FileOptions::is_some
    - bzip2::Compression::new
    - Self::finish
    - mem::replace
    linkageType: ''
    returnType: ZipResult
    signature: 'fn switch_to(&mut self,compression: CompressionMethod,compression_level:
      Option<i32>,) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/zip/src/write.rs:1005,1
    - Dst: Some
      Src: /src/zip/src/write.rs:1011,1
    - Dst: Some
      Src: /src/zip/src/write.rs:1013,1
    - Dst: Some
      Src: /src/zip/src/write.rs:1015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1003
    functionDepth: 0
    functionLinenumber: 1003
    functionLinenumberEnd: 1018
    functionName: GenericZipWriter::ref_mut
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn ref_mut(&mut self) -> Option<&mut dyn Write>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1022
    functionName: GenericZipWriter::is_closed
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_closed(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1029
    functionName: GenericZipWriter::get_plain
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut W'
    signature: fn get_plain(&mut self) -> &mut W
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/zip/src/write.rs:1033,1
    - Dst: Some
      Src: /src/zip/src/write.rs:1039,1
    - Dst: Some
      Src: /src/zip/src/write.rs:1041,1
    - Dst: Some
      Src: /src/zip/src/write.rs:1043,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1031
    functionDepth: 0
    functionLinenumber: 1031
    functionLinenumberEnd: 1046
    functionName: GenericZipWriter::current_compression
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn current_compression(&self) -> Option<CompressionMethod>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1048
    functionDepth: 0
    functionLinenumber: 1048
    functionLinenumberEnd: 1053
    functionName: GenericZipWriter::unwrap
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: W
    signature: fn unwrap(self) -> W
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: flate2::Compression::none
      Src: /src/zip/src/write.rs:1062,1
    - Dst: level
      Src: /src/zip/src/write.rs:1062,1
    - Dst: flate2::Compression::best
      Src: /src/zip/src/write.rs:1063,1
    - Dst: level
      Src: /src/zip/src/write.rs:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1065
    functionName: deflate_compression_level_range
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - flate2::Compression::none
    - flate2::Compression::best
    - level
    linkageType: ''
    returnType: std::ops::RangeInclusive
    signature: fn deflate_compression_level_range() -> std::ops::RangeInclusive<i32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bzip2::Compression::none
      Src: /src/zip/src/write.rs:1069,1
    - Dst: level
      Src: /src/zip/src/write.rs:1069,1
    - Dst: bzip2::Compression::best
      Src: /src/zip/src/write.rs:1070,1
    - Dst: level
      Src: /src/zip/src/write.rs:1070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1068
    functionDepth: 1
    functionLinenumber: 1068
    functionLinenumberEnd: 1072
    functionName: bzip2_compression_level_range
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - bzip2::Compression::best
    - bzip2::Compression::none
    - level
    linkageType: ''
    returnType: std::ops::RangeInclusive
    signature: fn bzip2_compression_level_range() -> std::ops::RangeInclusive<i32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::ops::RangeInclusive::contains
      Src: /src/zip/src/write.rs:1082,1
    - Dst: Some
      Src: /src/zip/src/write.rs:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - value
    - range
    argTypes:
    - T
    - std::ops::RangeInclusive<T>
    constantsTouched: []
    func_position:
      end: 1087
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1087
    functionName: clamp_opt
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - std::ops::RangeInclusive::contains
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn clamp_opt<T: Ord + Copy>(value: T, range: std::ops::RangeInclusive<T>)
      -> Option<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1091,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1093,1
    - Dst: zip::result::ZipResult::version_needed
      Src: /src/zip/src/write.rs:1093,1
    - Dst: is_ascii
      Src: /src/zip/src/write.rs:1095,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1100,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1103,1
    - Dst: to_u16
      Src: /src/zip/src/write.rs:1103,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1105,1
    - Dst: timepart
      Src: /src/zip/src/write.rs:1105,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1106,1
    - Dst: datepart
      Src: /src/zip/src/write.rs:1106,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1108,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1111,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1112,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1114,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1115,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1118,1
    - Dst: as_bytes
      Src: /src/zip/src/write.rs:1118,1
    - Dst: len
      Src: /src/zip/src/write.rs:1118,1
    - Dst: len
      Src: /src/zip/src/write.rs:1120,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1121,1
    - Dst: '&mut T::write_all'
      Src: /src/zip/src/write.rs:1123,1
    - Dst: as_bytes
      Src: /src/zip/src/write.rs:1123,1
    - Dst: write_local_zip64_extra_field
      Src: /src/zip/src/write.rs:1126,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:1129,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 111
    argCount: 2
    argNames:
    - writer
    - file
    argTypes:
    - '&mut T'
    - '&ZipFileData'
    constantsTouched: []
    func_position:
      end: 1130
      start: 1089
    functionDepth: 2
    functionLinenumber: 1089
    functionLinenumberEnd: 1130
    functionName: write_local_file_header
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - '&mut T::write_all'
    - as_bytes
    - write_u32::<LittleEndian>
    - zip::result::ZipResult::version_needed
    - to_u16
    - timepart
    - write_u16::<LittleEndian>
    - is_ascii
    - datepart
    - Ok
    - write_local_zip64_extra_field
    - len
    linkageType: ''
    returnType: ZipResult
    signature: 'fn write_local_file_header<T: Write>(writer: &mut T, file: &ZipFileData)
      -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut T::seek'
      Src: /src/zip/src/write.rs:1137,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/write.rs:1137,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1138,1
    - Dst: update_local_zip64_extra_field
      Src: /src/zip/src/write.rs:1140,1
    - Dst: Err
      Src: /src/zip/src/write.rs:1144,1
    - Dst: ZipError::Io
      Src: /src/zip/src/write.rs:1144,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:1144,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1149,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1151,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:1153,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 2
    argNames:
    - writer
    - file
    argTypes:
    - '&mut T'
    - '&ZipFileData'
    constantsTouched: []
    func_position:
      end: 1154
      start: 1132
    functionDepth: 3
    functionLinenumber: 1132
    functionLinenumberEnd: 1154
    functionName: update_local_file_header
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - Err
    - write_u32::<LittleEndian>
    - io::Error::new
    - ZipError::Io
    - update_local_zip64_extra_field
    - io::SeekFrom::Start
    - Ok
    - '&mut T::seek'
    linkageType: ''
    returnType: ZipResult
    signature: 'fn update_local_file_header<T: Write + io::Seek>(writer: &mut T,file:
      &ZipFileData,) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_central_zip64_extra_field
      Src: /src/zip/src/write.rs:1160,1
    - Dst: ZipResult::as_mut
      Src: /src/zip/src/write.rs:1160,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1163,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1166,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1168,1
    - Dst: zip::result::ZipResult::version_needed
      Src: /src/zip/src/write.rs:1168,1
    - Dst: is_ascii
      Src: /src/zip/src/write.rs:1170,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1175,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1178,1
    - Dst: to_u16
      Src: /src/zip/src/write.rs:1178,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1180,1
    - Dst: timepart
      Src: /src/zip/src/write.rs:1180,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1181,1
    - Dst: datepart
      Src: /src/zip/src/write.rs:1181,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1183,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1185,1
    - Dst: min
      Src: /src/zip/src/write.rs:1185,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1187,1
    - Dst: min
      Src: /src/zip/src/write.rs:1187,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1189,1
    - Dst: as_bytes
      Src: /src/zip/src/write.rs:1189,1
    - Dst: len
      Src: /src/zip/src/write.rs:1189,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1191,1
    - Dst: len
      Src: /src/zip/src/write.rs:1191,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1193,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1195,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1197,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1199,1
    - Dst: write_u32::<LittleEndian>
      Src: /src/zip/src/write.rs:1201,1
    - Dst: min
      Src: /src/zip/src/write.rs:1201,1
    - Dst: '&mut T::write_all'
      Src: /src/zip/src/write.rs:1203,1
    - Dst: as_bytes
      Src: /src/zip/src/write.rs:1203,1
    - Dst: '&mut T::write_all'
      Src: /src/zip/src/write.rs:1205,1
    - Dst: '&mut T::write_all'
      Src: /src/zip/src/write.rs:1207,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:1211,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 151
    argCount: 2
    argNames:
    - writer
    - file
    argTypes:
    - '&mut T'
    - '&ZipFileData'
    constantsTouched: []
    func_position:
      end: 1212
      start: 1156
    functionDepth: 2
    functionLinenumber: 1156
    functionLinenumberEnd: 1212
    functionName: write_central_directory_header
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - '&mut T::write_all'
    - as_bytes
    - write_u32::<LittleEndian>
    - zip::result::ZipResult::version_needed
    - write_central_zip64_extra_field
    - to_u16
    - write_u16::<LittleEndian>
    - is_ascii
    - timepart
    - datepart
    - min
    - Ok
    - ZipResult::as_mut
    - len
    linkageType: ''
    returnType: ZipResult
    signature: 'fn write_central_directory_header<T: Write>(writer: &mut T, file:
      &ZipFileData) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_slice
      Src: /src/zip/src/write.rs:1215,1
    - Dst: '&[u8]::len'
      Src: /src/zip/src/write.rs:1217,1
    - Dst: Err
      Src: /src/zip/src/write.rs:1218,1
    - Dst: ZipError::Io
      Src: /src/zip/src/write.rs:1218,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:1218,1
    - Dst: '&[u8]::is_empty'
      Src: /src/zip/src/write.rs:1224,1
    - Dst: '&[u8]::len'
      Src: /src/zip/src/write.rs:1225,1
    - Dst: Err
      Src: /src/zip/src/write.rs:1227,1
    - Dst: ZipError::Io
      Src: /src/zip/src/write.rs:1227,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:1227,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1232,1
    - Dst: read_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1233,1
    - Dst: Err
      Src: /src/zip/src/write.rs:1237,1
    - Dst: ZipError::Io
      Src: /src/zip/src/write.rs:1237,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:1237,1
    - Dst: iter
      Src: /src/zip/src/write.rs:1245,1
    - Dst: any
      Src: /src/zip/src/write.rs:1245,1
    - Dst: Err
      Src: /src/zip/src/write.rs:1246,1
    - Dst: ZipError::Io
      Src: /src/zip/src/write.rs:1246,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:1246,1
    - Dst: Err
      Src: /src/zip/src/write.rs:1256,1
    - Dst: ZipError::Io
      Src: /src/zip/src/write.rs:1256,1
    - Dst: io::Error::new
      Src: /src/zip/src/write.rs:1256,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:1265,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 75
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&ZipFileData'
    constantsTouched: []
    func_position:
      end: 1266
      start: 1214
    functionDepth: 2
    functionLinenumber: 1214
    functionLinenumberEnd: 1266
    functionName: validate_extra_data
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - '&[u8]::len'
    - Err
    - iter
    - io::Error::new
    - read_u16::<LittleEndian>
    - ZipError::Io
    - Ok
    - '&[u8]::is_empty'
    - as_slice
    - any
    linkageType: ''
    returnType: ZipResult
    signature: 'fn validate_extra_data(file: &ZipFileData) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1271,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1272,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/write.rs:1273,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/write.rs:1274,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:1277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - writer
    - file
    argTypes:
    - '&mut T'
    - '&ZipFileData'
    constantsTouched: []
    func_position:
      end: 1278
      start: 1268
    functionDepth: 0
    functionLinenumber: 1268
    functionLinenumberEnd: 1278
    functionName: write_local_zip64_extra_field
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - write_u16::<LittleEndian>
    - Ok
    - write_u64::<LittleEndian>
    linkageType: ''
    returnType: ZipResult
    signature: 'fn write_local_zip64_extra_field<T: Write>(writer: &mut T, file: &ZipFileData)
      -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_bytes
      Src: /src/zip/src/write.rs:1284,1
    - Dst: len
      Src: /src/zip/src/write.rs:1284,1
    - Dst: '&mut T::seek'
      Src: /src/zip/src/write.rs:1285,1
    - Dst: io::SeekFrom::Start
      Src: /src/zip/src/write.rs:1285,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/write.rs:1286,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/write.rs:1287,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:1290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - writer
    - file
    argTypes:
    - '&mut T'
    - '&ZipFileData'
    constantsTouched: []
    func_position:
      end: 1291
      start: 1280
    functionDepth: 2
    functionLinenumber: 1280
    functionLinenumberEnd: 1291
    functionName: update_local_zip64_extra_field
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - as_bytes
    - io::SeekFrom::Start
    - Ok
    - '&mut T::seek'
    - write_u64::<LittleEndian>
    - len
    linkageType: ''
    returnType: ZipResult
    signature: 'fn update_local_zip64_extra_field<T: Write + io::Seek>(writer: &mut
      T,file: &ZipFileData,) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1312,1
    - Dst: write_u16::<LittleEndian>
      Src: /src/zip/src/write.rs:1313,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/write.rs:1317,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/write.rs:1320,1
    - Dst: write_u64::<LittleEndian>
      Src: /src/zip/src/write.rs:1323,1
    - Dst: Ok
      Src: /src/zip/src/write.rs:1328,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 2
    argNames:
    - writer
    - file
    argTypes:
    - '&mut T'
    - '&ZipFileData'
    constantsTouched: []
    func_position:
      end: 1329
      start: 1293
    functionDepth: 0
    functionLinenumber: 1293
    functionLinenumberEnd: 1329
    functionName: write_central_zip64_extra_field
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 1
    functionsReached:
    - write_u16::<LittleEndian>
    - Ok
    - write_u64::<LittleEndian>
    linkageType: ''
    returnType: ZipResult
    signature: 'fn write_central_zip64_extra_field<T: Write>(writer: &mut T, file:
      &ZipFileData) -> ZipResult<u16>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::new
      Src: /src/zip/src/write.rs:1332,1
    - Dst: ZipResult::components
      Src: /src/zip/src/write.rs:1333,1
    - Dst: Self::is_empty
      Src: /src/zip/src/write.rs:1335,1
    - Dst: Self::push
      Src: /src/zip/src/write.rs:1336,1
    - Dst: Self::push_str
      Src: /src/zip/src/write.rs:1338,1
    - Dst: to_string_lossy
      Src: /src/zip/src/write.rs:1338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&std::path::Path'
    constantsTouched: []
    func_position:
      end: 1342
      start: 1331
    functionDepth: 3
    functionLinenumber: 1331
    functionLinenumberEnd: 1342
    functionName: path_to_string
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 3
    functionsReached:
    - ZipResult::components
    - Self::is_empty
    - to_string_lossy
    - Self::push
    - String::new
    - Self::push_str
    linkageType: ''
    returnType: String
    signature: 'fn path_to_string(path: &std::path::Path) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::new
      Src: /src/zip/src/write.rs:1354,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/write.rs:1354,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:1354,1
    - Dst: ZipWriter::set_comment
      Src: /src/zip/src/write.rs:1355,1
    - Dst: ZipWriter::finish
      Src: /src/zip/src/write.rs:1356,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/write.rs:1356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1353
    functionDepth: 9
    functionLinenumber: 1353
    functionLinenumberEnd: 1362
    functionName: test::write_empty_zip
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - ZipWriter::set_comment
    - Vec::new
    - ZipWriter::finish
    - ZipWriter::new
    - io::Cursor::new
    linkageType: ''
    returnType: void
    signature: fn write_empty_zip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FileOptions::default
      Src: /src/zip/src/write.rs:1367,1
    - Dst: Self::unix_permissions
      Src: /src/zip/src/write.rs:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1365
    functionDepth: 2
    functionLinenumber: 1365
    functionLinenumberEnd: 1369
    functionName: test::unix_permissions_bitmask
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - Self::unix_permissions
    - FileOptions::default
    linkageType: ''
    returnType: void
    signature: fn unix_permissions_bitmask()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::new
      Src: /src/zip/src/write.rs:1373,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/write.rs:1373,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:1373,1
    - Dst: ZipWriter::add_directory
      Src: /src/zip/src/write.rs:1374,1
    - Dst: FileOptions::default
      Src: /src/zip/src/write.rs:1377,1
    - Dst: Self::last_modified_time
      Src: /src/zip/src/write.rs:1377,1
    - Dst: DateTime::from_date_and_time
      Src: /src/zip/src/write.rs:1378,1
    - Dst: Result::unwrap
      Src: /src/zip/src/write.rs:1378,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/write.rs:1374,1
    - Dst: ZipWriter::finish
      Src: /src/zip/src/write.rs:1385,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/write.rs:1385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1372
    functionDepth: 9
    functionLinenumber: 1372
    functionLinenumberEnd: 1397
    functionName: test::write_zip_dir
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - Vec::new
    - ZipWriter::new
    - ZipWriter::finish
    - Self::last_modified_time
    - DateTime::from_date_and_time
    - io::Cursor::new
    - Result::unwrap
    - ZipWriter::add_directory
    - FileOptions::default
    linkageType: ''
    returnType: void
    signature: fn write_zip_dir()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::new
      Src: /src/zip/src/write.rs:1401,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/write.rs:1401,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:1401,1
    - Dst: ZipWriter::add_symlink
      Src: /src/zip/src/write.rs:1402,1
    - Dst: FileOptions::default
      Src: /src/zip/src/write.rs:1406,1
    - Dst: Self::last_modified_time
      Src: /src/zip/src/write.rs:1406,1
    - Dst: DateTime::from_date_and_time
      Src: /src/zip/src/write.rs:1407,1
    - Dst: Result::unwrap
      Src: /src/zip/src/write.rs:1407,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/write.rs:1402,1
    - Dst: ZipWriter::finish
      Src: /src/zip/src/write.rs:1414,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/write.rs:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1426
      start: 1400
    functionDepth: 9
    functionLinenumber: 1400
    functionLinenumberEnd: 1426
    functionName: test::write_symlink_simple
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - ZipWriter::add_symlink
    - Vec::new
    - ZipWriter::new
    - ZipWriter::finish
    - Self::last_modified_time
    - DateTime::from_date_and_time
    - io::Cursor::new
    - Result::unwrap
    - FileOptions::default
    linkageType: ''
    returnType: void
    signature: fn write_symlink_simple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::new
      Src: /src/zip/src/write.rs:1430,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/write.rs:1430,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:1430,1
    - Dst: ZipWriter::add_symlink
      Src: /src/zip/src/write.rs:1431,1
    - Dst: FileOptions::default
      Src: /src/zip/src/write.rs:1435,1
    - Dst: Self::last_modified_time
      Src: /src/zip/src/write.rs:1435,1
    - Dst: DateTime::from_date_and_time
      Src: /src/zip/src/write.rs:1436,1
    - Dst: Result::unwrap
      Src: /src/zip/src/write.rs:1436,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/write.rs:1431,1
    - Dst: ZipWriter::finish
      Src: /src/zip/src/write.rs:1443,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/write.rs:1443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1429
    functionDepth: 9
    functionLinenumber: 1429
    functionLinenumberEnd: 1458
    functionName: test::write_symlink_wonky_paths
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - ZipWriter::add_symlink
    - Vec::new
    - ZipWriter::new
    - ZipWriter::finish
    - Self::last_modified_time
    - DateTime::from_date_and_time
    - io::Cursor::new
    - Result::unwrap
    - FileOptions::default
    linkageType: ''
    returnType: void
    signature: fn write_symlink_wonky_paths()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipWriter::new
      Src: /src/zip/src/write.rs:1462,1
    - Dst: io::Cursor::new
      Src: /src/zip/src/write.rs:1462,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:1462,1
    - Dst: DateTime::default
      Src: /src/zip/src/write.rs:1466,1
    - Dst: Some
      Src: /src/zip/src/write.rs:1467,1
    - Dst: ZipWriter::start_file
      Src: /src/zip/src/write.rs:1471,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/write.rs:1471,1
    - Dst: ZipWriter::write_all
      Src: /src/zip/src/write.rs:1472,1
    - Dst: unwrap
      Src: /src/zip/src/write.rs:1472,1
    - Dst: ZipWriter::finish
      Src: /src/zip/src/write.rs:1475,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/src/write.rs:1475,1
    - Dst: Vec::new
      Src: /src/zip/src/write.rs:1478,1
    - Dst: Self::extend_from_slice
      Src: /src/zip/src/write.rs:1479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1481
      start: 1461
    functionDepth: 9
    functionLinenumber: 1461
    functionLinenumberEnd: 1481
    functionName: test::write_mimetype_zip
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - ZipWriter::write_all
    - Self::extend_from_slice
    - Vec::new
    - ZipWriter::new
    - Some
    - unwrap
    - ZipWriter::finish
    - io::Cursor::new
    - ZipWriter::start_file
    - DateTime::default
    linkageType: ''
    returnType: void
    signature: fn write_mimetype_zip()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::path::PathBuf::new
      Src: /src/zip/src/write.rs:1485,1
    - Dst: ZipResult::push
      Src: /src/zip/src/write.rs:1487,1
    - Dst: ZipResult::push
      Src: /src/zip/src/write.rs:1489,1
    - Dst: ZipResult::push
      Src: /src/zip/src/write.rs:1490,1
    - Dst: ZipResult::push
      Src: /src/zip/src/write.rs:1491,1
    - Dst: ZipResult::push
      Src: /src/zip/src/write.rs:1492,1
    - Dst: ZipResult::push
      Src: /src/zip/src/write.rs:1493,1
    - Dst: super::path_to_string
      Src: /src/zip/src/write.rs:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1484
    functionDepth: 4
    functionLinenumber: 1484
    functionLinenumberEnd: 1496
    functionName: test::path_to_string
    functionSourceFile: /src/zip/src/write.rs
    functionUses: 0
    functionsReached:
    - ZipResult::push
    - super::path_to_string
    - std::path::PathBuf::new
    linkageType: ''
    returnType: void
    signature: fn path_to_string()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/zip/src/read/stream.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - reader
    argTypes:
    - R
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: ZipStreamReader::new
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 6
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(reader: R) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 0.read_u32::<LittleEndian>
      Src: /src/zip/src/read/stream.rs:31,1
    - Dst: Ok
      Src: /src/zip/src/read/stream.rs:33,1
    - Dst: central_header_to_zip_file_inner
      Src: /src/zip/src/read/stream.rs:35,1
    - Dst: ZipResult::map
      Src: /src/zip/src/read/stream.rs:35,1
    - Dst: map
      Src: /src/zip/src/read/stream.rs:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 39
    functionName: ZipStreamReader::parse_central_directory
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 1
    functionsReached:
    - central_header_to_zip_file_inner
    - ZipResult::map
    - 0.read_u32::<LittleEndian>
    - Ok
    - map
    linkageType: ''
    returnType: ZipResult
    signature: fn parse_central_directory(&mut self) -> ZipResult<Option<ZipStreamFileMetadata>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::read_zipfile_from_stream
      Src: /src/zip/src/read/stream.rs:44,1
    - Dst: '&mut V::visit_file'
      Src: /src/zip/src/read/stream.rs:45,1
    - Dst: ZipStreamReader::parse_central_directory
      Src: /src/zip/src/read/stream.rs:48,1
    - Dst: '&mut V::visit_additional_metadata'
      Src: /src/zip/src/read/stream.rs:49,1
    - Dst: Ok
      Src: /src/zip/src/read/stream.rs:52,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - visitor
    argTypes:
    - '&mut V'
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 6
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: ZipStreamReader::visit
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 1
    functionsReached:
    - super::read_zipfile_from_stream
    - ZipStreamReader::parse_central_directory
    - Ok
    - '&mut V::visit_additional_metadata'
    - '&mut V::visit_file'
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn visit<V: ZipStreamVisitor>(mut self, visitor: &mut V) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipStreamReader::visit
      Src: /src/zip/src/read/stream.rs:106,1
    - Dst: Extractor
      Src: /src/zip/src/read/stream.rs:106,1
    - Dst: ZipResult::as_ref
      Src: /src/zip/src/read/stream.rs:106,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 61
    argCount: 1
    argNames:
    - directory
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 107
      start: 60
    functionDepth: 7
    functionLinenumber: 60
    functionLinenumberEnd: 107
    functionName: ZipStreamReader::extract
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - ZipStreamReader::visit
    - ZipResult::as_ref
    - Extractor
    linkageType: ''
    returnType: ZipResult
    signature: 'pub fn extract<P: AsRef<Path>>(self, directory: P) -> ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: ZipStreamFileMetadata::name
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: pub fn name(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: ZipStreamFileMetadata::name_raw
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn name_raw(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: file_name_sanitized
      Src: /src/zip/src/read/stream.rs:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 5
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: ZipStreamFileMetadata::mangled_name
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - file_name_sanitized
    linkageType: ''
    returnType: ::std::path::PathBuf
    signature: pub fn mangled_name(&self) -> ::std::path::PathBuf
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: enclosed_name
      Src: /src/zip/src/read/stream.rs:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 181
    functionName: ZipStreamFileMetadata::enclosed_name
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - enclosed_name
    linkageType: ''
    returnType: Option
    signature: pub fn enclosed_name(&self) -> Option<&Path>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipStreamFileMetadata::name
      Src: /src/zip/src/read/stream.rs:185,1
    - Dst: '&str::chars'
      Src: /src/zip/src/read/stream.rs:185,1
    - Dst: rev
      Src: /src/zip/src/read/stream.rs:185,1
    - Dst: next
      Src: /src/zip/src/read/stream.rs:185,1
    - Dst: map_or
      Src: /src/zip/src/read/stream.rs:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: ZipStreamFileMetadata::is_dir
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 1
    functionsReached:
    - ZipStreamFileMetadata::name
    - '&str::chars'
    - next
    - map_or
    - rev
    linkageType: ''
    returnType: bool
    signature: pub fn is_dir(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ZipStreamFileMetadata::is_dir
      Src: /src/zip/src/read/stream.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: ZipStreamFileMetadata::is_file
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - ZipStreamFileMetadata::is_dir
    linkageType: ''
    returnType: bool
    signature: pub fn is_file(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: ZipStreamFileMetadata::comment
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: pub fn comment(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/zip/src/read/stream.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 205
    functionName: ZipStreamFileMetadata::data_start
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: u64
    signature: pub fn data_start(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unix_mode
      Src: /src/zip/src/read/stream.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: ZipStreamFileMetadata::unix_mode
    functionSourceFile: /src/zip/src/read/stream.rs
    functionUses: 0
    functionsReached:
    - unix_mode
    linkageType: ''
    returnType: Option
    signature: pub fn unix_mode(&self) -> Option<u32>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::io::Cursor::new
      Src: /src/zip/fuzz/fuzz_targets/fuzz_read.rs:5,1
    - Dst: zip::ZipArchive::new
      Src: /src/zip/fuzz/fuzz_targets/fuzz_read.rs:6,1
    - Dst: len
      Src: /src/zip/fuzz/fuzz_targets/fuzz_read.rs:8,1
    - Dst: by_index
      Src: /src/zip/fuzz/fuzz_targets/fuzz_read.rs:9,1
    - Dst: zip::result::ZipResult::size
      Src: /src/zip/fuzz/fuzz_targets/fuzz_read.rs:10,1
    - Dst: std::io::copy
      Src: /src/zip/fuzz/fuzz_targets/fuzz_read.rs:11,1
    - Dst: std::io::sink
      Src: /src/zip/fuzz/fuzz_targets/fuzz_read.rs:11,1
    - Dst: Ok
      Src: /src/zip/fuzz/fuzz_targets/fuzz_read.rs:15,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - data
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 16
      start: 4
    functionDepth: 7
    functionLinenumber: 4
    functionLinenumberEnd: 16
    functionName: decompress_all
    functionSourceFile: /src/zip/fuzz/fuzz_targets/fuzz_read.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - zip::result::ZipResult::size
    - std::io::sink
    - std::io::copy
    - zip::ZipArchive::new
    - Ok
    - by_index
    - len
    linkageType: ''
    returnType: Result
    signature: 'fn decompress_all(data: &[u8]) -> Result<(), Box<dyn std::error::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:48,1
    - Dst: zip::result::ZipResult::name
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:48,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:49,1
    - Dst: zip::result::ZipResult::mangled_name
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:49,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:50,1
    - Dst: zip::result::ZipResult::enclosed_name
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:50,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:51,1
    - Dst: zip::result::ZipResult::compression
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:51,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:52,1
    - Dst: zip::result::ZipResult::compressed_size
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:52,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:53,1
    - Dst: zip::result::ZipResult::size
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:53,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:54,1
    - Dst: zip::result::ZipResult::last_modified
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:54,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:55,1
    - Dst: zip::result::ZipResult::is_dir
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:55,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:56,1
    - Dst: zip::result::ZipResult::is_file
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:56,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:57,1
    - Dst: zip::result::ZipResult::unix_mode
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:57,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:58,1
    - Dst: zip::result::ZipResult::crc32
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:58,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:59,1
    - Dst: zip::result::ZipResult::data_start
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:59,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:60,1
    - Dst: zip::result::ZipResult::header_start
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:60,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:61,1
    - Dst: zip::result::ZipResult::central_header_start
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:61,1
    - Dst: String::new
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:62,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:63,1
    - Dst: zip::result::ZipResult::read_to_string
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:63,1
    - Dst: Ok
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 1
    argNames:
    - file
    argTypes:
    - '&mut zip::read::ZipFile'
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: read_file_attributes
    functionSourceFile: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs
    functionUses: 1
    functionsReached:
    - zip::result::ZipResult::compressed_size
    - zip::result::ZipResult::size
    - zip::result::ZipResult::header_start
    - zip::result::ZipResult::central_header_start
    - zip::result::ZipResult::is_file
    - std::hint::black_box
    - zip::result::ZipResult::compression
    - zip::result::ZipResult::last_modified
    - zip::result::ZipResult::data_start
    - zip::result::ZipResult::read_to_string
    - Ok
    - String::new
    - zip::result::ZipResult::enclosed_name
    - zip::result::ZipResult::is_dir
    - zip::result::ZipResult::crc32
    - zip::result::ZipResult::mangled_name
    - zip::result::ZipResult::name
    - zip::result::ZipResult::unix_mode
    linkageType: ''
    returnType: Result
    signature: 'fn read_file_attributes(file: &mut zip::read::ZipFile) -> Result<(),
      zip::result::ZipError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zip::ZipArchive::new
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:68,1
    - Dst: Cursor::new
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:68,1
    - Dst: iter
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:70,1
    - Dst: zip::result::ZipResult::by_name
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:73,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:74,1
    - Dst: read_file_attributes
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:74,1
    - Dst: zip::result::ZipResult::by_name_decrypt
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:79,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:81,1
    - Dst: read_file_attributes
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:81,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:84,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:85,1
    - Dst: zip::result::ZipResult::file_names
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:91,1
    - Dst: impl Iterator::map
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:91,1
    - Dst: to_string
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:91,1
    - Dst: collect
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:91,1
    - Dst: impl Iterator::iter
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:92,1
    - Dst: zip::result::ZipResult::by_name
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:93,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:94,1
    - Dst: read_file_attributes
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:94,1
    - Dst: zip::result::ZipResult::by_index
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:98,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:99,1
    - Dst: read_file_attributes
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:99,1
    - Dst: zip::result::ZipResult::by_index_decrypt
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:102,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:104,1
    - Dst: read_file_attributes
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:104,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:107,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:108,1
    - Dst: zip::result::ZipResult::len
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:113,1
    - Dst: zip::result::ZipResult::by_index
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:114,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:115,1
    - Dst: read_file_attributes
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:115,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:119,1
    - Dst: zip::result::ZipResult::comment
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:119,1
    - Dst: Err
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:124,1
    - Dst: Ok
      Src: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs:126,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 87
    argCount: 1
    argNames:
    - driver
    argTypes:
    - Driver
    constantsTouched: []
    func_position:
      end: 127
      start: 67
    functionDepth: 6
    functionLinenumber: 67
    functionLinenumberEnd: 127
    functionName: fuzzed_extract
    functionSourceFile: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs
    functionUses: 0
    functionsReached:
    - zip::result::ZipResult::comment
    - zip::result::ZipResult::by_index_decrypt
    - zip::result::ZipResult::file_names
    - to_string
    - Cursor::new
    - Err
    - iter
    - zip::ZipArchive::new
    - std::hint::black_box
    - collect
    - impl Iterator::map
    - zip::result::ZipResult::by_name_decrypt
    - read_file_attributes
    - zip::result::ZipResult::by_index
    - zip::result::ZipResult::len
    - Ok
    - impl Iterator::iter
    - zip::result::ZipResult::by_name
    linkageType: ''
    returnType: Result
    signature: 'fn fuzzed_extract(driver: Driver) -> Result<(), zip::result::ZipError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:24,1
    - Dst: '&mut Unstructured::int_in_range'
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - u
    argTypes:
    - '&mut Unstructured'
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: arbitrary_unix_permissions
    functionSourceFile: /src/zip/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - '&mut Unstructured::int_in_range'
    - Ok
    linkageType: ''
    returnType: arbitrary::Result
    signature: 'fn arbitrary_unix_permissions(u: &mut Unstructured) -> arbitrary::Result<u32>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Unstructured::int_in_range'
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:29,1
    - Dst: unwrap_or
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:29,1
    - Dst: Ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:30,1
    - Dst: map
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:30,1
    - Dst: chain
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:32,1
    - Dst: chain
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:32,1
    - Dst: '&str::chars'
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:34,1
    - Dst: collect
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:32,1
    - Dst: '&mut Unstructured::choose_index'
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:36,1
    - Dst: len
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:36,1
    - Dst: unwrap_or
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:36,1
    - Dst: collect
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - u
    argTypes:
    - '&mut Unstructured'
    constantsTouched: []
    func_position:
      end: 39
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 39
    functionName: arbitrary_path
    functionSourceFile: /src/zip/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - '&str::chars'
    - '&mut Unstructured::choose_index'
    - '&mut Unstructured::int_in_range'
    - collect
    - Ok
    - map
    - chain
    - len
    - unwrap_or
    linkageType: ''
    returnType: arbitrary::Result
    signature: 'fn arbitrary_path(u: &mut Unstructured) -> arbitrary::Result<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:50,1
    - Dst: u8::arbitrary
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:50,1
    - Dst: '&mut Unstructured<''a>::int_in_range'
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:53,1
    - Dst: ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:53,1
    - Dst: '&mut Unstructured<''a>::int_in_range'
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:57,1
    - Dst: ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:57,1
    - Dst: '&mut Unstructured<''a>::int_in_range'
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:61,1
    - Dst: ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:61,1
    - Dst: '&mut Unstructured<''a>::int_in_range'
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:65,1
    - Dst: ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - u
    argTypes:
    - '&mut Unstructured<''a>'
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: Compression::arbitrary
    functionSourceFile: /src/zip/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - Ok
    - ok
    - u8::arbitrary
    - '&mut Unstructured<''a>::int_in_range'
    linkageType: ''
    returnType: arbitrary::Result
    signature: 'fn arbitrary(u: &mut Unstructured<''a>) -> arbitrary::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::<u8>::arbitrary
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:72,1
    - Dst: zip::result::ZipResult::len
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:73,1
    - Dst: Err
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:74,1
    - Dst: Ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - u
    argTypes:
    - '&mut Unstructured'
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: arbitrary_file
    functionSourceFile: /src/zip/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - Vec::<u8>::arbitrary
    - Ok
    - zip::result::ZipResult::len
    - Err
    linkageType: ''
    returnType: arbitrary::Result
    signature: 'fn arbitrary_file(u: &mut Unstructured) -> arbitrary::Result<Vec<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:112,1
    - Dst: clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:112,1
    - Dst: Some
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:113,1
    - Dst: clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:113,1
    - Dst: Some
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:114,1
    - Dst: ZipResult::clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 3
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: ZipEntry::path
    functionSourceFile: /src/zip/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - ZipResult::clone
    - clone
    - Some
    linkageType: ''
    returnType: Option
    signature: fn path(&self) -> Option<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::<ZipEntry>::arbitrary
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:127,1
    - Dst: std::collections::HashSet::new
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:128,1
    - Dst: Vec::new
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:129,1
    - Dst: iter
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:130,1
    - Dst: path
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:131,1
    - Dst: contains
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:132,1
    - Dst: Self::push
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:135,1
    - Dst: clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:135,1
    - Dst: insert
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:136,1
    - Dst: ZipResult::clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:136,1
    - Dst: Self::push
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:139,1
    - Dst: clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:139,1
    - Dst: Ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - u
    argTypes:
    - '&mut Unstructured<''a>'
    constantsTouched: []
    func_position:
      end: 145
      start: 126
    functionDepth: 10
    functionLinenumber: 126
    functionLinenumberEnd: 145
    functionName: Operations::arbitrary
    functionSourceFile: /src/zip/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - std::collections::HashSet::new
    - iter
    - Vec::<ZipEntry>::arbitrary
    - clone
    - Vec::new
    - insert
    - Self::push
    - Ok
    - ZipResult::clone
    - path
    - contains
    linkageType: ''
    returnType: arbitrary::Result
    signature: 'fn arbitrary(u: &mut Unstructured<''a>) -> arbitrary::Result<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zip::ZipWriter::new
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:155,1
    - Dst: std::io::Cursor::new
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:155,1
    - Dst: std::collections::HashSet::new
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:157,1
    - Dst: '&Vec<ZipEntry>::iter'
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:158,1
    - Dst: Self::contains
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:162,1
    - Dst: Self::insert
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:165,1
    - Dst: clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:165,1
    - Dst: FileOptions::default
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:167,1
    - Dst: Self::compression_method
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:167,1
    - Dst: FileOptions::compression_level
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:167,1
    - Dst: FileOptions::large_file
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:167,1
    - Dst: FileOptions::unix_permissions
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:167,1
    - Dst: start_file_aligned
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:173,1
    - Dst: clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:173,1
    - Dst: start_file
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:175,1
    - Dst: clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:175,1
    - Dst: write
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:178,1
    - Dst: set_raw_comment
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:180,1
    - Dst: to_vec
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:180,1
    - Dst: set_comment
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:181,1
    - Dst: Self::contains
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:183,1
    - Dst: Self::insert
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:186,1
    - Dst: clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:186,1
    - Dst: FileOptions::default
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:188,1
    - Dst: add_symlink
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:189,1
    - Dst: Self::contains
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:192,1
    - Dst: Self::insert
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:195,1
    - Dst: ZipResult::clone
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:195,1
    - Dst: FileOptions::default
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:197,1
    - Dst: add_directory
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:198,1
    - Dst: Ok
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:203,1
    - Dst: finish
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:203,1
    - Dst: get_ref
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:203,1
    - Dst: to_vec
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:203,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 114
    argCount: 1
    argNames:
    - zip_entries
    argTypes:
    - '&Vec<ZipEntry>'
    constantsTouched: []
    func_position:
      end: 204
      start: 148
    functionDepth: 10
    functionLinenumber: 148
    functionLinenumberEnd: 204
    functionName: build_zip
    functionSourceFile: /src/zip/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - std::collections::HashSet::new
    - std::io::Cursor::new
    - Self::compression_method
    - clone
    - FileOptions::large_file
    - '&Vec<ZipEntry>::iter'
    - set_raw_comment
    - FileOptions::unix_permissions
    - add_directory
    - get_ref
    - to_vec
    - write
    - Self::insert
    - start_file_aligned
    - FileOptions::compression_level
    - ZipResult::clone
    - FileOptions::default
    - Self::contains
    - add_symlink
    - Ok
    - start_file
    - zip::ZipWriter::new
    - finish
    - set_comment
    linkageType: ''
    returnType: Result
    signature: 'fn build_zip(zip_entries: &Vec<ZipEntry>) -> Result<Vec<u8>, ZipError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_zip
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:2,1
    - Dst: zip::ZipArchive::new
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:3,1
    - Dst: std::io::Cursor::new
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:3,1
    - Dst: zip::result::ZipResult::len
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:5,1
    - Dst: zip::result::ZipResult::by_index
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:6,1
    - Dst: ZipResult::expect
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:6,1
    - Dst: std::io::copy
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:9,1
    - Dst: std::io::sink
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:9,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:13,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:14,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:18,1
    - Dst: std::hint::black_box
      Src: /src/zip/fuzz/fuzz_targets/roundtrip.rs:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 206
    functionDepth: 11
    functionLinenumber: 206
    functionLinenumberEnd: 227
    functionName: fuzz_target
    functionSourceFile: /src/zip/fuzz/fuzz_targets/roundtrip.rs
    functionUses: 0
    functionsReached:
    - std::io::Cursor::new
    - std::io::sink
    - std::io::copy
    - zip::ZipArchive::new
    - std::hint::black_box
    - build_zip
    - zip::result::ZipResult::by_index
    - zip::result::ZipResult::len
    - ZipResult::expect
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::process::exit
      Src: /src/zip/examples/write_dir.rs:12,1
    - Dst: real_main
      Src: /src/zip/examples/write_dir.rs:12,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 11
    functionDepth: 13
    functionLinenumber: 11
    functionLinenumberEnd: 13
    functionName: main
    functionSourceFile: /src/zip/examples/write_dir.rs
    functionUses: 1
    functionsReached:
    - real_main
    - std::process::exit
    linkageType: ''
    returnType: void
    signature: fn main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::env::args
      Src: /src/zip/examples/write_dir.rs:41,1
    - Dst: collect
      Src: /src/zip/examples/write_dir.rs:41,1
    - Dst: len
      Src: /src/zip/examples/write_dir.rs:42,1
    - Dst: iter
      Src: /src/zip/examples/write_dir.rs:52,1
    - Dst: FileOptions::is_none
      Src: /src/zip/examples/write_dir.rs:53,1
    - Dst: doit
      Src: /src/zip/examples/write_dir.rs:56,1
    - Dst: FileOptions::unwrap
      Src: /src/zip/examples/write_dir.rs:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 40
    functionDepth: 12
    functionLinenumber: 40
    functionLinenumberEnd: 63
    functionName: real_main
    functionSourceFile: /src/zip/examples/write_dir.rs
    functionUses: 1
    functionsReached:
    - iter
    - collect
    - doit
    - FileOptions::is_none
    - FileOptions::unwrap
    - std::env::args
    - len
    linkageType: ''
    returnType: i32
    signature: fn real_main() -> i32
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Path::new
      Src: /src/zip/examples/write_dir.rs:112,1
    - Dst: Self::is_dir
      Src: /src/zip/examples/write_dir.rs:112,1
    - Dst: Err
      Src: /src/zip/examples/write_dir.rs:113,1
    - Dst: Path::new
      Src: /src/zip/examples/write_dir.rs:116,1
    - Dst: File::create
      Src: /src/zip/examples/write_dir.rs:117,1
    - Dst: unwrap
      Src: /src/zip/examples/write_dir.rs:117,1
    - Dst: WalkDir::new
      Src: /src/zip/examples/write_dir.rs:119,1
    - Dst: Self::into_iter
      Src: /src/zip/examples/write_dir.rs:120,1
    - Dst: zip_dir
      Src: /src/zip/examples/write_dir.rs:122,1
    - Dst: ZipResult::filter_map
      Src: /src/zip/examples/write_dir.rs:122,1
    - Dst: zip::result::ZipResult::ok
      Src: /src/zip/examples/write_dir.rs:122,1
    - Dst: Ok
      Src: /src/zip/examples/write_dir.rs:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - src_dir
    - dst_file
    - method
    argTypes:
    - '&str'
    - '&str'
    - zip::CompressionMethod
    constantsTouched: []
    func_position:
      end: 125
      start: 107
    functionDepth: 11
    functionLinenumber: 107
    functionLinenumberEnd: 125
    functionName: doit
    functionSourceFile: /src/zip/examples/write_dir.rs
    functionUses: 1
    functionsReached:
    - Self::is_dir
    - Path::new
    - zip_dir
    - Err
    - zip::result::ZipResult::ok
    - Self::into_iter
    - ZipResult::filter_map
    - unwrap
    - Ok
    - File::create
    - WalkDir::new
    linkageType: ''
    returnType: zip::result::ZipResult
    signature: 'fn doit(src_dir: &str,dst_file: &str,method: zip::CompressionMethod,)
      -> zip::result::ZipResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: zip::ZipWriter::new
      Src: /src/zip/examples/write_dir.rs:74,1
    - Dst: FileOptions::default
      Src: /src/zip/examples/write_dir.rs:75,1
    - Dst: Self::compression_method
      Src: /src/zip/examples/write_dir.rs:75,1
    - Dst: FileOptions::unix_permissions
      Src: /src/zip/examples/write_dir.rs:75,1
    - Dst: Vec::new
      Src: /src/zip/examples/write_dir.rs:79,1
    - Dst: ZipResult::path
      Src: /src/zip/examples/write_dir.rs:81,1
    - Dst: ZipResult::strip_prefix
      Src: /src/zip/examples/write_dir.rs:82,1
    - Dst: Path::new
      Src: /src/zip/examples/write_dir.rs:82,1
    - Dst: unwrap
      Src: /src/zip/examples/write_dir.rs:82,1
    - Dst: ZipResult::is_file
      Src: /src/zip/examples/write_dir.rs:86,1
    - Dst: start_file_from_path
      Src: /src/zip/examples/write_dir.rs:89,1
    - Dst: File::open
      Src: /src/zip/examples/write_dir.rs:90,1
    - Dst: read_to_end
      Src: /src/zip/examples/write_dir.rs:92,1
    - Dst: write_all
      Src: /src/zip/examples/write_dir.rs:93,1
    - Dst: Self::clear
      Src: /src/zip/examples/write_dir.rs:94,1
    - Dst: Option::as_os_str
      Src: /src/zip/examples/write_dir.rs:95,1
    - Dst: is_empty
      Src: /src/zip/examples/write_dir.rs:95,1
    - Dst: add_directory_from_path
      Src: /src/zip/examples/write_dir.rs:100,1
    - Dst: finish
      Src: /src/zip/examples/write_dir.rs:103,1
    - Dst: Result::Ok
      Src: /src/zip/examples/write_dir.rs:104,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 57
    argCount: 4
    argNames:
    - it
    - prefix
    - writer
    - method
    argTypes:
    - '&mut dyn Iterator<Item = DirEntry>'
    - '&str'
    - T
    - zip::CompressionMethod
    constantsTouched: []
    func_position:
      end: 105
      start: 65
    functionDepth: 10
    functionLinenumber: 65
    functionLinenumberEnd: 105
    functionName: zip_dir
    functionSourceFile: /src/zip/examples/write_dir.rs
    functionUses: 1
    functionsReached:
    - read_to_end
    - Self::compression_method
    - ZipResult::is_file
    - FileOptions::unix_permissions
    - add_directory_from_path
    - is_empty
    - ZipResult::strip_prefix
    - FileOptions::default
    - start_file_from_path
    - Path::new
    - Self::clear
    - File::open
    - ZipResult::path
    - zip::ZipWriter::new
    - Option::as_os_str
    - finish
    - write_all
    - Result::Ok
    - Vec::new
    - unwrap
    linkageType: ''
    returnType: zip::result::ZipResult
    signature: 'fn zip_dir<T>(it: &mut dyn Iterator<Item = DirEntry>,prefix: &str,writer:
      T,method: zip::CompressionMethod,) -> zip::result::ZipResult<()>whereT: Write
      + Seek,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/zip/benches/read_entry.rs:10,1
    - Dst: ZipWriter::new
      Src: /src/zip/benches/read_entry.rs:11,1
    - Dst: Cursor::new
      Src: /src/zip/benches/read_entry.rs:11,1
    - Dst: zip::write::FileOptions::default
      Src: /src/zip/benches/read_entry.rs:13,1
    - Dst: Self::compression_method
      Src: /src/zip/benches/read_entry.rs:13,1
    - Dst: ZipWriter::start_file
      Src: /src/zip/benches/read_entry.rs:15,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/benches/read_entry.rs:15,1
    - Dst: getrandom::getrandom
      Src: /src/zip/benches/read_entry.rs:17,1
    - Dst: unwrap
      Src: /src/zip/benches/read_entry.rs:17,1
    - Dst: ZipWriter::write_all
      Src: /src/zip/benches/read_entry.rs:18,1
    - Dst: unwrap
      Src: /src/zip/benches/read_entry.rs:18,1
    - Dst: ZipWriter::finish
      Src: /src/zip/benches/read_entry.rs:20,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/benches/read_entry.rs:20,1
    - Dst: W::into_inner
      Src: /src/zip/benches/read_entry.rs:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 21
      start: 9
    functionDepth: 9
    functionLinenumber: 9
    functionLinenumberEnd: 21
    functionName: generate_random_archive
    functionSourceFile: /src/zip/benches/read_entry.rs
    functionUses: 2
    functionsReached:
    - W::into_inner
    - ZipResult::unwrap
    - Cursor::new
    - Self::compression_method
    - ZipWriter::write_all
    - Vec::new
    - ZipWriter::new
    - getrandom::getrandom
    - unwrap
    - ZipWriter::finish
    - zip::write::FileOptions::default
    - ZipWriter::start_file
    linkageType: ''
    returnType: Vec
    signature: 'fn generate_random_archive(size: usize) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: generate_random_archive
      Src: /src/zip/benches/read_metadata.rs:29,1
    - Dst: '&mut Bencher::iter'
      Src: /src/zip/benches/read_metadata.rs:31,1
    - Dst: ZipArchive::new
      Src: /src/zip/benches/read_metadata.rs:32,1
    - Dst: Cursor::new
      Src: /src/zip/benches/read_metadata.rs:32,1
    - Dst: Vec::as_slice
      Src: /src/zip/benches/read_metadata.rs:32,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/benches/read_metadata.rs:32,1
    - Dst: zip::result::ZipResult::len
      Src: /src/zip/benches/read_metadata.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - bench
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 10
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: read_metadata
    functionSourceFile: /src/zip/benches/read_metadata.rs
    functionUses: 0
    functionsReached:
    - ZipResult::unwrap
    - Cursor::new
    - ZipArchive::new
    - generate_random_archive
    - '&mut Bencher::iter'
    - Vec::as_slice
    - zip::result::ZipResult::len
    linkageType: ''
    returnType: void
    signature: 'fn read_metadata(bench: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: generate_random_archive
      Src: /src/zip/benches/read_entry.rs:25,1
    - Dst: ZipArchive::new
      Src: /src/zip/benches/read_entry.rs:26,1
    - Dst: Cursor::new
      Src: /src/zip/benches/read_entry.rs:26,1
    - Dst: Vec::as_slice
      Src: /src/zip/benches/read_entry.rs:26,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/benches/read_entry.rs:26,1
    - Dst: '&mut Bencher::iter'
      Src: /src/zip/benches/read_entry.rs:28,1
    - Dst: zip::result::ZipResult::by_name
      Src: /src/zip/benches/read_entry.rs:29,1
    - Dst: ZipResult::unwrap
      Src: /src/zip/benches/read_entry.rs:29,1
    - Dst: zip::result::ZipResult::read
      Src: /src/zip/benches/read_entry.rs:32,1
    - Dst: io::Result::unwrap
      Src: /src/zip/benches/read_entry.rs:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 1
    argNames:
    - bench
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 10
    functionLinenumber: 23
    functionLinenumberEnd: 40
    functionName: read_entry
    functionSourceFile: /src/zip/benches/read_entry.rs
    functionUses: 0
    functionsReached:
    - zip::result::ZipResult::read
    - ZipResult::unwrap
    - Cursor::new
    - ZipArchive::new
    - generate_random_archive
    - '&mut Bencher::iter'
    - io::Result::unwrap
    - Vec::as_slice
    - zip::result::ZipResult::by_name
    linkageType: ''
    returnType: void
    signature: 'fn read_entry(bench: &mut Bencher)'
Fuzzer filename: /src/zip/fuzz/fuzz_targets/roundtrip.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - end_to_end
  - copy
  - append
  - write_test_archive
  - check_test_archive
  - read_archive_file
  - check_archive_file
  - check_archive_file_contents
  source_file: /src/zip/tests/end_to_end.rs
- function_names:
  - Zip64File::new
  - Zip64File::seek
  - Zip64File::read
  - zip64_large
  source_file: /src/zip/tests/zip64_large.rs
- function_names:
  - encrypting_file
  - encrypted_file
  source_file: /src/zip/tests/zip_crypto.rs
- function_names:
  - invalid_header
  source_file: /src/zip/tests/issue_234.rs
- function_names:
  - invalid_date
  source_file: /src/zip/tests/invalid_date.rs
- function_names:
  - correctly_handle_zip_with_garbage_after_comment
  source_file: /src/zip/tests/zip_comment_garbage.rs
- function_names:
  - aes256_encrypted_uncompressed_file
  - aes256_encrypted_file
  - aes192_encrypted_file
  - aes128_encrypted_file
  source_file: /src/zip/tests/aes_encryption.rs
- function_names:
  - System::from_u8
  - DateTime::default
  - DateTime::from_msdos
  - DateTime::from_date_and_time
  - DateTime::from_time
  - DateTime::timepart
  - DateTime::datepart
  - DateTime::to_time
  - DateTime::year
  - DateTime::month
  - DateTime::day
  - DateTime::hour
  - DateTime::minute
  - DateTime::second
  - DateTime::try_from
  - AtomicU64::new
  - AtomicU64::load
  - AtomicU64::store
  - AtomicU64::get_mut
  - AtomicU64::clone
  - ZipFileData::file_name_sanitized
  - ZipFileData::enclosed_name
  - ZipFileData::unix_mode
  - ZipFileData::zip64_extension
  - ZipFileData::version_needed
  - AesMode::salt_length
  - AesMode::key_length
  - test::system
  - test::sanitize
  - test::datetime_default
  - test::datetime_max
  - test::datetime_bounds
  - test::datetime_try_from_bounds
  - test::time_conversion
  - test::time_out_of_bounds
  - test::time_at_january
  source_file: /src/zip/src/types.rs
- function_names:
  - CentralDirectoryEnd::record_too_small
  - CentralDirectoryEnd::parse
  - CentralDirectoryEnd::find_and_parse
  - CentralDirectoryEnd::write
  - Zip64CentralDirectoryEndLocator::parse
  - Zip64CentralDirectoryEndLocator::write
  - Zip64CentralDirectoryEnd::find_and_parse
  - Zip64CentralDirectoryEnd::write
  source_file: /src/zip/src/spec.rs
- function_names: []
  source_file: /src/zip/src/unstable.rs
- function_names:
  - CryptoReader::read
  - CryptoReader::into_inner
  - CryptoReader::is_ae2_encrypted
  - ZipFileReader::read
  - ZipFileReader::into_inner
  - find_content
  - make_crypto_reader
  - make_reader
  - ZipArchive::get_directory_counts
  - ZipArchive::new
  - ZipArchive::extract
  - ZipArchive::len
  - ZipArchive::is_empty
  - ZipArchive::offset
  - ZipArchive::comment
  - ZipArchive::file_names
  - ZipArchive::by_name_decrypt
  - ZipArchive::by_name
  - ZipArchive::by_name_with_optional_password
  - ZipArchive::by_index_decrypt
  - ZipArchive::by_index
  - ZipArchive::by_index_raw
  - ZipArchive::by_index_with_optional_password
  - ZipArchive::into_inner
  - unsupported_zip_error
  - central_header_to_zip_file
  - central_header_to_zip_file_inner
  - parse_extra_field
  - ZipFile::get_reader
  - ZipFile::get_raw_reader
  - ZipFile::version_made_by
  - ZipFile::name
  - ZipFile::name_raw
  - ZipFile::sanitized_name
  - ZipFile::mangled_name
  - ZipFile::enclosed_name
  - ZipFile::comment
  - ZipFile::compression
  - ZipFile::compressed_size
  - ZipFile::size
  - ZipFile::last_modified
  - ZipFile::is_dir
  - ZipFile::is_file
  - ZipFile::unix_mode
  - ZipFile::crc32
  - ZipFile::extra_data
  - ZipFile::data_start
  - ZipFile::header_start
  - ZipFile::central_header_start
  - ZipFile::read
  - ZipFile::drop
  - read_zipfile_from_stream
  - test::invalid_offset
  - test::invalid_offset2
  - test::zip64_with_leading_junk
  - test::zip_contents
  - test::zip_read_streaming
  - test::zip_clone
  - test::file_and_dir_predicates
  - test::invalid_cde_number_of_files_allocation_smaller_offset
  - test::invalid_cde_number_of_files_allocation_greater_offset
  source_file: /src/zip/src/read.rs
- function_names:
  - ZipCryptoKeys::new
  - ZipCryptoKeys::update
  - ZipCryptoKeys::stream_byte
  - ZipCryptoKeys::decrypt_byte
  - ZipCryptoKeys::encrypt_byte
  - ZipCryptoKeys::crc32
  - ZipCryptoKeys::derive
  - ZipCryptoReader::new
  - ZipCryptoReader::validate
  - ZipCryptoWriter::finish
  - ZipCryptoWriter::write
  - ZipCryptoWriter::flush
  - ZipCryptoReaderValid::read
  - ZipCryptoReaderValid::into_inner
  source_file: /src/zip/src/zipcrypto.rs
- function_names:
  - '&''a [u8]::from_cp437'
  - Vec::from_cp437
  - to_char
  - test::to_char_valid
  - test::ascii
  - test::example_slice
  - test::example_vec
  source_file: /src/zip/src/cp437.rs
- function_names:
  - InvalidPassword::fmt
  - ZipError::from
  - ZipError::fmt
  - ZipError::source
  - io::Error::from
  - DateTimeRangeError::fmt
  source_file: /src/zip/src/result.rs
- function_names:
  - CompressionMethod::from_u16
  - CompressionMethod::to_u16
  - CompressionMethod::fmt
  - test::from_eq_to
  - t::e::s::t::::::::t::o::_::e::q::_::f::r::o::m::check_match
  - test::to_eq_from
  - t::e::s::t::::::::t::o::_::d::i::s::p::l::a::y::_::f::m::t::check_match
  - test::to_display_fmt
  source_file: /src/zip/src/compression.rs
- function_names:
  - AesCtrZipKeyStream::fmt
  - AesCtrZipKeyStream::new
  - AesCtrZipKeyStream::crypt_in_place
  - xor
  - tests::roundtrip
  - tests::new_with_wrong_key_size
  - tests::crypt_aes_256_0_byte
  - tests::crypt_aes_128_5_byte
  - tests::crypt_aes_192_5_byte
  - tests::crypt_aes_256_5_byte
  - tests::crypt_aes_128_40_byte
  - tests::crypt_aes_192_40_byte
  - tests::crypt_aes_256_40_byte
  source_file: /src/zip/src/aes_ctr.rs
- function_names:
  - Crc32Reader::new
  - Crc32Reader::check_matches
  - Crc32Reader::into_inner
  - Crc32Reader::read
  - test::test_empty_reader
  - test::test_byte_by_byte
  - test::test_zero_read
  source_file: /src/zip/src/crc32.rs
- function_names:
  - cipher_from_mode
  - AesReader::new
  - AesReader::validate
  - AesReaderValid::read
  - AesReaderValid::into_inner
  source_file: /src/zip/src/aes.rs
- function_names: []
  source_file: /src/zip/src/lib.rs
- function_names:
  - MaybeEncrypted::write
  - MaybeEncrypted::flush
  - FileOptions::compression_method
  - FileOptions::compression_level
  - FileOptions::last_modified_time
  - FileOptions::unix_permissions
  - FileOptions::large_file
  - FileOptions::with_deprecated_encryption
  - FileOptions::default
  - ZipWriter::write
  - ZipWriter::flush
  - ZipWriterStats::update
  - ZipWriter::new_append
  - ZipWriter::new
  - ZipWriter::set_comment
  - ZipWriter::set_raw_comment
  - ZipWriter::start_entry
  - ZipWriter::finish_file
  - ZipWriter::start_file
  - ZipWriter::start_file_from_path
  - ZipWriter::start_file_aligned
  - ZipWriter::start_file_with_extra_data
  - ZipWriter::end_local_start_central_extra_data
  - ZipWriter::end_extra_data
  - ZipWriter::raw_copy_file_rename
  - ZipWriter::raw_copy_file
  - ZipWriter::add_directory
  - ZipWriter::add_directory_from_path
  - ZipWriter::finish
  - ZipWriter::add_symlink
  - ZipWriter::finalize
  - ZipWriter::drop
  - GenericZipWriter::switch_to
  - GenericZipWriter::ref_mut
  - GenericZipWriter::is_closed
  - GenericZipWriter::get_plain
  - GenericZipWriter::current_compression
  - GenericZipWriter::unwrap
  - deflate_compression_level_range
  - bzip2_compression_level_range
  - clamp_opt
  - write_local_file_header
  - update_local_file_header
  - write_central_directory_header
  - validate_extra_data
  - write_local_zip64_extra_field
  - update_local_zip64_extra_field
  - write_central_zip64_extra_field
  - path_to_string
  - test::write_empty_zip
  - test::unix_permissions_bitmask
  - test::write_zip_dir
  - test::write_symlink_simple
  - test::write_symlink_wonky_paths
  - test::write_mimetype_zip
  - test::path_to_string
  source_file: /src/zip/src/write.rs
- function_names:
  - ZipStreamReader::new
  - ZipStreamReader::parse_central_directory
  - ZipStreamReader::visit
  - ZipStreamReader::extract
  - ZipStreamFileMetadata::name
  - ZipStreamFileMetadata::name_raw
  - ZipStreamFileMetadata::mangled_name
  - ZipStreamFileMetadata::enclosed_name
  - ZipStreamFileMetadata::is_dir
  - ZipStreamFileMetadata::is_file
  - ZipStreamFileMetadata::comment
  - ZipStreamFileMetadata::data_start
  - ZipStreamFileMetadata::unix_mode
  - test::invalid_offset
  - test::invalid_offset2
  - test::zip_read_streaming
  - test::file_and_dir_predicates
  - test::invalid_cde_number_of_files_allocation_smaller_offset
  - test::invalid_cde_number_of_files_allocation_greater_offset
  source_file: /src/zip/src/read/stream.rs
- function_names:
  - decompress_all
  - fuzz_target
  source_file: /src/zip/fuzz/fuzz_targets/fuzz_read.rs
- function_names:
  - read_file_attributes
  - fuzzed_extract
  - fuzz_target
  source_file: /src/zip/fuzz/fuzz_targets/structured_fuzz_reader.rs
- function_names:
  - arbitrary_unix_permissions
  - arbitrary_path
  - Compression::arbitrary
  - arbitrary_file
  - ZipEntry::path
  - Operations::arbitrary
  - build_zip
  - fuzz_target
  source_file: /src/zip/fuzz/fuzz_targets/roundtrip.rs
- function_names:
  - fuzz_target
  source_file: /src/zip/fuzz/fuzz_targets/fuzz_zip.rs
- function_names:
  - main
  - real_main
  source_file: /src/zip/examples/file_info.rs
- function_names:
  - main
  - real_main
  source_file: /src/zip/examples/stdin_info.rs
- function_names:
  - main
  - real_main
  - doit
  source_file: /src/zip/examples/write_sample.rs
- function_names:
  - main
  - real_main
  source_file: /src/zip/examples/extract_lorem.rs
- function_names:
  - main
  - real_main
  source_file: /src/zip/examples/extract.rs
- function_names:
  - main
  - real_main
  - zip_dir
  - doit
  source_file: /src/zip/examples/write_dir.rs
- function_names:
  - generate_random_archive
  - read_metadata
  source_file: /src/zip/benches/read_metadata.rs
- function_names:
  - generate_random_archive
  - read_entry
  source_file: /src/zip/benches/read_entry.rs
