All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_keys_and_certs_for_tls_ext
      Src: /src/redis-rs/redis-test/src/utils.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tempdir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: build_keys_and_certs_for_tls
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 0
    functionsReached:
    - build_keys_and_certs_for_tls_ext
    linkageType: ''
    returnType: TlsFilePaths
    signature: 'pub fn build_keys_and_certs_for_tls(tempdir: &TempDir) -> TlsFilePaths'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_keys_and_certs_for_tls_with_hostname
      Src: /src/redis-rs/redis-test/src/utils.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - tempdir
    - with_ip_alts
    argTypes:
    - '&TempDir'
    - bool
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: build_keys_and_certs_for_tls_ext
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 1
    functionsReached:
    - build_keys_and_certs_for_tls_with_hostname
    linkageType: ''
    returnType: TlsFilePaths
    signature: 'pub fn build_keys_and_certs_for_tls_ext(tempdir: &TempDir, with_ip_alts:
      bool) -> TlsFilePaths'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: stdout
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:51,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - name
    - size
    argTypes:
    - S
    - usize
    constantsTouched: []
    func_position:
      end: 56
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 56
    functionName: b::u::i::l::d::_::k::e::y::s::_::a::n::d::_::c::e::r::t::s::_::f::o::r::_::t::l::s::_::w::i::t::h::_::h::o::s::t::n::a::m::e::make_key
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 0
    functionsReached:
    - process::Command::new
    - process::Stdio::piped
    - Self::arg
    - spawn
    - arg
    - wait
    - stdout
    - stderr
    - expect
    linkageType: ''
    returnType: void
    signature: 'fn make_key<S: AsRef<std::ffi::OsStr>>(name: S, size: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:37,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:37,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:38,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:38,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:39,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:39,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:40,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:40,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:41,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:41,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:42,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:42,1
    - Dst: make_key
      Src: /src/redis-rs/redis-test/src/utils.rs:59,1
    - Dst: make_key
      Src: /src/redis-rs/redis-test/src/utils.rs:62,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: stdout
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:79,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:80,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: Option<&str>::unwrap_or
      Src: /src/redis-rs/redis-test/src/utils.rs:90,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis-test/src/utils.rs:94,1
    - Dst: fs::write
      Src: /src/redis-rs/redis-test/src/utils.rs:122,1
    - Dst: Poll::expect
      Src: /src/redis-rs/redis-test/src/utils.rs:122,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: stdout
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:133,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:134,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:125,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:139,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:140,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:156,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:156,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:158,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:158,1
    - Dst: stdin
      Src: /src/redis-rs/redis-test/src/utils.rs:158,1
    - Dst: take
      Src: /src/redis-rs/redis-test/src/utils.rs:161,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:161,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:158,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:158,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:158,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:158,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:167,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 203
    argCount: 3
    argNames:
    - tempdir
    - with_ip_alts
    - dns_hostname
    argTypes:
    - '&TempDir'
    - bool
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 182
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 182
    functionName: build_keys_and_certs_for_tls_with_hostname
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 1
    functionsReached:
    - take
    - process::Command::new
    - fs::write
    - process::Stdio::piped
    - Option<&str>::unwrap_or
    - Self::arg
    - join
    - make_key
    - spawn
    - arg
    - '&str::to_string'
    - Poll::expect
    - '&TempDir::path'
    - stdin
    - wait
    - stdout
    - stderr
    - expect
    linkageType: ''
    returnType: TlsFilePaths
    signature: 'pub fn build_keys_and_certs_for_tls_with_hostname(tempdir: &TempDir,with_ip_alts:
      bool,dns_hostname: Option<&str>,) -> TlsFilePaths'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:193,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:193,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:194,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:194,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:195,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:195,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: stdout
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:203,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:204,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:198,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:215,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:215,1
    - Dst: fs::write
      Src: /src/redis-rs/redis-test/src/utils.rs:220,1
    - Dst: Poll::expect
      Src: /src/redis-rs/redis-test/src/utils.rs:220,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: stdout
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:232,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:233,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:224,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: stdin
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: take
      Src: /src/redis-rs/redis-test/src/utils.rs:255,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:255,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:238,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:261,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 130
    argCount: 4
    argNames:
    - tempdir
    - common_name
    - ca_crt
    - ca_key
    argTypes:
    - '&TempDir'
    - '&str'
    - '&PathBuf'
    - '&PathBuf'
    constantsTouched: []
    func_position:
      end: 275
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 275
    functionName: build_client_cert_with_custom_cn
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 0
    functionsReached:
    - take
    - process::Command::new
    - fs::write
    - process::Stdio::piped
    - Self::arg
    - join
    - spawn
    - arg
    - Poll::expect
    - '&TempDir::path'
    - stdin
    - wait
    - stdout
    - stderr
    - expect
    linkageType: ''
    returnType: ClientCertPaths
    signature: 'pub fn build_client_cert_with_custom_cn(tempdir: &TempDir,common_name:
      &str,ca_crt: &PathBuf,ca_key: &PathBuf,) -> ClientCertPaths'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: 0.0.1:0".parse::<SocketAddr>
      Src: /src/redis-rs/redis-test/src/utils.rs:278,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:278,1
    - Dst: into
      Src: /src/redis-rs/redis-test/src/utils.rs:278,1
    - Dst: Socket::new
      Src: /src/redis-rs/redis-test/src/utils.rs:279,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:279,1
    - Dst: set_reuse_address
      Src: /src/redis-rs/redis-test/src/utils.rs:280,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:280,1
    - Dst: bind
      Src: /src/redis-rs/redis-test/src/utils.rs:281,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:281,1
    - Dst: listen
      Src: /src/redis-rs/redis-test/src/utils.rs:282,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:282,1
    - Dst: TcpListener::from
      Src: /src/redis-rs/redis-test/src/utils.rs:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 284
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 284
    functionName: get_listener_on_free_port
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - Socket::new
    - TcpListener::from
    - listen
    - into
    - 0.0.1:0".parse::<SocketAddr>
    - set_reuse_address
    - bind
    - unwrap
    linkageType: ''
    returnType: TcpListener
    signature: pub fn get_listener_on_free_port() -> TcpListener
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_listener_on_free_port
      Src: /src/redis-rs/redis-test/src/utils.rs:293,1
    - Dst: TcpListener::local_addr
      Src: /src/redis-rs/redis-test/src/utils.rs:294,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:294,1
    - Dst: port
      Src: /src/redis-rs/redis-test/src/utils.rs:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: get_random_available_port
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 0
    functionsReached:
    - port
    - unwrap
    - TcpListener::local_addr
    - get_listener_on_free_port
    linkageType: ''
    returnType: u16
    signature: pub fn get_random_available_port() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:10,1
    - Dst: String::unwrap_or_default
      Src: /src/redis-rs/redis-test/src/server.rs:10,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 15
    functionName: use_protocol
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - env::var
    - String::unwrap_or_default
    linkageType: ''
    returnType: ProtocolVersion
    signature: pub fn use_protocol() -> ProtocolVersion
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis-test/src/server.rs:18,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis-test/src/server.rs:18,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis-test/src/server.rs:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: redis_settings
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - Self::set_protocol
    - RedisConnectionInfo::default
    - use_protocol
    linkageType: ''
    returnType: RedisConnectionInfo
    signature: pub fn redis_settings() -> RedisConnectionInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis-test/src/server.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: get_default_host
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    linkageType: ''
    returnType: String
    signature: pub fn get_default_host() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:62,1
    - Dst: String::ok
      Src: /src/redis-rs/redis-test/src/server.rs:62,1
    - Dst: as_ref
      Src: /src/redis-rs/redis-test/src/server.rs:62,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/server.rs:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 74
    functionName: ServerType::get_intended
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - String::ok
    - as_ref
    - env::var
    - map
    linkageType: ''
    returnType: Self
    signature: fn get_intended() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::stop
      Src: /src/redis-rs/redis-test/src/server.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: RedisServer::drop
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - RedisServer::stop
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/redis-rs/redis-test/src/server.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: RedisServer::default
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules
      Src: /src/redis-rs/redis-test/src/server.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: RedisServer::new
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - Self::with_modules
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules
      Src: /src/redis-rs/redis-test/src/server.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: RedisServer::new_with_mtls
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - Self::with_modules
    linkageType: ''
    returnType: Self
    signature: pub fn new_with_mtls() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read_to_string
      Src: /src/redis-rs/redis-test/src/server.rs:99,1
    - Dst: clone
      Src: /src/redis-rs/redis-test/src/server.rs:99,1
    - Dst: ok
      Src: /src/redis-rs/redis-test/src/server.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: RedisServer::log_file_contents
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - std::fs::read_to_string
    - clone
    - ok
    linkageType: ''
    returnType: Option
    signature: pub fn log_file_contents(&self) -> Option<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ServerType::get_intended
      Src: /src/redis-rs/redis-test/src/server.rs:103,1
    - Dst: get_default_host
      Src: /src/redis-rs/redis-test/src/server.rs:108,1
    - Dst: redis::ConnectionAddr::Tcp
      Src: /src/redis-rs/redis-test/src/server.rs:114,1
    - Dst: get_default_host
      Src: /src/redis-rs/redis-test/src/server.rs:114,1
    - Dst: rand::random::<(u64, u64)>
      Src: /src/redis-rs/redis-test/src/server.rs:118,1
    - Dst: redis::ConnectionAddr::Unix
      Src: /src/redis-rs/redis-test/src/server.rs:120,1
    - Dst: PathBuf::from
      Src: /src/redis-rs/redis-test/src/server.rs:120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - port
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: RedisServer::get_addr
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - rand::random::<(u64, u64)>
    - redis::ConnectionAddr::Unix
    - redis::ConnectionAddr::Tcp
    - PathBuf::from
    - ServerType::get_intended
    - get_default_host
    linkageType: ''
    returnType: ConnectionAddr
    signature: 'pub fn get_addr(port: u16) -> ConnectionAddr'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: utils::get_random_available_port
      Src: /src/redis-rs/redis-test/src/server.rs:128,1
    - Dst: Self::get_addr
      Src: /src/redis-rs/redis-test/src/server.rs:129,1
    - Dst: Self::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/server.rs:131,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/server.rs:139,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - modules
    - mtls_enabled
    argTypes:
    - '&[Module]'
    - bool
    constantsTouched: []
    func_position:
      end: 143
      start: 125
    functionDepth: 4
    functionLinenumber: 125
    functionLinenumberEnd: 143
    functionName: RedisServer::with_modules
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - utils::get_random_available_port
    - unwrap_or_else
    - Self::new_with_addr_tls_modules_and_spawner
    - Cmd::spawn
    - Self::get_addr
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_modules(modules: &[Module], mtls_enabled: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/server.rs:150,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/server.rs:158,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - addr
    - modules
    - mtls_enabled
    argTypes:
    - redis::ConnectionAddr
    - '&[Module]'
    - bool
    constantsTouched: []
    func_position:
      end: 162
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 162
    functionName: RedisServer::new_with_addr_and_modules
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - Cmd::spawn
    - Self::new_with_addr_tls_modules_and_spawner
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_addr_and_modules(addr: redis::ConnectionAddr,modules:
      &[Module],mtls_enabled: bool,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:175,1
    - Dst: String::unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:175,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis-test/src/server.rs:175,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/server.rs:176,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:179,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:184,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:184,1
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:191,1
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:194,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:209,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:209,1
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:212,1
    - Dst: String::expect
      Src: /src/redis-rs/redis-test/src/server.rs:212,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:216,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:216,1
    - Dst: Self::stdout
      Src: /src/redis-rs/redis-test/src/server.rs:221,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/server.rs:222,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/server.rs:221,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/server.rs:223,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/server.rs:224,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/server.rs:224,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/server.rs:224,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/server.rs:224,1
    - Dst: Self::log_file
      Src: /src/redis-rs/redis-test/src/server.rs:228,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:229,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:229,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis-test/src/server.rs:229,1
    - Dst: get_major_version
      Src: /src/redis-rs/redis-test/src/server.rs:230,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:231,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:231,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:235,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:235,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/server.rs:237,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:235,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:235,1
    - Dst: spawner
      Src: /src/redis-rs/redis-test/src/server.rs:242,1
    - Dst: Option<TlsFilePaths>::unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:250,1
    - Dst: utils::build_keys_and_certs_for_tls
      Src: /src/redis-rs/redis-test/src/server.rs:250,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: TcpListener::to_string
      Src: /src/redis-rs/redis-test/src/server.rs:257,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:255,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:275,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:275,1
    - Dst: String::clone
      Src: /src/redis-rs/redis-test/src/server.rs:282,1
    - Dst: spawner
      Src: /src/redis-rs/redis-test/src/server.rs:289,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/server.rs:293,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:297,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:297,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:297,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:297,1
    - Dst: spawner
      Src: /src/redis-rs/redis-test/src/server.rs:303,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 160
    argCount: 7
    argNames:
    - addr
    - config_file
    - tls_paths
    - mtls_enabled
    - cert_auth_field
    - modules
    - spawner
    argTypes:
    - redis::ConnectionAddr
    - Option<&Path>
    - Option<TlsFilePaths>
    - bool
    - Option<&str>
    - '&[Module]'
    - F
    constantsTouched: []
    func_position:
      end: 312
      start: 164
    functionDepth: 5
    functionLinenumber: 164
    functionLinenumberEnd: 312
    functionName: RedisServer::new_with_addr_tls_modules_and_spawner
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - to_string
    - process::Stdio::piped
    - '&str::to_string'
    - Option<TlsFilePaths>::unwrap_or_else
    - Some
    - process::Command::new
    - RedisResult::prefix
    - utils::build_keys_and_certs_for_tls
    - spawner
    - tempfile::Builder::new
    - get_major_version
    - String::expect
    - Self::log_file
    - arg
    - PathBuf::clone
    - String::unwrap_or_else
    - String::clone
    - tempdir
    - Self::stdout
    - stderr
    - TcpListener::to_string
    - expect
    - env::var
    - Self::arg
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_addr_tls_modules_and_spawner<F: FnOnce(&mut process::Command)
      -> process::Child,>(addr: redis::ConnectionAddr,config_file: Option<&Path>,tls_paths:
      Option<TlsFilePaths>,mtls_enabled: bool,cert_auth_field: Option<&str>,modules:
      &[Module],spawner: F,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: RedisServer::client_addr
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&redis::ConnectionAddr'
    signature: pub fn client_addr(&self) -> &redis::ConnectionAddr
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/server.rs:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 325
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 325
    functionName: RedisServer::host_and_port
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn host_and_port(&self) -> Option<(&str, u16)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::client_addr
      Src: /src/redis-rs/redis-test/src/server.rs:328,1
    - Dst: '&redis::ConnectionAddr::clone'
      Src: /src/redis-rs/redis-test/src/server.rs:328,1
    - Dst: Self::into_connection_info
      Src: /src/redis-rs/redis-test/src/server.rs:328,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:328,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis-test/src/server.rs:328,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis-test/src/server.rs:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 10
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: RedisServer::connection_info
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - redis_settings
    - RedisServer::client_addr
    - Self::into_connection_info
    - '&redis::ConnectionAddr::clone'
    - set_redis_settings
    - RedisResult::unwrap
    linkageType: ''
    returnType: redis::ConnectionInfo
    signature: pub fn connection_info(&self) -> redis::ConnectionInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kill
      Src: /src/redis-rs/redis-test/src/server.rs:336,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/server.rs:337,1
    - Dst: RedisServer::client_addr
      Src: /src/redis-rs/redis-test/src/server.rs:338,1
    - Dst: fs::remove_file
      Src: /src/redis-rs/redis-test/src/server.rs:339,1
    - Dst: ok
      Src: /src/redis-rs/redis-test/src/server.rs:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 341
    functionName: RedisServer::stop
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 1
    functionsReached:
    - RedisServer::client_addr
    - ok
    - fs::remove_file
    - wait
    - kill
    linkageType: ''
    returnType: void
    signature: pub fn stop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/server.rs:344,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/server.rs:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tempdir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 345
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 345
    functionName: RedisServer::log_file
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - '&TempDir::path'
    - join
    linkageType: ''
    returnType: PathBuf
    signature: 'pub fn log_file(tempdir: &TempDir) -> PathBuf'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis-test/src/server.rs:349,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/server.rs:350,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis-test/src/server.rs:350,1
    - Dst: output
      Src: /src/redis-rs/redis-test/src/server.rs:350,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:350,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:349,1
    - Dst: split_once
      Src: /src/redis-rs/redis-test/src/server.rs:357,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:357,1
    - Dst: split_once
      Src: /src/redis-rs/redis-test/src/server.rs:358,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:358,1
    - Dst: parse
      Src: /src/redis-rs/redis-test/src/server.rs:359,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - server_binary
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 360
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 360
    functionName: get_major_version
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 1
    functionsReached:
    - process::Command::new
    - String::from_utf8
    - Self::arg
    - output
    - split_once
    - unwrap
    - parse
    linkageType: ''
    returnType: u8
    signature: 'fn get_major_version(server_binary: &str) -> u8'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/redis-rs/redis-test/src/sentinel.rs:37,1
    - Dst: host_and_port
      Src: /src/redis-rs/redis-test/src/sentinel.rs:38,1
    - Dst: Command::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:42,1
    - Dst: Self::args
      Src: /src/redis-rs/redis-test/src/sentinel.rs:42,1
    - Dst: TcpListener::to_string
      Src: /src/redis-rs/redis-test/src/sentinel.rs:43,1
    - Dst: output
      Src: /src/redis-rs/redis-test/src/sentinel.rs:42,1
    - Dst: is_empty
      Src: /src/redis-rs/redis-test/src/sentinel.rs:50,1
    - Dst: Command::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:57,1
    - Dst: Self::args
      Src: /src/redis-rs/redis-test/src/sentinel.rs:57,1
    - Dst: TcpListener::to_string
      Src: /src/redis-rs/redis-test/src/sentinel.rs:58,1
    - Dst: output
      Src: /src/redis-rs/redis-test/src/sentinel.rs:57,1
    - Dst: is_empty
      Src: /src/redis-rs/redis-test/src/sentinel.rs:65,1
    - Dst: Command::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:72,1
    - Dst: Self::args
      Src: /src/redis-rs/redis-test/src/sentinel.rs:72,1
    - Dst: TcpListener::to_string
      Src: /src/redis-rs/redis-test/src/sentinel.rs:75,1
    - Dst: output
      Src: /src/redis-rs/redis-test/src/sentinel.rs:72,1
    - Dst: is_empty
      Src: /src/redis-rs/redis-test/src/sentinel.rs:86,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 70
    argCount: 1
    argNames:
    - master_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 97
      start: 34
    functionDepth: 8
    functionLinenumber: 34
    functionLinenumberEnd: 97
    functionName: RedisSentinelCluster::log_sentinel_state_via_cli
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::args
    - output
    - Command::new
    - is_empty
    - host_and_port
    - TcpListener::to_string
    - first
    linkageType: ''
    returnType: void
    signature: 'pub fn log_sentinel_state_via_cli(&self, master_name: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:102,1
    - Dst: Self::args
      Src: /src/redis-rs/redis-test/src/sentinel.rs:102,1
    - Dst: TcpListener::to_string
      Src: /src/redis-rs/redis-test/src/sentinel.rs:103,1
    - Dst: output
      Src: /src/redis-rs/redis-test/src/sentinel.rs:102,1
    - Dst: is_empty
      Src: /src/redis-rs/redis-test/src/sentinel.rs:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - port
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 118
      start: 99
    functionDepth: 8
    functionLinenumber: 99
    functionLinenumberEnd: 118
    functionName: RedisSentinelCluster::log_redis_state_via_cli
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::args
    - output
    - Command::new
    - TcpListener::to_string
    - is_empty
    linkageType: ''
    returnType: void
    signature: 'pub fn log_redis_state_via_cli(&self, port: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - port
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 3
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: get_addr
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - RedisServer::get_addr
    linkageType: ''
    returnType: ConnectionAddr
    signature: 'fn get_addr(port: u16) -> ConnectionAddr'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/sentinel.rs:137,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:138,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:140,1
    - Dst: '&TlsFilePaths::clone'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:140,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:146,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:146,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:147,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:148,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:148,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:150,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:150,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/sentinel.rs:151,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 4
    argNames:
    - port
    - dir
    - tlspaths
    - modules
    argTypes:
    - u16
    - '&TempDir'
    - '&TlsFilePaths'
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 154
      start: 131
    functionDepth: 6
    functionLinenumber: 131
    functionLinenumberEnd: 154
    functionName: spawn_master_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - Cmd::arg
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - get_addr
    - '&TempDir::path'
    - '&TlsFilePaths::clone'
    - unwrap
    - Cmd::current_dir
    - Some
    - Cmd::spawn
    linkageType: ''
    returnType: RedisServer
    signature: 'fn spawn_master_server(port: u16,dir: &TempDir,tlspaths: &TlsFilePaths,modules:
      &[Module],) -> RedisServer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:163,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/sentinel.rs:163,1
    - Dst: File::create
      Src: /src/redis-rs/redis-test/src/sentinel.rs:164,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:164,1
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/sentinel.rs:166,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:167,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:168,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:169,1
    - Dst: '&TlsFilePaths::clone'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:169,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:174,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:174,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:174,1
    - Dst: u16::to_string
      Src: /src/redis-rs/redis-test/src/sentinel.rs:176,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:177,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:178,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:178,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:180,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:180,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/sentinel.rs:181,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 5
    argNames:
    - port
    - master_port
    - dir
    - tlspaths
    - modules
    argTypes:
    - u16
    - u16
    - '&TempDir'
    - '&TlsFilePaths'
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 184
      start: 156
    functionDepth: 6
    functionLinenumber: 156
    functionLinenumberEnd: 184
    functionName: spawn_replica_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - File::create
    - '&mut Self::arg'
    - join
    - arg
    - Cmd::arg
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - '&TempDir::path'
    - unwrap
    - get_addr
    - '&TlsFilePaths::clone'
    - u16::to_string
    - Cmd::current_dir
    - Some
    - Cmd::spawn
    linkageType: ''
    returnType: RedisServer
    signature: 'fn spawn_replica_server(port: u16,master_port: u16,dir: &TempDir,tlspaths:
      &TlsFilePaths,modules: &[Module],) -> RedisServer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:193,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/sentinel.rs:193,1
    - Dst: File::create
      Src: /src/redis-rs/redis-test/src/sentinel.rs:194,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:194,1
    - Dst: '&[u16]::iter'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:195,1
    - Dst: enumerate
      Src: /src/redis-rs/redis-test/src/sentinel.rs:195,1
    - Dst: PathBuf::write_all
      Src: /src/redis-rs/redis-test/src/sentinel.rs:196,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis-test/src/sentinel.rs:197,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:196,1
    - Dst: PathBuf::flush
      Src: /src/redis-rs/redis-test/src/sentinel.rs:201,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:201,1
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/sentinel.rs:203,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:204,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:205,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:206,1
    - Dst: '&TlsFilePaths::clone'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:206,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:211,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:212,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:213,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:213,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:215,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:215,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/sentinel.rs:216,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 54
    argCount: 5
    argNames:
    - port
    - master_ports
    - dir
    - tlspaths
    - modules
    argTypes:
    - u16
    - '&[u16]'
    - '&TempDir'
    - '&TlsFilePaths'
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 219
      start: 186
    functionDepth: 6
    functionLinenumber: 186
    functionLinenumberEnd: 219
    functionName: spawn_sentinel_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - File::create
    - '&mut Self::arg'
    - join
    - Poll::unwrap
    - '&[u16]::iter'
    - Cmd::arg
    - as_bytes
    - PathBuf::write_all
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - '&TempDir::path'
    - unwrap
    - get_addr
    - '&TlsFilePaths::clone'
    - PathBuf::flush
    - Cmd::spawn
    - Cmd::current_dir
    - Some
    - enumerate
    linkageType: ''
    returnType: RedisServer
    signature: 'fn spawn_sentinel_server(port: u16,master_ports: &[u16],dir: &TempDir,tlspaths:
      &TlsFilePaths,modules: &[Module],) -> RedisServer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis-test/src/sentinel.rs:227,1
    - Dst: get_connection
      Src: /src/redis-rs/redis-test/src/sentinel.rs:231,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis-test/src/sentinel.rs:233,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:233,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis-test/src/sentinel.rs:234,1
    - Dst: ConnectionAddr::first
      Src: /src/redis-rs/redis-test/src/sentinel.rs:234,1
    - Dst: '&''a NodeAddress::unwrap'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:234,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:234,1
    - Dst: starts_with
      Src: /src/redis-rs/redis-test/src/sentinel.rs:235,1
    - Dst: Ok
      Src: /src/redis-rs/redis-test/src/sentinel.rs:237,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis-test/src/sentinel.rs:245,1
    - Dst: ConnectionInfo::addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:245,1
    - Dst: log_redis_state_via_cli
      Src: /src/redis-rs/redis-test/src/sentinel.rs:247,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/sentinel.rs:256,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/sentinel.rs:256,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/sentinel.rs:259,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 2
    argNames:
    - get_client_fn
    - cluster
    argTypes:
    - impl FnMut() -> RedisResult<Client>
    - Option<&RedisSentinelCluster>
    constantsTouched: []
    func_position:
      end: 260
      start: 223
    functionDepth: 9
    functionLinenumber: 223
    functionLinenumberEnd: 260
    functionName: wait_for_master_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - Result::unwrap
    - redis::Cmd::query
    - Err
    - ConnectionInfo::addr
    - '&''a NodeAddress::unwrap'
    - log_redis_state_via_cli
    - starts_with
    - Ok
    - std::thread::sleep
    - Duration::from_millis
    - String::from_redis_value_ref
    - ConnectionAddr::first
    - get_connection
    - get_connection_info
    - RedisResult::unwrap
    linkageType: ''
    returnType: Result
    signature: 'pub fn wait_for_master_server(mut get_client_fn: impl FnMut() -> RedisResult<Client>,cluster:
      Option<&RedisSentinelCluster>,) -> Result<(), SentinelError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis-test/src/sentinel.rs:266,1
    - Dst: get_connection
      Src: /src/redis-rs/redis-test/src/sentinel.rs:270,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis-test/src/sentinel.rs:272,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:272,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis-test/src/sentinel.rs:273,1
    - Dst: ConnectionAddr::first
      Src: /src/redis-rs/redis-test/src/sentinel.rs:273,1
    - Dst: '&''a NodeAddress::unwrap'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:273,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:273,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis-test/src/sentinel.rs:274,1
    - Dst: ConnectionAddr::get
      Src: /src/redis-rs/redis-test/src/sentinel.rs:274,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:274,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:274,1
    - Dst: starts_with
      Src: /src/redis-rs/redis-test/src/sentinel.rs:275,1
    - Dst: Ok
      Src: /src/redis-rs/redis-test/src/sentinel.rs:277,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis-test/src/sentinel.rs:285,1
    - Dst: ConnectionInfo::addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:285,1
    - Dst: log_redis_state_via_cli
      Src: /src/redis-rs/redis-test/src/sentinel.rs:287,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/sentinel.rs:297,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/sentinel.rs:297,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/sentinel.rs:300,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 60
    argCount: 2
    argNames:
    - get_client_fn
    - cluster
    argTypes:
    - impl FnMut() -> RedisResult<Client>
    - Option<&RedisSentinelCluster>
    constantsTouched: []
    func_position:
      end: 301
      start: 262
    functionDepth: 9
    functionLinenumber: 262
    functionLinenumberEnd: 301
    functionName: wait_for_replica
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - Result::unwrap
    - redis::Cmd::query
    - Err
    - ConnectionAddr::get
    - get_connection_info
    - ConnectionInfo::addr
    - '&''a NodeAddress::unwrap'
    - log_redis_state_via_cli
    - starts_with
    - Ok
    - std::thread::sleep
    - Duration::from_millis
    - String::from_redis_value_ref
    - ConnectionAddr::first
    - get_connection
    - Option::unwrap
    - RedisResult::unwrap
    linkageType: ''
    returnType: Result
    signature: 'pub fn wait_for_replica(mut get_client_fn: impl FnMut() -> RedisResult<Client>,cluster:
      Option<&RedisSentinelCluster>,) -> Result<(), SentinelError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl Iterator::len
      Src: /src/redis-rs/redis-test/src/sentinel.rs:305,1
    - Dst: impl Iterator::len
      Src: /src/redis-rs/redis-test/src/sentinel.rs:306,1
    - Dst: connection_info
      Src: /src/redis-rs/redis-test/src/sentinel.rs:310,1
    - Dst: wait_for_master_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:311,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis-test/src/sentinel.rs:311,1
    - Dst: clone
      Src: /src/redis-rs/redis-test/src/sentinel.rs:311,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:311,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis-test/src/sentinel.rs:312,1
    - Dst: log_sentinel_state_via_cli
      Src: /src/redis-rs/redis-test/src/sentinel.rs:313,1
    - Dst: connection_info
      Src: /src/redis-rs/redis-test/src/sentinel.rs:319,1
    - Dst: wait_for_replica
      Src: /src/redis-rs/redis-test/src/sentinel.rs:320,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis-test/src/sentinel.rs:320,1
    - Dst: clone
      Src: /src/redis-rs/redis-test/src/sentinel.rs:320,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:320,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis-test/src/sentinel.rs:321,1
    - Dst: log_sentinel_state_via_cli
      Src: /src/redis-rs/redis-test/src/sentinel.rs:322,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 58
    argCount: 2
    argNames:
    - cluster
    - masters
    argTypes:
    - '&RedisSentinelCluster'
    - u16
    constantsTouched: []
    func_position:
      end: 327
      start: 303
    functionDepth: 11
    functionLinenumber: 303
    functionLinenumberEnd: 327
    functionName: wait_for_replicas_to_sync
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::Client::open
    - clone
    - log_sentinel_state_via_cli
    - ConnectionAddr::is_err
    - wait_for_master_server
    - impl Iterator::len
    - connection_info
    - wait_for_replica
    - Some
    linkageType: ''
    returnType: void
    signature: 'fn wait_for_replicas_to_sync(cluster: &RedisSentinelCluster, masters:
      u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules
      Src: /src/redis-rs/redis-test/src/sentinel.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - masters
    - replicas_per_master
    - sentinels
    argTypes:
    - u16
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 7
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: RedisSentinelCluster::new
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::with_modules
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(masters: u16, replicas_per_master: u16, sentinels: u16)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:344,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:344,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:344,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:344,1
    - Dst: '{

        server::build_keys_and_certs_for_tls'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:348,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:349,1
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:352,1
    - Dst: Self::len
      Src: /src/redis-rs/redis-test/src/sentinel.rs:353,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis-test/src/sentinel.rs:354,1
    - Dst: get_random_available_port
      Src: /src/redis-rs/redis-test/src/sentinel.rs:354,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis-test/src/sentinel.rs:356,1
    - Dst: std::iter::Chain::collect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:356,1
    - Dst: Self::pop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:359,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:359,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:360,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:360,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:360,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:360,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:364,1
    - Dst: spawn_master_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:364,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:365,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:366,1
    - Dst: Self::pop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:369,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:369,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:370,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:370,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:370,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:370,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:374,1
    - Dst: spawn_replica_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:374,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:381,1
    - Dst: Self::pop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:387,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:387,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:388,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:388,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:388,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:388,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:393,1
    - Dst: spawn_sentinel_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:393,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:400,1
    - Dst: wait_for_replicas_to_sync
      Src: /src/redis-rs/redis-test/src/sentinel.rs:410,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 108
    argCount: 4
    argNames:
    - masters
    - replicas_per_master
    - sentinels
    - modules
    argTypes:
    - u16
    - u16
    - u16
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 413
      start: 334
    functionDepth: 7
    functionLinenumber: 334
    functionLinenumberEnd: 413
    functionName: RedisSentinelCluster::with_modules
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::insert
    - get_random_available_port
    - unwrap
    - '{

      server::build_keys_and_certs_for_tls'
    - RedisResult::prefix
    - spawn_replica_server
    - spawn_sentinel_server
    - Self::len
    - Self::pop
    - tempfile::Builder::new
    - spawn_master_server
    - Self::into_iter
    - std::iter::Chain::collect
    - tempdir
    - impl Iterator::push
    - std::collections::HashSet::new
    - expect
    - push
    - wait_for_replicas_to_sync
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_modules(masters: u16,replicas_per_master: u16,sentinels:
      u16,modules: &[Module],) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::stop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:417,1
    - Dst: RedisServer::stop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:420,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 422
    functionName: RedisSentinelCluster::stop
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisServer::stop
    linkageType: ''
    returnType: void
    signature: pub fn stop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis-test/src/sentinel.rs:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 426
    functionName: RedisSentinelCluster::iter_sentinel_servers
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - iter
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn iter_sentinel_servers(&self) -> impl Iterator<Item = &RedisServer>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisSentinelCluster::stop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 430
    functionDepth: 3
    functionLinenumber: 430
    functionLinenumberEnd: 432
    functionName: RedisSentinelCluster::drop
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisSentinelCluster::stop
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:4,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 68
    functionName: into_redis_value_impl_int
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Int
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Double
      Src: /src/redis-rs/redis-test/src/lib.rs:4,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: into_redis_value_impl_float
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Double
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:93,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis-test/src/lib.rs:93,1
    - Dst: to_vec
      Src: /src/redis-rs/redis-test/src/lib.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: String::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - to_vec
    - String::as_bytes
    - Value::BulkString
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:99,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis-test/src/lib.rs:99,1
    - Dst: to_vec
      Src: /src/redis-rs/redis-test/src/lib.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: '&str::into_redis_value'
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&str::as_bytes'
    - to_vec
    - Value::BulkString
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: bool::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Boolean
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:112,1
    - Dst: bytes::Bytes::to_vec
      Src: /src/redis-rs/redis-test/src/lib.rs:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: bytes::Bytes::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - bytes::Bytes::to_vec
    - Value::BulkString
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Vec::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Map
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:140,1
    - Dst: HashMap::into_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:141,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis-test/src/lib.rs:141,1
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:142,1
    - Dst: Option::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:142,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/lib.rs:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: HashMap::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - into_redis_value
    - Option::into_redis_value
    - HashMap::into_iter
    - std::iter::Chain::map
    - Value::Map
    - collect
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:153,1
    - Dst: HashSet::into_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:154,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis-test/src/lib.rs:154,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/lib.rs:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: HashSet::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::map
    - Value::Set
    - collect
    - HashSet::into_iter
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: Value::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::ServerError
      Src: /src/redis-rs/redis-test/src/lib.rs:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: ServerError::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::ServerError
    linkageType: ''
    returnType: Value
    signature: fn into_redis_value(self) -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: $crate::IntoRedisValue::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 246
    functionName: redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 2
    functionsReached:
    - $crate::IntoRedisValue::into_redis_value
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis-test/src/lib.rs:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: Cmd::into_redis_cmd_bytes
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Cmd::get_packed_command
    linkageType: ''
    returnType: Vec
    signature: fn into_redis_cmd_bytes(self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Cmd::get_packed_command'
      Src: /src/redis-rs/redis-test/src/lib.rs:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 264
    functionName: '&Cmd::into_redis_cmd_bytes'
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&Cmd::get_packed_command'
    linkageType: ''
    returnType: Vec
    signature: fn into_redis_cmd_bytes(self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis-test/src/lib.rs:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: '&mut Cmd::into_redis_cmd_bytes'
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::get_packed_command'
    linkageType: ''
    returnType: Vec
    signature: fn into_redis_cmd_bytes(self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pipeline::get_packed_pipeline
      Src: /src/redis-rs/redis-test/src/lib.rs:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 276
    functionName: Pipeline::into_redis_cmd_bytes
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Pipeline::get_packed_pipeline
    linkageType: ''
    returnType: Vec
    signature: fn into_redis_cmd_bytes(self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Pipeline::get_packed_pipeline'
      Src: /src/redis-rs/redis-test/src/lib.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: '&Pipeline::into_redis_cmd_bytes'
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&Pipeline::get_packed_pipeline'
    linkageType: ''
    returnType: Vec
    signature: fn into_redis_cmd_bytes(self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Pipeline::get_packed_pipeline'
      Src: /src/redis-rs/redis-test/src/lib.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: '&mut Pipeline::into_redis_cmd_bytes'
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Pipeline::get_packed_pipeline'
    linkageType: ''
    returnType: Vec
    signature: fn into_redis_cmd_bytes(self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::into_redis_cmd_bytes
      Src: /src/redis-rs/redis-test/src/lib.rs:307,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/lib.rs:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cmd
    - response
    argTypes:
    - C
    - Result<V, RedisError>
    constantsTouched: []
    func_position:
      end: 310
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 310
    functionName: MockCmd::new
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - map
    - Cmd::into_redis_cmd_bytes
    linkageType: ''
    returnType: Self
    signature: 'pub fn new<C, V>(cmd: C, response: Result<V, RedisError>) -> SelfwhereC:
      IntoRedisCmdBytes,V: IntoRedisValue,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::into_redis_cmd_bytes
      Src: /src/redis-rs/redis-test/src/lib.rs:320,1
    - Dst: Result<Vec<V>, RedisError>::map
      Src: /src/redis-rs/redis-test/src/lib.rs:321,1
    - Dst: into_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:321,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/lib.rs:321,1
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:321,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/lib.rs:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - cmd
    - responses
    argTypes:
    - C
    - Result<Vec<V>, RedisError>
    constantsTouched: []
    func_position:
      end: 323
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 323
    functionName: MockCmd::with_values
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Result<Vec<V>, RedisError>::map
    - Cmd::into_redis_cmd_bytes
    - into_redis_value
    - map
    - into_iter
    - collect
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_values<C, V>(cmd: C, responses: Result<Vec<V>, RedisError>)
      -> SelfwhereC: IntoRedisCmdBytes,V: IntoRedisValue,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis-test/src/lib.rs:341,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis-test/src/lib.rs:341,1
    - Dst: VecDeque::from_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - commands
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 344
      start: 336
    functionDepth: 8
    functionLinenumber: 336
    functionLinenumberEnd: 344
    functionName: MockRedisConnection::new
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Mutex::new
    - VecDeque::from_iter
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new<I>(commands: I) -> SelfwhereI: IntoIterator<Item = MockCmd>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis-test/src/lib.rs:351,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:351,1
    - Dst: extend
      Src: /src/redis-rs/redis-test/src/lib.rs:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - commands
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 352
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 352
    functionName: MockRedisConnection::add_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - extend
    linkageType: ''
    returnType: void
    signature: 'pub fn add_commands<I>(&mut self, commands: I)whereI: IntoIterator<Item
      = MockCmd>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 358
    functionName: MockRedisConnection::assert_all_commands_consumed
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn assert_all_commands_consumed(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis-test/src/lib.rs:364,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:364,1
    - Dst: Arc::strong_count
      Src: /src/redis-rs/redis-test/src/lib.rs:365,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: MockRedisConnection::drop
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Arc::strong_count
    - lock
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis-test/src/lib.rs:374,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:374,1
    - Dst: is_empty
      Src: /src/redis-rs/redis-test/src/lib.rs:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 375
    functionName: MockRedisConnection::is_empty
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - lock
    - unwrap
    - is_empty
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis-test/src/lib.rs:462,1
    - Dst: <Self as ConnectionLike>::req_packed_command
      Src: /src/redis-rs/redis-test/src/lib.rs:463,1
    - Dst: as_slice
      Src: /src/redis-rs/redis-test/src/lib.rs:463,1
    - Dst: future::ready
      Src: /src/redis-rs/redis-test/src/lib.rs:464,1
    - Dst: Poll::boxed
      Src: /src/redis-rs/redis-test/src/lib.rs:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 465
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 465
    functionName: MockRedisConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - future::ready
    - as_slice
    - Cmd::get_packed_command
    - Poll::boxed
    - <Self as ConnectionLike>::req_packed_command
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_command<''a>(&''a mut self, cmd: &''a Cmd) -> RedisFuture<''a,
      Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis-test/src/lib.rs:473,1
    - Dst: <Self as ConnectionLike>::req_packed_commands
      Src: /src/redis-rs/redis-test/src/lib.rs:474,1
    - Dst: as_slice
      Src: /src/redis-rs/redis-test/src/lib.rs:476,1
    - Dst: future::ready
      Src: /src/redis-rs/redis-test/src/lib.rs:480,1
    - Dst: Poll::boxed
      Src: /src/redis-rs/redis-test/src/lib.rs:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - pipeline
    - offset
    - count
    argTypes:
    - '&''a Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 481
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 481
    functionName: MockRedisConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - future::ready
    - <Self as ConnectionLike>::req_packed_commands
    - as_slice
    - get_packed_pipeline
    - Poll::boxed
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,pipeline: &''a Pipeline,offset:
      usize,count: usize,) -> RedisFuture<''a, Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 485
    functionName: MockRedisConnection::get_db
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: fn get_db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: MockRedisConnection::check_connection
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn check_connection(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: MockRedisConnection::is_open
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 497
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 497
    functionName: tests::into_redis_value_i8
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_i8()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: tests::into_redis_value_i16
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_i16()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: tests::into_redis_value_i32
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_i32()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 512
    functionName: tests::into_redis_value_i64
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_i64()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: tests::into_redis_value_u8
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_u8()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 522
    functionName: tests::into_redis_value_u16
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_u16()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 527
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 527
    functionName: tests::into_redis_value_u32
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_u32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis-test/src/lib.rs:531,1
    - Dst: String::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:533,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 541
      start: 530
    functionDepth: 2
    functionLinenumber: 530
    functionLinenumberEnd: 541
    functionName: tests::into_redis_value_string
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - Value::BulkString
    - String::into_redis_value
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_string()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:547,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 555
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 555
    functionName: tests::into_redis_value_str_ref
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - into_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_str_ref()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 560
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 560
    functionName: tests::into_redis_value_bool_true
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_bool_true()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 565
    functionName: tests::into_redis_value_bool_false
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_bool_false()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bytes::Bytes::from
      Src: /src/redis-rs/redis-test/src/lib.rs:570,1
    - Dst: Self::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:572,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 580
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 580
    functionName: tests::into_redis_value_bytes
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - bytes::Bytes::from
    - Self::into_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:586,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: tests::into_redis_value_vec_u8
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - into_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_vec_u8()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:600,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 604
      start: 597
    functionDepth: 2
    functionLinenumber: 597
    functionLinenumberEnd: 604
    functionName: tests::into_redis_value_vec_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - into_redis_value
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_vec_value()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:613,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 607
    functionDepth: 2
    functionLinenumber: 607
    functionLinenumberEnd: 620
    functionName: tests::into_redis_value_vec_value_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - into_redis_value
    - Value::Map
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_vec_value_value()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::from
      Src: /src/redis-rs/redis-test/src/lib.rs:624,1
    - Dst: Self::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:626,1
    - Dst: Value::into_map_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:628,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis-test/src/lib.rs:628,1
    - Dst: "into_map_iter()\n            .expect(\"extracting elements should work\"\
        )\n            .collect::<Vec<(Value, Value)>>"
      Src: /src/redis-rs/redis-test/src/lib.rs:628,1
    - Dst: sort_by
      Src: /src/redis-rs/redis-test/src/lib.rs:634,1
    - Dst: cmp
      Src: /src/redis-rs/redis-test/src/lib.rs:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 650
      start: 623
    functionDepth: 2
    functionLinenumber: 623
    functionLinenumberEnd: 650
    functionName: tests::into_redis_value_hashmap
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::into_map_iter
    - sort_by
    - HashMap::from
    - "into_map_iter()\n            .expect(\"extracting elements should work\")\n\
      \            .collect::<Vec<(Value, Value)>>"
    - Result::expect
    - cmp
    - Self::into_redis_value
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_hashmap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashSet::from
      Src: /src/redis-rs/redis-test/src/lib.rs:654,1
    - Dst: Self::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:656,1
    - Dst: Value::into_sequence
      Src: /src/redis-rs/redis-test/src/lib.rs:658,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis-test/src/lib.rs:658,1
    - Dst: sort_by
      Src: /src/redis-rs/redis-test/src/lib.rs:663,1
    - Dst: cmp
      Src: /src/redis-rs/redis-test/src/lib.rs:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 676
      start: 653
    functionDepth: 2
    functionLinenumber: 653
    functionLinenumberEnd: 676
    functionName: tests::into_redis_value_hashset
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - sort_by
    - Value::into_sequence
    - HashSet::from
    - Result::expect
    - cmp
    - Self::into_redis_value
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_hashset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:680,1
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:682,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 685
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 685
    functionName: tests::into_redis_value_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - into_redis_value
    - Value::Int
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_value()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ServerError::try_from
      Src: /src/redis-rs/redis-test/src/lib.rs:689,1
    - Dst: make_extension_error
      Src: /src/redis-rs/redis-test/src/lib.rs:689,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis-test/src/lib.rs:689,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis-test/src/lib.rs:689,1
    - Dst: clone
      Src: /src/redis-rs/redis-test/src/lib.rs:692,1
    - Dst: Self::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 688
    functionDepth: 2
    functionLinenumber: 688
    functionLinenumberEnd: 695
    functionName: tests::into_redis_value_server_error
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - make_extension_error
    - '&str::to_string'
    - clone
    - ServerError::try_from
    - Result::expect
    - Self::into_redis_value
    linkageType: ''
    returnType: void
    signature: fn into_redis_value_server_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 703
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 703
    functionName: tests::redis_simple_direct
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_simple_direct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:707,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 711
      start: 706
    functionDepth: 1
    functionLinenumber: 706
    functionLinenumberEnd: 711
    functionName: tests::redis_simple_in_complex
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn redis_simple_in_complex()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 716
    functionName: tests::redis_nil
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_nil()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 721
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 721
    functionName: tests::redis_ok
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_ok()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 726
      start: 724
    functionDepth: 0
    functionLinenumber: 724
    functionLinenumberEnd: 726
    functionName: tests::redis_okay
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_okay()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 731
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 731
    functionName: tests::redis_i8
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_i8()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 736
      start: 734
    functionDepth: 0
    functionLinenumber: 734
    functionLinenumberEnd: 736
    functionName: tests::redis_i16
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_i16()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 741
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 741
    functionName: tests::redis_i32
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_i32()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 746
    functionName: tests::redis_i64
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_i64()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 751
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 751
    functionName: tests::redis_u8
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_u8()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: tests::redis_u16
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_u16()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 761
      start: 759
    functionDepth: 0
    functionLinenumber: 759
    functionLinenumberEnd: 761
    functionName: tests::redis_u32
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_u32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:765,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 773
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 773
    functionName: tests::redis_string
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn redis_string()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:777,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 785
    functionName: tests::redis_str_ref
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn redis_str_ref()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 790
    functionName: tests::redis_true
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_true()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 795
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 795
    functionName: tests::redis_false
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_false()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 802
    functionName: tests::redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Int
    linkageType: ''
    returnType: void
    signature: fn redis_value()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 807
    functionName: tests::redis_array_empty
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_array_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:811,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:813,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 815
    functionName: tests::redis_array_single_entry
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn redis_array_single_entry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:819,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 823
    functionName: tests::redis_array_single_entry_trailing_comma
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn redis_array_single_entry_trailing_comma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:827,1
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:828,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:830,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:831,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:837,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 840
      start: 826
    functionDepth: 1
    functionLinenumber: 826
    functionLinenumberEnd: 840
    functionName: tests::redis_array_multiple_primitive_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Int
    - Value::BulkString
    - Value::Boolean
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn redis_array_multiple_primitive_entries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:844,1
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:845,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:847,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:848,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:854,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:855,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 858
    functionName: tests::redis_array_multiple_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Int
    - Value::BulkString
    - Value::Boolean
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn redis_array_multiple_entries()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 863
      start: 861
    functionDepth: 0
    functionLinenumber: 861
    functionLinenumberEnd: 863
    functionName: tests::redis_set_empty
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_set_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:867,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 871
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 871
    functionName: tests::redis_set_single_entry
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Set
    linkageType: ''
    returnType: void
    signature: fn redis_set_single_entry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:875,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 879
      start: 874
    functionDepth: 1
    functionLinenumber: 874
    functionLinenumberEnd: 879
    functionName: tests::redis_set_single_entry_trailing_comma
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Set
    linkageType: ''
    returnType: void
    signature: fn redis_set_single_entry_trailing_comma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:883,1
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:884,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:886,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:887,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:893,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 896
      start: 882
    functionDepth: 1
    functionLinenumber: 882
    functionLinenumberEnd: 896
    functionName: tests::redis_set_multiple_primitive_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Set
    - Value::Int
    - Value::BulkString
    - Value::Boolean
    linkageType: ''
    returnType: void
    signature: fn redis_set_multiple_primitive_entries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:900,1
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:901,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:903,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:904,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:910,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:911,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 914
      start: 899
    functionDepth: 1
    functionLinenumber: 899
    functionLinenumberEnd: 914
    functionName: tests::redis_set_multiple_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Set
    - Value::Int
    - Value::BulkString
    - Value::Boolean
    linkageType: ''
    returnType: void
    signature: fn redis_set_multiple_entries()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 919
      start: 917
    functionDepth: 0
    functionLinenumber: 917
    functionLinenumberEnd: 919
    functionName: tests::redis_map_empty
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn redis_map_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:923,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 922
    functionDepth: 1
    functionLinenumber: 922
    functionLinenumberEnd: 927
    functionName: tests::redis_map_single_entry
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Map
    linkageType: ''
    returnType: void
    signature: fn redis_map_single_entry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:931,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 935
      start: 930
    functionDepth: 1
    functionLinenumber: 930
    functionLinenumberEnd: 935
    functionName: tests::redis_map_single_entry_trailing_comma
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Map
    linkageType: ''
    returnType: void
    signature: fn redis_map_single_entry_trailing_comma()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:939,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:941,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:941,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:944,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 952
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 952
    functionName: tests::redis_map_multiple_primitive_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Int
    - Value::BulkString
    - Value::Boolean
    - Value::Map
    linkageType: ''
    returnType: void
    signature: fn redis_map_multiple_primitive_entries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:956,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:958,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:959,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:960,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:961,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:965,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 955
    functionDepth: 1
    functionLinenumber: 955
    functionLinenumberEnd: 973
    functionName: tests::redis_map_multiple_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::BulkString
    - Value::Boolean
    - Value::Map
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn redis_map_multiple_entries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:977,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:977,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:985,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:985,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:985,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:985,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:985,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:988,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:988,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:988,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:988,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 993
      start: 976
    functionDepth: 9
    functionLinenumber: 976
    functionLinenumberEnd: 993
    functionName: tests::sync_basic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - Cmd::arg
    - Self::assert_all_commands_consumed
    - exec
    - cmd
    - MockRedisConnection::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn sync_basic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:998,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:998,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1006,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1006,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1006,1
    - Dst: exec_async
      Src: /src/redis-rs/redis-test/src/lib.rs:1006,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:1006,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1012,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1012,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis-test/src/lib.rs:1012,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1015,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1015,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1015,1
    - Dst: exec_async
      Src: /src/redis-rs/redis-test/src/lib.rs:1015,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:1015,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1021,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1021,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis-test/src/lib.rs:1021,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 997
    functionDepth: 9
    functionLinenumber: 997
    functionLinenumberEnd: 1023
    functionName: tests::async_basic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - Cmd::arg
    - Self::assert_all_commands_consumed
    - unwrap
    - '&mut Self::query_async'
    - cmd
    - MockRedisConnection::new
    - exec_async
    linkageType: ''
    returnType: void
    signature: async fn async_basic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:1027,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:1027,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1033,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1033,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1033,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1033,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:1033,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1036,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1036,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1036,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1036,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis-test/src/lib.rs:1036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1026
    functionDepth: 9
    functionLinenumber: 1026
    functionLinenumberEnd: 1043
    functionName: tests::errors_for_unexpected_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - Cmd::arg
    - Self::assert_all_commands_consumed
    - exec
    - RedisResult::unwrap_err
    - cmd
    - MockRedisConnection::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn errors_for_unexpected_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:1047,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:1047,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1054,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1054,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1054,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1054,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:1054,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1055,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1055,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1055,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1055,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis-test/src/lib.rs:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1046
    functionDepth: 9
    functionLinenumber: 1046
    functionLinenumberEnd: 1062
    functionName: tests::errors_for_mismatched_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - Cmd::arg
    - Self::assert_all_commands_consumed
    - exec
    - RedisResult::unwrap_err
    - cmd
    - MockRedisConnection::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn errors_for_mismatched_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:1066,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:1066,1
    - Dst: pipe
      Src: /src/redis-rs/redis-test/src/lib.rs:1072,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1072,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1072,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis-test/src/lib.rs:1072,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1072,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis-test/src/lib.rs:1072,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/lib.rs:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1065
    functionDepth: 9
    functionLinenumber: 1065
    functionLinenumberEnd: 1080
    functionName: tests::pipeline_basic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Pipeline::cmd
    - redis::Cmd::arg
    - '&mut Self::cmd'
    - Self::assert_all_commands_consumed
    - '&mut Self::query'
    - pipe
    - MockRedisConnection::new
    - expect
    linkageType: ''
    returnType: void
    signature: fn pipeline_basic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:1084,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:1084,1
    - Dst: pipe
      Src: /src/redis-rs/redis-test/src/lib.rs:1095,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis-test/src/lib.rs:1095,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis-test/src/lib.rs:1095,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1095,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis-test/src/lib.rs:1095,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1095,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis-test/src/lib.rs:1095,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/lib.rs:1095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1083
    functionDepth: 9
    functionLinenumber: 1083
    functionLinenumberEnd: 1104
    functionName: tests::pipeline_atomic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Self::cmd'
    - Self::assert_all_commands_consumed
    - '&mut Self::query'
    - pipe
    - Pipeline::atomic
    - MockRedisConnection::new
    - expect
    linkageType: ''
    returnType: void
    signature: fn pipeline_atomic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:1108,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:1108,1
    - Dst: Option::add_commands
      Src: /src/redis-rs/redis-test/src/lib.rs:1114,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1119,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1119,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1119,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1119,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:1119,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1122,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1122,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1122,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1122,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1107
    functionDepth: 9
    functionLinenumber: 1107
    functionLinenumberEnd: 1127
    functionName: tests::extent_commands_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - Self::assert_all_commands_consumed
    - Cmd::arg
    - exec
    - cmd
    - MockRedisConnection::new
    - Option::add_commands
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn extent_commands_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/redis-rs/redis-test/src/cluster.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 9
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: RedisClusterConfiguration::single_replica_config
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: pub fn single_replica_config() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: RedisClusterConfiguration::default
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/cluster.rs:65,1
    - Dst: String::ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:65,1
    - Dst: as_ref
      Src: /src/redis-rs/redis-test/src/cluster.rs:65,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/cluster.rs:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 76
      start: 64
    functionDepth: 3
    functionLinenumber: 64
    functionLinenumberEnd: 76
    functionName: ClusterType::get_intended
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - String::ok
    - as_ref
    - env::var
    - map
    linkageType: ''
    returnType: Self
    signature: pub fn get_intended() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::get_intended
      Src: /src/redis-rs/redis-test/src/cluster.rs:79,1
    - Dst: redis::ConnectionAddr::Tcp
      Src: /src/redis-rs/redis-test/src/cluster.rs:80,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis-test/src/cluster.rs:80,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis-test/src/cluster.rs:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - port
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 4
    functionLinenumber: 78
    functionLinenumberEnd: 88
    functionName: ClusterType::build_addr
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - redis::ConnectionAddr::Tcp
    - Self::get_intended
    linkageType: ''
    returnType: redis::ConnectionAddr
    signature: 'fn build_addr(port: u16) -> redis::ConnectionAddr'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionAddr::parse
      Src: /src/redis-rs/redis-test/src/cluster.rs:92,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:92,1
    - Dst: socket2::Socket::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:93,1
    - Dst: socket2::Domain::for_address
      Src: /src/redis-rs/redis-test/src/cluster.rs:94,1
    - Dst: Self::expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:93,1
    - Dst: connect
      Src: /src/redis-rs/redis-test/src/cluster.rs:100,1
    - Dst: into
      Src: /src/redis-rs/redis-test/src/cluster.rs:100,1
    - Dst: is_ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - addr
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: port_in_use
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - socket2::Socket::new
    - is_ok
    - into
    - Self::expect
    - socket2::Domain::for_address
    - ConnectionAddr::parse
    - connect
    - expect
    linkageType: ''
    returnType: bool
    signature: 'fn port_in_use(addr: &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: RedisCluster::username
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static str'
    signature: pub fn username() -> &'static str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: RedisCluster::password
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static str'
    signature: pub fn password() -> &'static str
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::is_empty
      Src: /src/redis-rs/redis-test/src/cluster.rs:148,1
    - Dst: Vec::into_iter
      Src: /src/redis-rs/redis-test/src/cluster.rs:152,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis-test/src/cluster.rs:152,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/cluster.rs:152,1
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:154,1
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis-test/src/cluster.rs:162,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:164,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/cluster.rs:164,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/cluster.rs:164,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:164,1
    - Dst: '{

        server::build_keys_and_certs_for_tls_with_hostname'
      Src: /src/redis-rs/redis-test/src/cluster.rs:168,1
    - Dst: as_deref
      Src: /src/redis-rs/redis-test/src/cluster.rs:171,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/cluster.rs:173,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/cluster.rs:174,1
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/cluster.rs:181,1
    - Dst: ClusterType::build_addr
      Src: /src/redis-rs/redis-test/src/cluster.rs:182,1
    - Dst: None::clone
      Src: /src/redis-rs/redis-test/src/cluster.rs:184,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:189,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/cluster.rs:189,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/cluster.rs:189,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:189,1
    - Dst: path
      Src: /src/redis-rs/redis-test/src/cluster.rs:193,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/cluster.rs:193,1
    - Dst: std::fs::write
      Src: /src/redis-rs/redis-test/src/cluster.rs:199,1
    - Dst: Poll::expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:199,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:200,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:200,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:200,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:200,1
    - Dst: path
      Src: /src/redis-rs/redis-test/src/cluster.rs:203,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/cluster.rs:203,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:200,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:200,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:200,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:200,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:209,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:209,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:210,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:213,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:213,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:215,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:215,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/cluster.rs:218,1
    - Dst: path
      Src: /src/redis-rs/redis-test/src/cluster.rs:218,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/cluster.rs:219,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/cluster.rs:220,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:220,1
    - Dst: try_wait
      Src: /src/redis-rs/redis-test/src/cluster.rs:227,1
    - Dst: RedisServer::log_file_contents
      Src: /src/redis-rs/redis-test/src/cluster.rs:229,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/cluster.rs:233,1
    - Dst: RedisServer::log_file_contents
      Src: /src/redis-rs/redis-test/src/cluster.rs:241,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/cluster.rs:242,1
    - Dst: port_in_use
      Src: /src/redis-rs/redis-test/src/cluster.rs:246,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:246,1
    - Dst: Ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:247,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:250,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:250,1
    - Dst: into_iter
      Src: /src/redis-rs/redis-test/src/cluster.rs:260,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/cluster.rs:260,1
    - Dst: get_random_available_port
      Src: /src/redis-rs/redis-test/src/cluster.rs:267,1
    - Dst: Self::contains
      Src: /src/redis-rs/redis-test/src/cluster.rs:268,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis-test/src/cluster.rs:271,1
    - Dst: make_server
      Src: /src/redis-rs/redis-test/src/cluster.rs:275,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:276,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:276,1
    - Dst: verify_server
      Src: /src/redis-rs/redis-test/src/cluster.rs:278,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/cluster.rs:281,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/cluster.rs:260,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:291,1
    - Dst: Cmd::stdout
      Src: /src/redis-rs/redis-test/src/cluster.rs:292,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/cluster.rs:292,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:292,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:292,1
    - Dst: args
      Src: /src/redis-rs/redis-test/src/cluster.rs:292,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:297,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:297,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:297,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:299,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:309,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:310,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:311,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:312,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:313,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:314,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:315,1
    - Dst: None::is_some
      Src: /src/redis-rs/redis-test/src/cluster.rs:317,1
    - Dst: None::as_ref
      Src: /src/redis-rs/redis-test/src/cluster.rs:318,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:318,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:319,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:319,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:319,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:321,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:321,1
    - Dst: Cmd::output
      Src: /src/redis-rs/redis-test/src/cluster.rs:327,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:327,1
    - Dst: success
      Src: /src/redis-rs/redis-test/src/cluster.rs:328,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:336,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:336,1
    - Dst: wait_for_replicas
      Src: /src/redis-rs/redis-test/src/cluster.rs:347,1
    - Dst: wait_for_status_ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:350,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 297
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - RedisClusterConfiguration
    constantsTouched: []
    func_position:
      end: 352
      start: 135
    functionDepth: 7
    functionLinenumber: 135
    functionLinenumberEnd: 352
    functionName: RedisCluster::new
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - to_string
    - process::Stdio::piped
    - args
    - Err
    - Poll::expect
    - Self::insert
    - get_random_available_port
    - unwrap
    - try_wait
    - Ok
    - success
    - ClusterType::build_addr
    - Some
    - Cmd::spawn
    - collect
    - std::fs::write
    - Vec::is_empty
    - RedisResult::prefix
    - process::Command::new
    - '&mut Self::arg'
    - Cmd::stdout
    - path
    - map
    - verify_server
    - Self::contains
    - as_deref
    - tempfile::Builder::new
    - into_iter
    - Cmd::current_dir
    - ClusterType::get_intended
    - RedisServer::log_file_contents
    - Vec::into_iter
    - arg
    - '{

      server::build_keys_and_certs_for_tls_with_hostname'
    - None::clone
    - Cmd::arg
    - std::iter::Chain::map
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - port_in_use
    - Cmd::output
    - tempdir
    - impl Iterator::push
    - expect
    - std::collections::HashSet::new
    - make_server
    - None::as_ref
    - join
    - None::is_some
    - wait_for_replicas
    - push
    - std::thread::sleep
    - Duration::from_millis
    - wait_for_status_ok
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(configuration: RedisClusterConfiguration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis-test/src/cluster.rs:356,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis-test/src/cluster.rs:362,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis-test/src/cluster.rs:362,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:362,1
    - Dst: get_connection
      Src: /src/redis-rs/redis-test/src/cluster.rs:364,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:364,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis-test/src/cluster.rs:368,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:368,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis-test/src/cluster.rs:368,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:368,1
    - Dst: redis::from_redis_value
      Src: /src/redis-rs/redis-test/src/cluster.rs:369,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:369,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis-test/src/cluster.rs:373,1
    - Dst: all
      Src: /src/redis-rs/redis-test/src/cluster.rs:373,1
    - Dst: Self::len
      Src: /src/redis-rs/redis-test/src/cluster.rs:373,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:377,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 1
    argNames:
    - replicas
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 382
      start: 354
    functionDepth: 11
    functionLinenumber: 354
    functionLinenumberEnd: 382
    functionName: RedisCluster::wait_for_replicas
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - RedisServer::connection_info
    - redis::Cmd::arg
    - Result::unwrap
    - redis::Client::open
    - Self::len
    - '&mut Self::query'
    - unwrap
    - RedisResult::iter
    - all
    - std::thread::sleep
    - Duration::from_millis
    - get_connection
    - redis::from_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn wait_for_replicas(&self, replicas: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::stop
      Src: /src/redis-rs/redis-test/src/cluster.rs:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 388
    functionName: RedisCluster::stop
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - RedisServer::stop
    linkageType: ''
    returnType: void
    signature: pub fn stop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis-test/src/cluster.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: RedisCluster::iter_servers
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - iter
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn iter_servers(&self) -> impl Iterator<Item = &RedisServer>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::log_file
      Src: /src/redis-rs/redis-test/src/cluster.rs:397,1
    - Dst: std::fs::read_to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:401,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:401,1
    - Dst: Option::contains
      Src: /src/redis-rs/redis-test/src/cluster.rs:403,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:406,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:406,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - '&RedisCluster'
    constantsTouched: []
    func_position:
      end: 410
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 410
    functionName: wait_for_status_ok
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 1
    functionsReached:
    - std::thread::sleep
    - Duration::from_millis
    - Option::contains
    - std::fs::read_to_string
    - RedisServer::log_file
    - expect
    linkageType: ''
    returnType: void
    signature: 'fn wait_for_status_ok(cluster: &RedisCluster)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisCluster::stop
      Src: /src/redis-rs/redis-test/src/cluster.rs:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 3
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: RedisCluster::drop
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - RedisCluster::stop
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/test-macros/src/lib.rs:8,1
    - Dst: syn::Ident::new
      Src: /src/redis-rs/test-macros/src/lib.rs:10,1
    - Dst: span
      Src: /src/redis-rs/test-macros/src/lib.rs:12,1
    - Dst: clone
      Src: /src/redis-rs/test-macros/src/lib.rs:14,1
    - Dst: len
      Src: /src/redis-rs/test-macros/src/lib.rs:16,1
    - Dst: last
      Src: /src/redis-rs/test-macros/src/lib.rs:17,1
    - Dst: syn::Error::new_spanned
      Src: /src/redis-rs/test-macros/src/lib.rs:18,1
    - Dst: to_compile_error
      Src: /src/redis-rs/test-macros/src/lib.rs:18,1
    - Dst: into
      Src: /src/redis-rs/test-macros/src/lib.rs:18,1
    - Dst: syn::Error::new_spanned
      Src: /src/redis-rs/test-macros/src/lib.rs:74,1
    - Dst: to_compile_error
      Src: /src/redis-rs/test-macros/src/lib.rs:74,1
    - Dst: into
      Src: /src/redis-rs/test-macros/src/lib.rs:74,1
    - Dst: is_empty
      Src: /src/redis-rs/test-macros/src/lib.rs:81,1
    - Dst: syn::Error::new_spanned
      Src: /src/redis-rs/test-macros/src/lib.rs:93,1
    - Dst: to_compile_error
      Src: /src/redis-rs/test-macros/src/lib.rs:93,1
    - Dst: into
      Src: /src/redis-rs/test-macros/src/lib.rs:93,1
    - Dst: into
      Src: /src/redis-rs/test-macros/src/lib.rs:101,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 65
    argCount: 2
    argNames:
    - input
    argTypes:
    - TokenStream
    - TokenStream
    constantsTouched: []
    func_position:
      end: 102
      start: 5
    functionDepth: 2
    functionLinenumber: 5
    functionLinenumberEnd: 102
    functionName: async_test
    functionSourceFile: /src/redis-rs/test-macros/src/lib.rs
    functionUses: 0
    functionsReached:
    - to_compile_error
    - len
    - syn::Ident::new
    - into
    - clone
    - syn::Error::new_spanned
    - last
    - span
    - is_empty
    linkageType: ''
    returnType: TokenStream
    signature: 'pub fn async_test(_: TokenStream, input: TokenStream) -> TokenStream'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:22,1
    - Dst: log_redis_state_via_cli
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - context
    - sentinel
    - error
    argTypes:
    - '&TestSentinelContext'
    - '&ConnectionInfo'
    - '&RedisError'
    constantsTouched: []
    func_position:
      end: 25
      start: 16
    functionDepth: 9
    functionLinenumber: 16
    functionLinenumberEnd: 25
    functionName: log_connection_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - addr
    - log_redis_state_via_cli
    linkageType: ''
    returnType: void
    signature: 'fn log_connection_error(context: &TestSentinelContext,sentinel: &ConnectionInfo,error:
      &RedisError,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::split
      Src: /src/redis-rs/redis/src/sentinel.rs:403,1
    - Dst: filter
      Src: /src/redis-rs/redis/src/sentinel.rs:403,1
    - Dst: trim_start
      Src: /src/redis-rs/redis/src/sentinel.rs:405,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/sentinel.rs:405,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/sentinel.rs:403,1
    - Dst: split_once
      Src: /src/redis-rs/redis/src/sentinel.rs:406,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:403,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/sentinel.rs:407,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/sentinel.rs:407,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - value
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 410
      start: 402
    functionDepth: 3
    functionLinenumber: 402
    functionLinenumberEnd: 410
    functionName: parse_replication_info
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - to_string
    - filter
    - map
    - impl combine::Parser::split
    - split_once
    - starts_with
    - filter_map
    - trim_start
    - collect
    linkageType: ''
    returnType: HashMap
    signature: 'fn parse_replication_info(value: String) -> HashMap<String, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - replication_info
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 4
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: assert_is_master_role
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - parse_replication_info
    linkageType: ''
    returnType: void
    signature: 'fn assert_is_master_role(replication_info: String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:42,1
    - Dst: '&ConnectionInfo::addr'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - replication_info
    - expected_master
    argTypes:
    - String
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 63
      start: 41
    functionDepth: 4
    functionLinenumber: 41
    functionLinenumberEnd: 63
    functionName: assert_replica_role_and_master_addr
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - parse_replication_info
    - '&ConnectionInfo::addr'
    linkageType: ''
    returnType: void
    signature: 'fn assert_replica_role_and_master_addr(replication_info: String, expected_master:
      &ConnectionInfo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:66,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:66,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:66,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:66,1
    - Dst: assert_is_master_role
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 5
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: assert_is_connection_to_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - assert_is_master_role
    - '&mut Self::query'
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn assert_is_connection_to_master(conn: &mut Connection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:71,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:71,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:71,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:71,1
    - Dst: assert_replica_role_and_master_addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:72,1
    - Dst: '&Client::get_connection_info'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - master_client
    argTypes:
    - '&mut Connection'
    - '&Client'
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: assert_connection_is_replica_of_correct_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - assert_replica_role_and_master_addr
    - '&mut Self::query'
    - '&Client::get_connection_info'
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn assert_connection_is_replica_of_correct_master(conn: &mut Connection,
      master_client: &Client)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: replica_rotate_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:87,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:88,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:87,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:90,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:90,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:93,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:93,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:93,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:93,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 5
    argNames:
    - sentinel
    - master_name
    - master_client
    - node_conn_info
    - number_of_replicas
    argTypes:
    - '&mut Sentinel'
    - '&str'
    - '&Client'
    - '&SentinelNodeConnectionInfo'
    - u16
    constantsTouched: []
    func_position:
      end: 99
      start: 77
    functionDepth: 5
    functionLinenumber: 77
    functionLinenumberEnd: 99
    functionName: connect_to_all_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - addr
    - replica_rotate_for
    - clone
    - push
    - assert_connection_is_replica_of_correct_master
    - unwrap
    - Some
    - get_connection
    - get_connection_info
    - RedisResult::unwrap
    linkageType: ''
    returnType: Vec
    signature: 'fn connect_to_all_replicas(sentinel: &mut Sentinel,master_name: &str,master_client:
      &Client,node_conn_info: &SentinelNodeConnectionInfo,number_of_replicas: u16,)
      -> Vec<ConnectionAddr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: replica_rotate_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:110,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:111,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:110,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:113,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:113,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 6
    argNames:
    - sentinel
    - replica_conn_infos
    - master_name
    - master_client
    - node_conn_info
    - number_of_connections
    argTypes:
    - '&mut Sentinel'
    - '&[ConnectionAddr]'
    - '&str'
    - '&Client'
    - '&SentinelNodeConnectionInfo'
    - u32
    constantsTouched: []
    func_position:
      end: 119
      start: 101
    functionDepth: 6
    functionLinenumber: 101
    functionLinenumberEnd: 119
    functionName: assert_connect_to_known_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - replica_rotate_for
    - assert_connection_is_replica_of_correct_master
    - unwrap
    - Some
    - get_connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn assert_connect_to_known_replicas(sentinel: &mut Sentinel,replica_conn_infos:
      &[ConnectionAddr],master_name: &str,master_client: &Client,node_conn_info: &SentinelNodeConnectionInfo,number_of_connections:
      u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:125,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:126,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:127,1
    - Dst: get_replica_clients
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:128,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:129,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 133
    functionName: test_get_replica_clients_success
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::sentinel_mut
    - get_replica_clients
    - Some
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_get_replica_clients_success()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:137,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:138,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:139,1
    - Dst: get_replica_clients
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:141,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:142,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 152
    functionName: test_get_replica_clients_invalid_master_name
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::sentinel_mut
    - get_replica_clients
    - RedisResult::unwrap_err
    - Some
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    linkageType: ''
    returnType: void
    signature: fn test_get_replica_clients_invalid_master_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:158,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:159,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:160,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:161,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:162,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:161,1
    - Dst: get_replica_clients
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:165,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:166,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:165,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:170,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:170,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:171,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 155
    functionDepth: 6
    functionLinenumber: 155
    functionLinenumberEnd: 173
    functionName: test_get_replica_clients_report_correct_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - master_for
    - Self::sentinel_mut
    - assert_connection_is_replica_of_correct_master
    - get_replica_clients
    - unwrap
    - Some
    - get_connection
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_get_replica_clients_report_correct_master()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:180,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:181,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:182,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:182,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:183,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:183,1
    - Dst: RedisResult::inspect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:183,1
    - Dst: log_connection_error
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:184,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:183,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:183,1
    - Dst: inspect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:183,1
    - Dst: log_connection_error
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:187,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:183,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    - Dst: "arg(\"set\")\n        .arg(master_name)\n        .arg(\"down-after-milliseconds\"\
        )\n        .arg(\"500\")\n        .query::<()>"
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:198,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:200,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:200,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:202,1
    - Dst: get_replica_clients
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:203,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:204,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 176
    functionDepth: 10
    functionLinenumber: 176
    functionLinenumberEnd: 212
    functionName: test_get_replica_clients_with_one_replica_down
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::sentinel_mut
    - unwrap
    - Some
    - get_connection
    - Self::sentinel_node_connection_info
    - "arg(\"set\")\n        .arg(master_name)\n        .arg(\"down-after-milliseconds\"\
      )\n        .arg(\"500\")\n        .query::<()>"
    - '&mut Self::arg'
    - clone
    - Client::open
    - Self::sentinels_connection_info
    - redis::Cmd::arg
    - arg
    - get_replica_clients
    - RedisResult::expect
    - stop
    - TestSentinelContext::new
    - inspect_err
    - redis::cmd
    - log_connection_error
    - RedisResult::inspect_err
    - std::thread::sleep
    - std::time::Duration::from_millis
    linkageType: ''
    returnType: void
    signature: fn test_get_replica_clients_with_one_replica_down()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:218,1
    - Dst: sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:219,1
    - Dst: sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:220,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:222,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:223,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:222,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:225,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:225,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:227,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:227,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:227,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:227,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:232,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:232,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:232,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:232,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:232,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:232,1
    - Dst: replica_rotate_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:241,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:242,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:241,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:244,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:244,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:245,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:245,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:245,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:245,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:245,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:245,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:253,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:254,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:253,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:256,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:256,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 215
    functionDepth: 6
    functionLinenumber: 215
    functionLinenumberEnd: 259
    functionName: test_sentinel_role_no_permission
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_node_connection_info
    - redis::cmd
    - assert_is_connection_to_master
    - redis::Cmd::arg
    - '&mut Self::arg'
    - replica_rotate_for
    - master_for
    - arg
    - '&mut Self::query'
    - unwrap
    - query
    - sentinel_mut
    - Some
    - get_connection
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_role_no_permission()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:265,1
    - Dst: sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:266,1
    - Dst: sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:267,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:269,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:270,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:269,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:272,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:272,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:274,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:274,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:274,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:274,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:279,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:279,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:279,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:279,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:279,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:279,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:279,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:287,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:288,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 293
    functionName: test_sentinel_no_role_or_info_permission
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_node_connection_info
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - master_for
    - arg
    - '&mut Self::query'
    - unwrap
    - query
    - RedisResult::unwrap_err
    - sentinel_mut
    - Some
    - get_connection
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_no_role_or_info_permission()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:299,1
    - Dst: sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:300,1
    - Dst: sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:301,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:303,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:304,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:303,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:306,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:306,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:308,1
    - Dst: replica_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:310,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:311,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:310,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:310,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:310,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 296
    functionDepth: 6
    functionLinenumber: 296
    functionLinenumberEnd: 317
    functionName: test_sentinel_connect_to_random_replica
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_node_connection_info
    - assert_is_connection_to_master
    - master_for
    - replica_for
    - assert_connection_is_replica_of_correct_master
    - unwrap
    - sentinel_mut
    - Some
    - get_connection
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_connect_to_random_replica()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:323,1
    - Dst: sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:324,1
    - Dst: sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:325,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:327,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:328,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:327,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:330,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:330,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:332,1
    - Dst: connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:334,1
    - Dst: assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 350
      start: 320
    functionDepth: 6
    functionLinenumber: 320
    functionLinenumberEnd: 350
    functionName: test_sentinel_connect_to_multiple_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_node_connection_info
    - assert_is_connection_to_master
    - master_for
    - connect_to_all_replicas
    - assert_connect_to_known_replicas
    - unwrap
    - sentinel_mut
    - Some
    - get_connection
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_connect_to_multiple_replicas()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:356,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:357,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:358,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:360,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:361,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:360,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:363,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:363,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:365,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:367,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:368,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:368,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:370,1
    - Dst: connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:372,1
    - Dst: assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 353
    functionDepth: 6
    functionLinenumber: 353
    functionLinenumberEnd: 388
    functionName: test_sentinel_server_down
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - assert_is_connection_to_master
    - master_for
    - connect_to_all_replicas
    - assert_connect_to_known_replicas
    - Self::sentinel_mut
    - unwrap
    - std::thread::sleep
    - Duration::from_millis
    - stop
    - Some
    - get_connection
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_server_down()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:393,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:394,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:395,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:395,1
    - Dst: RedisResult::inspect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:395,1
    - Dst: log_connection_error
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:396,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:395,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:395,1
    - Dst: inspect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:395,1
    - Dst: log_connection_error
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:399,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:395,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:401,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:401,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:401,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:405,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:406,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:406,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:407,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:408,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:408,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:405,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:413,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:414,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:414,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:415,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:416,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:416,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:413,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:421,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:421,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:422,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:422,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:422,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:425,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:427,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:428,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:429,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:430,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:429,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:434,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:434,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:435,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:435,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:435,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 391
    functionDepth: 10
    functionLinenumber: 391
    functionLinenumberEnd: 440
    functionName: test_sentinel_redis_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::sentinel_mut
    - unwrap
    - Some
    - get_connection
    - Self::sentinel_node_connection_info
    - redis::Cmd::query
    - clone
    - Client::open
    - assert_connection_is_replica_of_correct_master
    - SentinelClient::build
    - Self::sentinels_connection_info
    - assert_is_connection_to_master
    - master_for
    - String::from
    - TestSentinelContext::new
    - RedisResult::unwrap
    - inspect_err
    - redis::cmd
    - log_connection_error
    - RedisResult::inspect_err
    - '&Vec::clone'
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_redis_client()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:445,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:446,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:447,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:447,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:448,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:449,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:449,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:446,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:454,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:455,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:455,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:456,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:457,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:457,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:454,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:462,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:462,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:463,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:463,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:464,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 475
    functionName: test_sentinel_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - first
    - get_sentinel_client
    - '&Vec::clone'
    - SentinelClient::build
    - TestSentinelContext::new
    - unwrap
    - Some
    - Self::sentinels_connection_info
    - Self::sentinel_node_connection_info
    - String::from
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_client()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:480,1
    - Dst: Sentinel::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:482,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:483,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:483,1
    - Dst: TlsFilePaths::connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:487,1
    - Dst: "cluster\n            .servers\n            .iter()\n            .map(|s|\
        \ s.connection_info())\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:483,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:482,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:491,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:492,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:493,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 478
    functionDepth: 11
    functionLinenumber: 478
    functionLinenumberEnd: 501
    functionName: test_sentinel_non_sentinel_address_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - master_for
    - Sentinel::build
    - map
    - "cluster\n            .servers\n            .iter()\n            .map(|s| s.connection_info())\n\
      \            .collect::<Vec<_>>"
    - iter
    - RedisResult::unwrap_err
    - Some
    - TlsFilePaths::connection_info
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_non_sentinel_address_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:507,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:509,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:507,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:515,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 518
    functionName: test_sentinel_client_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_sentinel_client
    - RedisResult::unwrap
    - SentinelClient::build
    - String::from
    - expect_err
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_client_io_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:523,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:525,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:525,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:529,1
    - Dst: "cluster\n        .servers\n        .iter()\n        .map(|redis_server|\
        \ redis_server.connection_info())\n        .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:525,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:531,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:532,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:532,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:533,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:531,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:539,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 521
    functionDepth: 11
    functionLinenumber: 521
    functionLinenumberEnd: 548
    functionName: test_sentinel_client_not_sentinel_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_sentinel_client
    - map
    - String::from
    - expect_err
    - "cluster\n        .servers\n        .iter()\n        .map(|redis_server| redis_server.connection_info())\n\
      \        .collect::<Vec<_>>"
    - SentinelClient::build
    - '&Vec::clone'
    - iter
    - connection_info
    - Self::sentinels_connection_info
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_client_not_sentinel_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:553,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:554,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:555,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:555,1
    - Dst: RedisResult::inspect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:555,1
    - Dst: log_connection_error
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:556,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:555,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:555,1
    - Dst: inspect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:555,1
    - Dst: log_connection_error
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:559,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:555,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:561,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:561,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:561,1
    - Dst: SentinelClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:565,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:566,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:566,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:569,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:569,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:570,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:565,1
    - Dst: SentinelClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:575,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:576,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:576,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:579,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:579,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:580,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:575,1
    - Dst: set_client_to_sentinel_protocol
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:585,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:585,1
    - Dst: Self::tls_mode
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:587,1
    - Dst: set_client_to_redis_tls_mode
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:588,1
    - Dst: set_client_to_redis_tls_mode
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:589,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:592,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:592,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:593,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:593,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:595,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:595,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:596,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:596,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:596,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:599,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:601,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:602,1
    - Dst: master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:603,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:604,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:603,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:608,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:608,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:609,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:609,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:609,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 126
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 614
      start: 551
    functionDepth: 10
    functionLinenumber: 551
    functionLinenumberEnd: 614
    functionName: test_sentinel_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - ConnectionAddr::clone
    - Self::sentinel_mut
    - unwrap
    - Some
    - get_connection
    - Self::sentinel_node_connection_info
    - SentinelClientBuilder::new
    - set_client_to_redis_tls_mode
    - redis::Cmd::query
    - map
    - clone
    - Client::open
    - assert_connection_is_replica_of_correct_master
    - iter
    - Self::sentinels_connection_info
    - assert_is_connection_to_master
    - master_for
    - Self::tls_mode
    - set_client_to_sentinel_protocol
    - redis_test::server::use_protocol
    - build
    - String::from
    - TestSentinelContext::new
    - RedisResult::unwrap
    - inspect_err
    - redis::cmd
    - addr
    - log_connection_error
    - RedisResult::inspect_err
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_client_builder()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:625,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:625,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:625,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:625,1
    - Dst: assert_is_master_role
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:631,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 632
      start: 624
    functionDepth: 5
    functionLinenumber: 624
    functionLinenumberEnd: 632
    functionName: async_tests::async_assert_is_connection_to_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - assert_is_master_role
    - unwrap
    - '&mut Self::query_async'
    linkageType: ''
    returnType: void
    signature: 'async fn async_assert_is_connection_to_master(conn: &mut MultiplexedConnection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:638,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:638,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:638,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:638,1
    - Dst: assert_replica_role_and_master_addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:644,1
    - Dst: '&Client::get_connection_info'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:644,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - master_client
    argTypes:
    - '&mut MultiplexedConnection'
    - '&Client'
    constantsTouched: []
    func_position:
      end: 645
      start: 634
    functionDepth: 5
    functionLinenumber: 634
    functionLinenumberEnd: 645
    functionName: async_tests::async_assert_connection_is_replica_of_correct_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - assert_replica_role_and_master_addr
    - '&Client::get_connection_info'
    - unwrap
    - '&mut Self::query_async'
    linkageType: ''
    returnType: void
    signature: 'async fn async_assert_connection_is_replica_of_correct_master(conn:
      &mut MultiplexedConnection,master_client: &Client,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_replica_rotate_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:658,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:659,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:658,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:662,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:662,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:673,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:673,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:673,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:673,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 5
    argNames:
    - sentinel
    - master_name
    - master_client
    - node_conn_info
    - number_of_replicas
    argTypes:
    - '&mut Sentinel'
    - '&str'
    - '&Client'
    - '&SentinelNodeConnectionInfo'
    - u16
    constantsTouched: []
    func_position:
      end: 680
      start: 648
    functionDepth: 5
    functionLinenumber: 648
    functionLinenumberEnd: 680
    functionName: async_tests::async_connect_to_all_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - addr
    - async_replica_rotate_for
    - clone
    - push
    - unwrap
    - Some
    - get_multiplexed_async_connection
    - get_connection_info
    - async_assert_connection_is_replica_of_correct_master
    linkageType: ''
    returnType: Vec
    signature: 'async fn async_connect_to_all_replicas(sentinel: &mut Sentinel,master_name:
      &str,master_client: &Client,node_conn_info: &SentinelNodeConnectionInfo,number_of_replicas:
      u16,) -> Vec<ConnectionAddr>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_replica_rotate_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:691,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:692,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:691,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:695,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:695,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:702,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - sentinel
    - replica_conn_infos
    - master_name
    - master_client
    - node_conn_info
    - number_of_connections
    argTypes:
    - '&mut Sentinel'
    - '&[ConnectionAddr]'
    - '&str'
    - '&Client'
    - '&SentinelNodeConnectionInfo'
    - u32
    constantsTouched: []
    func_position:
      end: 705
      start: 682
    functionDepth: 6
    functionLinenumber: 682
    functionLinenumberEnd: 705
    functionName: async_tests::async_assert_connect_to_known_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_replica_rotate_for
    - unwrap
    - Some
    - get_multiplexed_async_connection
    - async_assert_connection_is_replica_of_correct_master
    linkageType: ''
    returnType: void
    signature: 'async fn async_assert_connect_to_known_replicas(sentinel: &mut Sentinel,replica_conn_infos:
      &[ConnectionAddr],master_name: &str,master_client: &Client,node_conn_info: &SentinelNodeConnectionInfo,number_of_connections:
      u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:710,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:711,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:712,1
    - Dst: async_master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:714,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:715,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:714,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:718,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:718,1
    - Dst: async_replica_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:723,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:724,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:723,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:723,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:723,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:731,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:732,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 734
      start: 708
    functionDepth: 6
    functionLinenumber: 708
    functionLinenumberEnd: 734
    functionName: async_tests::test_sentinel_connect_to_random_replica_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_master_for
    - async_assert_is_connection_to_master
    - Self::sentinel_mut
    - unwrap
    - Some
    - get_multiplexed_async_connection
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    - async_replica_for
    - async_assert_connection_is_replica_of_correct_master
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_connect_to_random_replica_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:740,1
    - Dst: sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:741,1
    - Dst: sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:742,1
    - Dst: async_master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:744,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:745,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:744,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:748,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:748,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:753,1
    - Dst: async_connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:755,1
    - Dst: async_assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:764,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 773
      start: 737
    functionDepth: 6
    functionLinenumber: 737
    functionLinenumberEnd: 773
    functionName: async_tests::test_sentinel_connect_to_multiple_replicas_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_node_connection_info
    - async_connect_to_all_replicas
    - async_master_for
    - async_assert_connect_to_known_replicas
    - async_assert_is_connection_to_master
    - unwrap
    - sentinel_mut
    - Some
    - get_multiplexed_async_connection
    - TestSentinelContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_connect_to_multiple_replicas_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:779,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:780,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:782,1
    - Dst: async_master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:784,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:785,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:784,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:788,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:788,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:793,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:795,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:796,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:796,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:798,1
    - Dst: async_connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:800,1
    - Dst: async_assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:809,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 818
      start: 776
    functionDepth: 6
    functionLinenumber: 776
    functionLinenumberEnd: 818
    functionName: async_tests::test_sentinel_server_down_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_connect_to_all_replicas
    - async_master_for
    - async_assert_connect_to_known_replicas
    - async_assert_is_connection_to_master
    - Self::sentinel_mut
    - unwrap
    - std::thread::sleep
    - Duration::from_millis
    - stop
    - Some
    - get_multiplexed_async_connection
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_server_down_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:823,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:824,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:825,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:825,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:826,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:827,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:827,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:824,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:832,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:833,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:833,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:834,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:835,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:835,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:832,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:840,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:840,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:842,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:844,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:845,1
    - Dst: async_master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:846,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:847,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:846,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:853,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:853,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:855,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 821
    functionDepth: 6
    functionLinenumber: 821
    functionLinenumberEnd: 858
    functionName: async_tests::test_sentinel_redis_client_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_master_for
    - get_async_connection
    - async_assert_is_connection_to_master
    - '&Vec::clone'
    - SentinelClient::build
    - TestSentinelContext::new
    - Self::sentinel_mut
    - unwrap
    - async_assert_connection_is_replica_of_correct_master
    - Some
    - Self::sentinels_connection_info
    - Self::sentinel_node_connection_info
    - String::from
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_redis_client_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:863,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:864,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:865,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:865,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:866,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:867,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:867,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:864,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:872,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:873,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:873,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:874,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:875,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:875,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:872,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:880,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:880,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:881,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:881,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:882,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 893
    functionName: async_tests::test_sentinel_client_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_get_sentinel_client
    - first
    - '&Vec::clone'
    - SentinelClient::build
    - TestSentinelContext::new
    - unwrap
    - Some
    - Self::sentinels_connection_info
    - Self::sentinel_node_connection_info
    - String::from
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_client_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:898,1
    - Dst: Sentinel::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:900,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:901,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:901,1
    - Dst: TlsFilePaths::connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:905,1
    - Dst: "cluster\n                .servers\n                .iter()\n         \
        \       .map(|s| s.connection_info())\n                .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:901,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:900,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:909,1
    - Dst: async_master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:910,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:911,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 920
      start: 896
    functionDepth: 11
    functionLinenumber: 896
    functionLinenumberEnd: 920
    functionName: async_tests::test_sentinel_non_sentinel_address_error_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_master_for
    - Sentinel::build
    - map
    - iter
    - unwrap_err
    - "cluster\n                .servers\n                .iter()\n              \
      \  .map(|s| s.connection_info())\n                .collect::<Vec<_>>"
    - Some
    - TlsFilePaths::connection_info
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_non_sentinel_address_error_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:926,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:928,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:928,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:932,1
    - Dst: "cluster\n            .servers\n            .iter()\n            .map(|redis_server|\
        \ redis_server.connection_info())\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:928,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:934,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:935,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:935,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:936,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:937,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:937,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:934,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:942,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 951
      start: 923
    functionDepth: 11
    functionLinenumber: 923
    functionLinenumberEnd: 951
    functionName: async_tests::test_sentinel_client_async_not_sentinel_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_get_sentinel_client
    - "cluster\n            .servers\n            .iter()\n            .map(|redis_server|\
      \ redis_server.connection_info())\n            .collect::<Vec<_>>"
    - map
    - String::from
    - expect_err
    - RedisResult::unwrap
    - '&Vec::clone'
    - SentinelClient::build
    - iter
    - connection_info
    - Self::sentinels_connection_info
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    - Some
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_client_async_not_sentinel_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:957,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:959,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:957,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:965,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 968
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 968
    functionName: async_tests::test_sentinel_client_async_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_get_sentinel_client
    - RedisResult::unwrap
    - SentinelClient::build
    - String::from
    - expect_err
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_client_async_io_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:973,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:974,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:975,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:975,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:976,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:977,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:977,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:974,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:982,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:983,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:983,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:984,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:985,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:985,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:982,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:991,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:991,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:991,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:991,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:993,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:993,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:998,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1000,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1001,1
    - Dst: async_master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1002,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1003,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1002,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1009,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1009,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1014,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 971
    functionDepth: 6
    functionLinenumber: 971
    functionLinenumberEnd: 1017
    functionName: async_tests::test_sentinel_client_async_with_connection_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::set_connection_timeout
    - async_master_for
    - get_async_connection_with_config
    - async_assert_is_connection_to_master
    - '&Vec::clone'
    - SentinelClient::build
    - TestSentinelContext::new
    - Self::sentinel_mut
    - unwrap
    - async_assert_connection_is_replica_of_correct_master
    - AsyncConnectionConfig::new
    - Duration::from_secs
    - Some
    - Self::sentinels_connection_info
    - Self::sentinel_node_connection_info
    - String::from
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_client_async_with_connection_timeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1022,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1023,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1024,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1024,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1025,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1026,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1026,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1023,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1031,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1032,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1032,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1033,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1034,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1034,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1031,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1039,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1041,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1041,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1046,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1048,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1049,1
    - Dst: async_master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1050,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1051,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1050,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1057,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1057,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1062,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1065
      start: 1020
    functionDepth: 6
    functionLinenumber: 1020
    functionLinenumberEnd: 1065
    functionName: async_tests::test_sentinel_client_async_with_response_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_master_for
    - get_async_connection_with_config
    - async_assert_is_connection_to_master
    - '&Vec::clone'
    - SentinelClient::build
    - TestSentinelContext::new
    - Self::sentinel_mut
    - unwrap
    - async_assert_connection_is_replica_of_correct_master
    - AsyncConnectionConfig::new
    - Some
    - Self::sentinels_connection_info
    - Self::sentinel_node_connection_info
    - String::from
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_client_async_with_response_timeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1070,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1071,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1072,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1072,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1073,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1074,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1074,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1071,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1079,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1080,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1080,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1081,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1082,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1082,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1079,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1087,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1089,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1089,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1094,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1096,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1097,1
    - Dst: async_master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1098,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1099,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1098,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1105,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1105,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1068
    functionDepth: 6
    functionLinenumber: 1068
    functionLinenumberEnd: 1113
    functionName: async_tests::test_sentinel_client_async_with_timeouts
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_master_for
    - get_async_connection_with_config
    - async_assert_is_connection_to_master
    - '&Vec::clone'
    - SentinelClient::build
    - TestSentinelContext::new
    - Self::sentinel_mut
    - unwrap
    - async_assert_connection_is_replica_of_correct_master
    - AsyncConnectionConfig::new
    - Some
    - Self::sentinels_connection_info
    - Self::sentinel_node_connection_info
    - String::from
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_client_async_with_timeouts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1119,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1120,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1121,1
    - Dst: async_get_replica_clients
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1123,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1124,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1116
    functionDepth: 1
    functionLinenumber: 1116
    functionLinenumberEnd: 1128
    functionName: async_tests::test_get_replica_clients_success_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_get_replica_clients
    - Self::sentinel_mut
    - unwrap
    - Some
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_get_replica_clients_success_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1132,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1133,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1134,1
    - Dst: async_get_replica_clients
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1136,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1137,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1131
    functionDepth: 1
    functionLinenumber: 1131
    functionLinenumberEnd: 1148
    functionName: async_tests::test_get_replica_clients_invalid_master_name_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_get_replica_clients
    - Self::sentinel_mut
    - unwrap_err
    - Some
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_get_replica_clients_invalid_master_name_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1154,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1155,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1156,1
    - Dst: async_master_for
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1158,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1159,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1158,1
    - Dst: async_get_replica_clients
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1162,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1163,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1162,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1168,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1168,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1172,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1151
    functionDepth: 6
    functionLinenumber: 1151
    functionLinenumberEnd: 1174
    functionName: async_tests::test_get_replica_clients_report_correct_master_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - async_get_replica_clients
    - async_master_for
    - Self::sentinel_mut
    - unwrap
    - Some
    - get_multiplexed_async_connection
    - Self::sentinel_node_connection_info
    - TestSentinelContext::new
    - async_assert_connection_is_replica_of_correct_master
    linkageType: ''
    returnType: void
    signature: async fn test_get_replica_clients_report_correct_master_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1180,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1181,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1182,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1182,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1184,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1184,1
    - Dst: RedisResult::inspect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1184,1
    - Dst: log_connection_error
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1185,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1184,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1184,1
    - Dst: inspect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1184,1
    - Dst: log_connection_error
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1189,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1184,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1192,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1192,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1192,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1192,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1192,1
    - Dst: "arg(\"set\")\n            .arg(master_name)\n            .arg(\"down-after-milliseconds\"\
        )\n            .arg(\"500\")\n            .query_async::<()>"
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1192,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1192,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1201,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1202,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1202,1
    - Dst: Self::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1204,1
    - Dst: async_get_replica_clients
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1205,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1206,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1177
    functionDepth: 10
    functionLinenumber: 1177
    functionLinenumberEnd: 1215
    functionName: async_tests::test_get_replica_clients_with_one_replica_down_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::sentinel_mut
    - unwrap
    - Some
    - Self::sentinel_node_connection_info
    - async_get_replica_clients
    - '&mut Self::arg'
    - clone
    - Client::open
    - get_multiplexed_async_connection
    - Self::sentinels_connection_info
    - redis::Cmd::arg
    - arg
    - "arg(\"set\")\n            .arg(master_name)\n            .arg(\"down-after-milliseconds\"\
      )\n            .arg(\"500\")\n            .query_async::<()>"
    - stop
    - TestSentinelContext::new
    - expect
    - inspect_err
    - redis::cmd
    - log_connection_error
    - RedisResult::inspect_err
    - std::thread::sleep
    - std::time::Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn test_get_replica_clients_with_one_replica_down_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::split
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1227,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1227,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1229,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1232
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1232
    functionName: pool_tests::parse_client_info
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::split
    - filter_map
    - collect
    - split_once
    linkageType: ''
    returnType: HashMap
    signature: 'fn parse_client_info(value: &str) -> HashMap<&str, &str>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1237,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1238,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1239,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1239,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1240,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1241,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1241,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1238,1
    - Dst: Pool::builder
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1246,1
    - Dst: max_size
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1246,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1246,1
    - Dst: LockedSentinelClient::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1246,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1251,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1253,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1253,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1255,1
    - Dst: try_get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1259,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1262,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1265,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1265,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1265,1
    - Dst: Option::deref_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1267,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1265,1
    - Dst: parse_client_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1270,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1270,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1275,1
    - Dst: Option::deref_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1275,1
    - Dst: try_get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1279,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1235
    functionDepth: 11
    functionLinenumber: 1235
    functionLinenumberEnd: 1281
    functionName: pool_tests::test_sentinel_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Option::deref_mut
    - unwrap
    - try_get
    - Some
    - Self::sentinel_node_connection_info
    - SentinelClient::build
    - '&mut Self::query'
    - LockedSentinelClient::new
    - parse_client_info
    - max_size
    - Self::sentinels_connection_info
    - get
    - assert_is_connection_to_master
    - redis::Cmd::arg
    - HashSet::new
    - build
    - TestSentinelContext::new
    - String::from
    - RedisResult::unwrap
    - redis::cmd
    - Self::push
    - '&Vec::clone'
    - as_str
    - Pool::builder
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_client()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::split
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1292,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1292,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1294,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1297
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1297
    functionName: bb8_pool_tests::parse_client_info
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::split
    - filter_map
    - collect
    - split_once
    linkageType: ''
    returnType: HashMap
    signature: 'fn parse_client_info(value: &str) -> HashMap<&str, &str>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1302,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1303,1
    - Dst: Self::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1304,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1304,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1305,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1306,1
    - Dst: Self::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1306,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1303,1
    - Dst: Pool::builder
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1311,1
    - Dst: max_size
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1311,1
    - Dst: connection_timeout
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1311,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1313,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1311,1
    - Dst: AsyncLockedSentinelClient::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1314,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1311,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1318,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1320,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1320,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1322,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1326,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1327,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1329,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1332,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1332,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1332,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1332,1
    - Dst: parse_client_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1338,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1338,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1343,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1343,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1343,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1343,1
    - Dst: assert_is_master_role
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1348,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1352,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1353,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1300
    functionDepth: 11
    functionLinenumber: 1300
    functionLinenumberEnd: 1354
    functionName: bb8_pool_tests::test_sentinel_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - assert_is_master_role
    - unwrap
    - '&mut Self::query_async'
    - Some
    - Self::sentinel_node_connection_info
    - AsyncLockedSentinelClient::new
    - SentinelClient::build
    - parse_client_info
    - Duration::from_secs
    - max_size
    - Self::sentinels_connection_info
    - get
    - redis::Cmd::arg
    - HashSet::new
    - build
    - TestSentinelContext::new
    - String::from
    - RedisResult::unwrap
    - redis::cmd
    - Self::push
    - '&Vec::clone'
    - as_str
    - Pool::builder
    - unwrap_err
    - connection_timeout
    - Vec::new
    linkageType: ''
    returnType: void
    signature: async fn test_sentinel_client()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:24,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:24,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:27,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:27,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:28,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:28,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:29,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - ctx
    - protocol
    argTypes:
    - '&TestContext'
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 11
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: hotkeys::setup_connection_with_protocol
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - redis::Client::open
    - RedisConnectionInfo::default
    - connection_info
    - Self::set_protocol
    - get_connection
    - set_redis_settings
    - RedisResult::unwrap
    linkageType: ''
    returnType: redis::Connection
    signature: 'fn setup_connection_with_protocol(ctx: &TestContext,protocol: ProtocolVersion,)
      -> redis::Connection'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:33,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:33,1
    - Dst: '&mut redis::Connection::set'
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:34,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:34,1
    - Dst: '&mut redis::Connection::get'
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:36,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut redis::Connection'
    constantsTouched: []
    func_position:
      end: 39
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 39
    functionName: hotkeys::setup_test_keys_and_make_hot_keys
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - '&mut redis::Connection::get'
    - unwrap
    - '&mut redis::Connection::set'
    - iter
    - enumerate
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn setup_test_keys_and_make_hot_keys(con: &mut redis::Connection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:73,1
    - Dst: setup_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:74,1
    - Dst: redis::Connection::hotkeys_reset
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:82,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:82,1
    - Dst: redis::Connection::hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:87,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:87,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:87,1
    - Dst: setup_test_keys_and_make_hot_keys
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:92,1
    - Dst: redis::Connection::hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:95,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:95,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:97,1
    - Dst: redis::Connection::hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:113,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:113,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:115,1
    - Dst: redis::Connection::hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:122,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:122,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:122,1
    - Dst: redis::Connection::hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:123,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:123,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:125,1
    - Dst: redis::Connection::hotkeys_reset
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:137,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 69
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 139
      start: 71
    functionDepth: 12
    functionLinenumber: 71
    functionLinenumberEnd: 139
    functionName: hotkeys::test_hotkeys_state_machine_behavior
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::hotkeys_reset
    - run_test_if_version_supported
    - setup_connection_with_protocol
    - unwrap
    - setup_test_keys_and_make_hot_keys
    - redis::Connection::hotkeys_get
    - HotkeysOptions::new_with_cpu
    - redis::Connection::hotkeys_start
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_state_machine_behavior(#[case] protocol: ProtocolVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:150,1
    - Dst: setup_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:151,1
    - Dst: redis::Connection::hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:155,1
    - Dst: options
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:155,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:155,1
    - Dst: setup_test_keys_and_make_hot_keys
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:156,1
    - Dst: redis::Connection::hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:158,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:158,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 2
    argNames:
    - protocol
    - metric
    argTypes:
    - ProtocolVersion
    - Metric
    constantsTouched: []
    func_position:
      end: 170
      start: 148
    functionDepth: 12
    functionLinenumber: 148
    functionLinenumberEnd: 170
    functionName: hotkeys::test_hotkeys_with_metric
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - options
    - run_test_if_version_supported
    - setup_connection_with_protocol
    - unwrap
    - setup_test_keys_and_make_hot_keys
    - redis::Connection::hotkeys_get
    - redis::Connection::hotkeys_start
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_with_metric(#[case] protocol: ProtocolVersion, #[case]
      metric: Metric)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:177,1
    - Dst: setup_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:178,1
    - Dst: redis::Connection::hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:182,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:183,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:183,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:183,1
    - Dst: with_duration_secs
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:183,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:182,1
    - Dst: setup_test_keys_and_make_hot_keys
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:189,1
    - Dst: redis::Connection::hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:190,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:190,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:190,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:195,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:195,1
    - Dst: redis::Connection::hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:197,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:197,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 201
      start: 175
    functionDepth: 12
    functionLinenumber: 175
    functionLinenumberEnd: 201
    functionName: hotkeys::test_hotkeys_options_with_duration_and_count
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - with_duration_secs
    - Result::unwrap
    - run_test_if_version_supported
    - Self::with_count
    - setup_connection_with_protocol
    - unwrap
    - sleep
    - Duration::from_secs
    - setup_test_keys_and_make_hot_keys
    - redis::Connection::hotkeys_get
    - HotkeysOptions::new_with_cpu
    - redis::Connection::hotkeys_start
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_options_with_duration_and_count(#[case] protocol:
      ProtocolVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:208,1
    - Dst: setup_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:209,1
    - Dst: redis::Connection::hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:214,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:214,1
    - Dst: Self::with_sample_ratio
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:214,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:214,1
    - Dst: redis::Connection::hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:217,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:217,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 220
      start: 206
    functionDepth: 12
    functionLinenumber: 206
    functionLinenumberEnd: 220
    functionName: hotkeys::test_hotkeys_options_with_sample_ratio
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_sample_ratio
    - run_test_if_version_supported
    - setup_connection_with_protocol
    - unwrap
    - redis::Connection::hotkeys_get
    - HotkeysOptions::new_with_cpu
    - redis::Connection::hotkeys_start
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_options_with_sample_ratio(#[case] protocol: ProtocolVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:227,1
    - Dst: setup_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:228,1
    - Dst: redis::Connection::hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:234,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:235,1
    - Dst: Self::with_slots
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:235,1
    - Dst: RedisResult::expect_err
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:234,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 244
      start: 225
    functionDepth: 12
    functionLinenumber: 225
    functionLinenumberEnd: 244
    functionName: hotkeys::test_hotkeys_start_with_slots_on_standalone_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - RedisResult::expect_err
    - Self::with_slots
    - to_string
    - run_test_if_version_supported
    - setup_connection_with_protocol
    - HotkeysOptions::new_with_cpu
    - redis::Connection::hotkeys_start
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_start_with_slots_on_standalone_errors(#[case] protocol:
      ProtocolVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::ConnectionInfo::set_redis_settings
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:263,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:263,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:263,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:264,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:264,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:264,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - info
    - protocol
    argTypes:
    - ConnectionInfo
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 9
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: hotkeys_cluster::direct_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - redis::Client::open
    - RedisConnectionInfo::default
    - redis::ConnectionInfo::set_redis_settings
    - unwrap
    - Self::set_protocol
    - get_connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: redis::Connection
    signature: 'fn direct_connection(info: ConnectionInfo, protocol: ProtocolVersion)
      -> redis::Connection'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - addr
    argTypes:
    - '&ConnectionAddr'
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: hotkeys_cluster::port_of
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: 'fn port_of(addr: &ConnectionAddr) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:278,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:278,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:278,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:278,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:286,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:289,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:289,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:289,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:290,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:290,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:290,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:294,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:297,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:297,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:297,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 55
    argCount: 2
    argNames:
    - con
    - port
    argTypes:
    - '&mut redis::Connection'
    - u16
    constantsTouched: []
    func_position:
      end: 303
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 303
    functionName: hotkeys_cluster::first_owned_slot_range
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - len
    - clone
    - Cmd::arg
    - from_redis_value
    - '&mut Self::query'
    - unwrap
    - cmd
    linkageType: ''
    returnType: (u16, u16)
    signature: 'fn first_owned_slot_range(con: &mut redis::Connection, port: u16)
      -> (u16, u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:309,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:309,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:309,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:309,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - con
    - start
    - end
    argTypes:
    - '&mut redis::Connection'
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: hotkeys_cluster::find_key_in_range
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - Cmd::arg
    - unwrap
    - query
    - cmd
    linkageType: ''
    returnType: (String, u16)
    signature: 'fn find_key_in_range(con: &mut redis::Connection, start: u16, end:
      u16) -> (String, u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:325,1
    - Dst: Self::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:326,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:328,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:328,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:328,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:329,1
    - Dst: port_of
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:330,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:330,1
    - Dst: direct_connection
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:331,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:331,1
    - Dst: skip_if_context_does_not_support
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:334,1
    - Dst: first_owned_slot_range
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:336,1
    - Dst: find_key_in_range
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:337,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 344
      start: 322
    functionDepth: 11
    functionLinenumber: 322
    functionLinenumberEnd: 344
    functionName: hotkeys_cluster::setup_cluster_and_target
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - RedisServer::connection_info
    - port_of
    - find_key_in_range
    - direct_connection
    - iter_servers
    - Self::wait_for_cluster_up
    - skip_if_context_does_not_support
    - redis::ConnectionInfo::clone
    - next
    - unwrap
    - redis::ConnectionInfo::addr
    - Some
    - first_owned_slot_range
    - TestClusterContext::new
    linkageType: ''
    returnType: Option
    signature: 'fn setup_cluster_and_target(protocol: ProtocolVersion,) -> Option<(TestClusterContext,
      ConnectionInfo, String, u16)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_cluster_and_target
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:354,1
    - Dst: direct_connection
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:359,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:361,1
    - Dst: Self::and_net
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:361,1
    - Dst: Self::with_slots
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:361,1
    - Dst: redis::Connection::hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:364,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:364,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:367,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:367,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:369,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:369,1
    - Dst: redis::Connection::hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:372,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:372,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:372,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:390,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:390,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:395,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 400
      start: 349
    functionDepth: 12
    functionLinenumber: 349
    functionLinenumberEnd: 400
    functionName: hotkeys_cluster::test_hotkeys_cluster_with_slots_via_direct_client
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_slots
    - Option::unwrap
    - direct_connection
    - Self::and_net
    - redis::Connection::set
    - setup_cluster_and_target
    - unwrap
    - redis::Connection::get
    - expect
    - as_ref
    - redis::Connection::hotkeys_get
    - HotkeysOptions::new_with_cpu
    - redis::Connection::hotkeys_start
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_cluster_with_slots_via_direct_client(#[case] protocol:
      ProtocolVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_cluster_and_target
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:410,1
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:416,1
    - Dst: Self::use_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:416,1
    - Dst: ProtocolVersion::build
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:416,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:416,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:420,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:420,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:422,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:422,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:422,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:428,1
    - Dst: Self::and_net
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:428,1
    - Dst: Self::with_slots
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:428,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:431,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:432,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:432,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:433,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:434,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:433,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:439,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:439,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:441,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:441,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:445,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:446,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:447,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:447,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:448,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:448,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 72
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 478
      start: 405
    functionDepth: 12
    functionLinenumber: 405
    functionLinenumberEnd: 478
    functionName: hotkeys_cluster::test_hotkeys_cluster_with_slots_via_cluster_routing
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_slots
    - Result::unwrap
    - Self::and_net
    - RoutingInfo::SingleNode
    - setup_cluster_and_target
    - unwrap
    - SingleNodeRoutingInfo::SpecificNode
    - get_connection
    - Self::use_protocol
    - ClusterClientBuilder::new
    - '&mut Self::arg'
    - set
    - clone
    - ProtocolVersion::build
    - cmd
    - HotkeysOptions::new_with_cpu
    - route_command
    - get
    - redis::Cmd::arg
    - Cmd::arg
    - from_redis_value
    - RedisResult::unwrap
    - expect
    - Route::new
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_cluster_with_slots_via_cluster_routing(#[case] protocol:
      ProtocolVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_cluster_and_target
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:495,1
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:500,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:500,1
    - Dst: Self::use_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:500,1
    - Dst: ProtocolVersion::build
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:500,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:500,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:504,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:504,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:510,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:512,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:514,1
    - Dst: Self::and_net
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:514,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:515,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:516,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:516,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:517,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:518,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:517,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:523,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:523,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:525,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:525,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:530,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:531,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:532,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:533,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:533,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:549,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:549,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:550,1
    - Dst: Result::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:550,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:556,1
    - Dst: is_some_and
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:556,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:559,1
    - Dst: any
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:559,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:570,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:571,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:572,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:573,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:572,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:580,1
    - Dst: Self::with_slots
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:580,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:581,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:582,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:582,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 119
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 589
      start: 490
    functionDepth: 12
    functionLinenumber: 490
    functionLinenumberEnd: 589
    functionName: hotkeys_cluster::test_hotkeys_cluster_all_primaries_via_cluster_routing
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_slots
    - Result::unwrap
    - RoutingInfo::MultiNode
    - Self::and_net
    - setup_cluster_and_target
    - unwrap
    - Some
    - get_connection
    - Self::use_protocol
    - ClusterClientBuilder::new
    - '&mut Self::arg'
    - set
    - clone
    - is_some_and
    - ProtocolVersion::build
    - cmd
    - as_ref
    - HotkeysOptions::new_with_cpu
    - route_command
    - get
    - redis::Cmd::arg
    - Cmd::arg
    - from_redis_value
    - Result::unwrap_or_else
    - Self::iter
    - any
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_cluster_all_primaries_via_cluster_routing(#[case]
      protocol: ProtocolVersion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:611,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:611,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:614,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:614,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:615,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:615,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:616,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - ctx
    - protocol
    argTypes:
    - '&TestContext'
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 617
      start: 607
    functionDepth: 11
    functionLinenumber: 607
    functionLinenumberEnd: 617
    functionName: async_hotkeys::setup_async_connection_with_protocol
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - redis::Client::open
    - RedisConnectionInfo::default
    - unwrap
    - connection_info
    - Self::set_protocol
    - get_multiplexed_async_connection
    - set_redis_settings
    - RedisResult::unwrap
    linkageType: ''
    returnType: redis::aio::MultiplexedConnection
    signature: 'async fn setup_async_connection_with_protocol(ctx: &TestContext,protocol:
      ProtocolVersion,) -> redis::aio::MultiplexedConnection'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:620,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:620,1
    - Dst: '&mut redis::aio::MultiplexedConnection::set'
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:621,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:621,1
    - Dst: '&mut redis::aio::MultiplexedConnection::get'
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:623,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:623,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut redis::aio::MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 626
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 626
    functionName: async_hotkeys::setup_test_keys_and_make_hot_keys
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - iter
    - '&mut redis::aio::MultiplexedConnection::set'
    - '&mut redis::aio::MultiplexedConnection::get'
    - enumerate
    linkageType: ''
    returnType: void
    signature: 'async fn setup_test_keys_and_make_hot_keys(con: &mut redis::aio::MultiplexedConnection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:638,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:642,1
    - Dst: setup_async_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:644,1
    - Dst: hotkeys_reset
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:650,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:650,1
    - Dst: hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:655,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:655,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:655,1
    - Dst: setup_test_keys_and_make_hot_keys
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:665,1
    - Dst: hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:667,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:667,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:667,1
    - Dst: hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:680,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:680,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:680,1
    - Dst: hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:687,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:687,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:687,1
    - Dst: hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:690,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:690,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:690,1
    - Dst: hotkeys_reset
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:697,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:697,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 77
    argCount: 2
    argNames:
    - runtime
    - protocol
    argTypes:
    - RuntimeType
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 702
      start: 633
    functionDepth: 12
    functionLinenumber: 633
    functionLinenumberEnd: 702
    functionName: async_hotkeys::test_hotkeys_state_machine_behavior_async
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - hotkeys_get
    - setup_async_connection_with_protocol
    - run_test_if_version_supported
    - block_on_all
    - unwrap
    - hotkeys_reset
    - setup_test_keys_and_make_hot_keys
    - hotkeys_start
    - HotkeysOptions::new_with_cpu
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_state_machine_behavior_async(#[case] runtime: RuntimeType,#[values(ProtocolVersion::RESP2,
      ProtocolVersion::RESP3)] protocol: ProtocolVersion,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:713,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:719,1
    - Dst: setup_async_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:721,1
    - Dst: hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:723,1
    - Dst: options
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:723,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:723,1
    - Dst: setup_test_keys_and_make_hot_keys
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:724,1
    - Dst: hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:726,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:726,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:726,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - runtime
    - protocol
    - metric
    argTypes:
    - RuntimeType
    - ProtocolVersion
    - Metric
    constantsTouched: []
    func_position:
      end: 740
      start: 707
    functionDepth: 12
    functionLinenumber: 707
    functionLinenumberEnd: 740
    functionName: async_hotkeys::test_hotkeys_with_metric_async
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - hotkeys_get
    - options
    - setup_async_connection_with_protocol
    - run_test_if_version_supported
    - block_on_all
    - unwrap
    - setup_test_keys_and_make_hot_keys
    - hotkeys_start
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_with_metric_async(#[case] runtime: RuntimeType,#[values(ProtocolVersion::RESP2,
      ProtocolVersion::RESP3)] protocol: ProtocolVersion,#[values(Metric::Cpu, Metric::Net,
      Metric::All)] metric: Metric,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:750,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:756,1
    - Dst: setup_async_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:758,1
    - Dst: hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:760,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:761,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:761,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:761,1
    - Dst: with_duration_secs
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:761,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:760,1
    - Dst: setup_test_keys_and_make_hot_keys
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:768,1
    - Dst: hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:769,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:769,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:769,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:774,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:774,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:774,1
    - Dst: hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:776,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:776,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 49
    argCount: 2
    argNames:
    - runtime
    - protocol
    argTypes:
    - RuntimeType
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 783
      start: 745
    functionDepth: 12
    functionLinenumber: 745
    functionLinenumberEnd: 783
    functionName: async_hotkeys::test_hotkeys_options_with_duration_and_count_async
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - with_duration_secs
    - hotkeys_get
    - Result::unwrap
    - futures_time::task::sleep
    - setup_async_connection_with_protocol
    - into
    - run_test_if_version_supported
    - Self::with_count
    - block_on_all
    - unwrap
    - Duration::from_secs
    - setup_test_keys_and_make_hot_keys
    - hotkeys_start
    - HotkeysOptions::new_with_cpu
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_options_with_duration_and_count_async(#[case] runtime:
      RuntimeType,#[values(ProtocolVersion::RESP2, ProtocolVersion::RESP3)] protocol:
      ProtocolVersion,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:793,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:797,1
    - Dst: setup_async_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:799,1
    - Dst: hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:802,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:802,1
    - Dst: Self::with_sample_ratio
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:802,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:802,1
    - Dst: hotkeys_get
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:806,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:806,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:806,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - runtime
    - protocol
    argTypes:
    - RuntimeType
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 812
      start: 788
    functionDepth: 12
    functionLinenumber: 788
    functionLinenumberEnd: 812
    functionName: async_hotkeys::test_hotkeys_options_with_sample_ratio_async
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - hotkeys_get
    - setup_async_connection_with_protocol
    - Self::with_sample_ratio
    - run_test_if_version_supported
    - block_on_all
    - unwrap
    - hotkeys_start
    - HotkeysOptions::new_with_cpu
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_options_with_sample_ratio_async(#[case] runtime: RuntimeType,#[values(ProtocolVersion::RESP2,
      ProtocolVersion::RESP3)] protocol: ProtocolVersion,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:822,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:829,1
    - Dst: setup_async_connection_with_protocol
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:831,1
    - Dst: hotkeys_start
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:833,1
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:834,1
    - Dst: Self::with_slots
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:834,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:833,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_hotkeys.rs:837,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - runtime
    - protocol
    argTypes:
    - RuntimeType
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 847
      start: 817
    functionDepth: 12
    functionLinenumber: 817
    functionLinenumberEnd: 847
    functionName: async_hotkeys::test_hotkeys_start_with_slots_on_standalone_errors_async
    functionSourceFile: /src/redis-rs/redis/tests/test_hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_slots
    - to_string
    - setup_async_connection_with_protocol
    - run_test_if_version_supported
    - block_on_all
    - hotkeys_start
    - HotkeysOptions::new_with_cpu
    - expect_err
    linkageType: ''
    returnType: void
    signature: 'fn test_hotkeys_start_with_slots_on_standalone_errors_async(#[case]
      runtime: RuntimeType,#[values(ProtocolVersion::RESP2, ProtocolVersion::RESP3)]
      protocol: ProtocolVersion,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:21,1
    - Dst: redis_test::redis_value
      Src: /src/redis-rs/redis/tests/test_bignum.rs:21,1
    - Dst: ToRedisArgs::to_redis_args
      Src: /src/redis-rs/redis/tests/test_bignum.rs:24,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_bignum.rs:24,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:27,1
    - Dst: redis_test::redis_value
      Src: /src/redis-rs/redis/tests/test_bignum.rs:27,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:30,1
    - Dst: redis_test::redis_value
      Src: /src/redis-rs/redis/tests/test_bignum.rs:30,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:33,1
    - Dst: T::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_bignum.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - content
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 38
      start: 11
    functionDepth: 2
    functionLinenumber: 11
    functionLinenumberEnd: 38
    functionName: test
    functionSourceFile: /src/redis-rs/redis/tests/test_bignum.rs
    functionUses: 0
    functionsReached:
    - T::from_redis_value_ref
    - redis_test::redis_value
    - ToRedisArgs::to_redis_args
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test<T>(content: &str)whereT: FromRedisValue+ ToRedisArgs+ std::str::FromStr+
      std::convert::From<u32>+ std::cmp::PartialEq+ std::fmt::Debug,<T as FromStr>::Err:
      std::fmt::Debug,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::<rust_decimal::Decimal>
      Src: /src/redis-rs/redis/tests/test_bignum.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: test_rust_decimal
    functionSourceFile: /src/redis-rs/redis/tests/test_bignum.rs
    functionUses: 0
    functionsReached:
    - test::<rust_decimal::Decimal>
    linkageType: ''
    returnType: void
    signature: fn test_rust_decimal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::<bigdecimal::BigDecimal>
      Src: /src/redis-rs/redis/tests/test_bignum.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: test_bigdecimal
    functionSourceFile: /src/redis-rs/redis/tests/test_bignum.rs
    functionUses: 0
    functionsReached:
    - test::<bigdecimal::BigDecimal>
    linkageType: ''
    returnType: void
    signature: fn test_bigdecimal()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::<num_bigint::BigInt>
      Src: /src/redis-rs/redis/tests/test_bignum.rs:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: test_bigint
    functionSourceFile: /src/redis-rs/redis/tests/test_bignum.rs
    functionUses: 0
    functionsReached:
    - test::<num_bigint::BigInt>
    linkageType: ''
    returnType: void
    signature: fn test_bigint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test::<num_bigint::BigUint>
      Src: /src/redis-rs/redis/tests/test_bignum.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: test_biguint
    functionSourceFile: /src/redis-rs/redis/tests/test_bignum.rs
    functionUses: 0
    functionsReached:
    - test::<num_bigint::BigUint>
    linkageType: ''
    returnType: void
    signature: fn test_biguint()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: CertAuthTestContext::setup_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_tls_cert_auth.rs
    functionUses: 0
    functionsReached:
    - connection
    linkageType: ''
    returnType: redis::Connection
    signature: fn setup_connection(&self) -> redis::Connection
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_single_client_with_separate_client_cert
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:40,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:41,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:40,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:47,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 37
    functionDepth: 11
    functionLinenumber: 37
    functionLinenumberEnd: 50
    functionName: CertAuthTestContext::cert_auth_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_tls_cert_auth.rs
    functionUses: 0
    functionsReached:
    - build_single_client_with_separate_client_cert
    - connection_info
    - get_connection
    - RedisResult::expect
    linkageType: ''
    returnType: redis::Connection
    signature: fn cert_auth_connection(&self) -> redis::Connection
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TempDir::new
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:62,1
    - Dst: Self::expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:62,1
    - Dst: build_keys_and_certs_for_tls
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:65,1
    - Dst: path
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:68,1
    - Dst: join
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:68,1
    - Dst: redis_test::utils::build_client_cert_with_custom_cn
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:72,1
    - Dst: TestContext::new_with_cert_auth
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:75,1
    - Dst: TlsFilePaths::clone
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - username
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 83
      start: 57
    functionDepth: 8
    functionLinenumber: 57
    functionLinenumberEnd: 83
    functionName: create_cert_auth_context_with_username
    functionSourceFile: /src/redis-rs/redis/tests/test_tls_cert_auth.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::clone
    - TempDir::new
    - join
    - path
    - Self::expect
    - redis_test::utils::build_client_cert_with_custom_cn
    - TestContext::new_with_cert_auth
    - build_keys_and_certs_for_tls
    linkageType: ''
    returnType: CertAuthTestContext
    signature: 'fn create_cert_auth_context_with_username(username: &str) -> CertAuthTestContext'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: generate_random_username
    functionSourceFile: /src/redis-rs/redis/tests/test_tls_cert_auth.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: fn generate_random_username() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:96,1
    - Dst: generate_random_username
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:99,1
    - Dst: create_cert_auth_context_with_username
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:102,1
    - Dst: CertAuthTestContext::setup_connection
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:105,1
    - Dst: redis::Connection::acl_setuser_rules
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:110,1
    - Dst: Rule::AddCommand
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:116,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:116,1
    - Dst: Rule::AddCommand
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:117,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:117,1
    - Dst: Rule::AddCommand
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:118,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:118,1
    - Dst: Rule::AddCommand
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:119,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:119,1
    - Dst: redis::Connection::acl_users
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:126,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:126,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:132,1
    - Dst: CertAuthTestContext::cert_auth_connection
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:136,1
    - Dst: redis::Connection::acl_whoami
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:139,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:139,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:151,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:151,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:155,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:155,1
    - Dst: redis::Connection::del
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 92
    functionDepth: 9
    functionLinenumber: 92
    functionLinenumberEnd: 167
    functionName: test_tls_certificate_authentication_with_matching_acl_user
    functionSourceFile: /src/redis-rs/redis/tests/test_tls_cert_auth.rs
    functionUses: 0
    functionsReached:
    - generate_random_username
    - redis::Connection::del
    - drop
    - '&str::to_string'
    - run_test_if_version_supported
    - Rule::AddCommand
    - redis::Connection::acl_whoami
    - redis::Connection::acl_setuser_rules
    - redis::Connection::set
    - Option::expect
    - redis::Connection::get
    - CertAuthTestContext::cert_auth_connection
    - redis::Connection::acl_users
    - create_cert_auth_context_with_username
    - expect
    - CertAuthTestContext::setup_connection
    linkageType: ''
    returnType: void
    signature: fn test_tls_certificate_authentication_with_matching_acl_user()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:173,1
    - Dst: generate_random_username
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:176,1
    - Dst: create_cert_auth_context_with_username
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:179,1
    - Dst: CertAuthTestContext::setup_connection
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:182,1
    - Dst: redis::Connection::acl_users
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:183,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:183,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:189,1
    - Dst: CertAuthTestContext::cert_auth_connection
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:193,1
    - Dst: redis::Connection::acl_whoami
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:196,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:196,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:208,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:208,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:212,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/tests/test_tls_cert_auth.rs:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 216
      start: 170
    functionDepth: 9
    functionLinenumber: 170
    functionLinenumberEnd: 216
    functionName: test_tls_certificate_authentication_no_matching_user
    functionSourceFile: /src/redis-rs/redis/tests/test_tls_cert_auth.rs
    functionUses: 0
    functionsReached:
    - generate_random_username
    - drop
    - run_test_if_version_supported
    - redis::Connection::acl_whoami
    - redis::Connection::set
    - Option::expect
    - redis::Connection::get
    - CertAuthTestContext::cert_auth_connection
    - redis::Connection::acl_users
    - create_cert_auth_context_with_username
    - expect
    - CertAuthTestContext::setup_connection
    linkageType: ''
    returnType: void
    signature: fn test_tls_certificate_authentication_no_matching_user()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 22
    functionName: assert_hit
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: assert_miss
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: assert_invalidate
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:39,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:40,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:45,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:45,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:47,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:49,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:49,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:53,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:53,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:53,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:53,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:59,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:60,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:62,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:62,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:62,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:62,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:69,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:70,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:72,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:72,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:72,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:72,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:72,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:78,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:78,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:78,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:79,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:80,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:81,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:83,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:83,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:83,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:83,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:90,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:91,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:92,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 1
    argNames:
    - test_with_optin
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 93
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 93
    functionName: test_cache_basic
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - get_cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - futures_time::task::sleep
    - assert_invalidate
    - TestContext::new
    - CacheConfig::new
    - into
    - query_async
    - assert_miss
    - supports_resp3
    - unwrap
    - '&mut Self::query_async'
    - Duration::from_millis
    - Self::set_mode
    - CacheConfig::default
    - assert_hit
    - Self::async_connection_with_cache_config
    linkageType: ''
    returnType: void
    signature: 'async fn test_cache_basic(test_with_optin: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:97,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:98,1
    - Dst: Self::async_connection_with_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:102,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:102,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:104,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:117,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:117,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:117,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:117,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:117,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:123,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:124,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:127,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:127,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:127,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:127,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:127,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:127,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:134,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:135,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:141,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:141,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:141,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:141,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:146,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:147,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 148
    functionName: test_cache_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Pipeline::cmd
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - arg
    - get_pipe
    - assert_miss
    - supports_resp3
    - ignore
    - unwrap
    - '&mut Self::query_async'
    - cmd
    - Self::async_connection_with_cache
    - query_async
    - assert_hit
    linkageType: ''
    returnType: void
    signature: async fn test_cache_mget()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_cache.rs:153,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:154,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:158,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:158,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:159,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:159,1
    - Dst: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:164,1
    - Dst: String::unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:164,1
    - Dst: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:165,1
    - Dst: String::unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:165,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:171,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:176,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:167,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:182,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:191,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:192,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:194,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:194,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:194,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:194,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:194,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:194,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:194,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:205,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:206,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:208,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:208,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:208,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:208,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:208,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:216,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:217,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 218
    functionName: test_module_json_cache_get_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - TestContext::with_modules
    - '&mut Self::arg'
    - clone
    - assert_miss
    - cmd
    - redis::Cmd::arg
    - arg
    - CacheConfig::new
    - get_pipe
    - Self::set_mode
    - Self::async_connection_with_cache_config
    - assert_hit
    - redis::Pipeline::cmd
    - get_cmd
    - serde_json::to_string
    - String::unwrap
    - supports_resp3
    - ignore
    - query_async
    linkageType: ''
    returnType: void
    signature: async fn test_module_json_cache_get_mget()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_cache.rs:223,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:224,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:228,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:228,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:229,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:229,1
    - Dst: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:234,1
    - Dst: String::unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:234,1
    - Dst: serde_json::to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:235,1
    - Dst: String::unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:235,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:241,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:246,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:237,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:252,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:252,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:252,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:252,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:252,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:261,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:262,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:264,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:264,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:264,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:264,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:264,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:273,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:274,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:276,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:276,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:276,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:276,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:276,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:285,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:286,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:288,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:288,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:288,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:288,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:288,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:297,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:298,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:300,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:300,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:300,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:300,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:300,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:308,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:309,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:311,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:311,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:311,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:311,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:311,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:319,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:320,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:322,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:322,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:322,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:322,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:322,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:330,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:331,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 168
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 332
    functionName: test_module_json_cache_get_mget_different_paths
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - TestContext::with_modules
    - '&mut Self::arg'
    - clone
    - assert_miss
    - cmd
    - redis::Cmd::arg
    - arg
    - CacheConfig::new
    - get_pipe
    - Self::set_mode
    - Self::async_connection_with_cache_config
    - assert_hit
    - redis::Pipeline::cmd
    - get_cmd
    - serde_json::to_string
    - String::unwrap
    - supports_resp3
    - ignore
    - query_async
    linkageType: ''
    returnType: void
    signature: async fn test_module_json_cache_get_mget_different_paths()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:336,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:337,1
    - Dst: Self::async_connection_with_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:341,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:341,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:342,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:343,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:343,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:345,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:345,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:347,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:347,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:349,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:350,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 351
      start: 335
    functionDepth: 12
    functionLinenumber: 335
    functionLinenumberEnd: 351
    functionName: test_cache_is_not_target_type_dependent
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - get
    - set
    - TestContext::new
    - assert_miss
    - supports_resp3
    - unwrap
    - Self::async_connection_with_cache
    - assert_hit
    linkageType: ''
    returnType: void
    signature: async fn test_cache_is_not_target_type_dependent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:355,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:356,1
    - Dst: Self::async_connection_with_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:360,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:360,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:362,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:379,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:380,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:382,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:382,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:382,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/tests/test_cache.rs:382,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:382,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/tests/test_cache.rs:382,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:382,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:382,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:382,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:396,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:397,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 72
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 398
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 398
    functionName: test_cache_with_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Pipeline::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - arg
    - get_pipe
    - '&mut Self::cmd'
    - assert_miss
    - supports_resp3
    - ignore
    - unwrap
    - '&mut Self::query_async'
    - cmd
    - Self::async_connection_with_cache
    - query_async
    - assert_hit
    linkageType: ''
    returnType: void
    signature: 'async fn test_cache_with_pipeline(atomic: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:403,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:404,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:408,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:408,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:409,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:409,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:413,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:413,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:413,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:413,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:420,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:421,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:423,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:423,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:423,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:423,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:423,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:430,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:431,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:432,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:434,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:434,1
    - Dst: '&mut Self::set_cache_config'
      Src: /src/redis-rs/redis/tests/test_cache.rs:434,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:436,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:436,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:434,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:434,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:441,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:442,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:444,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:444,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:444,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:444,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:451,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:452,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:454,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:454,1
    - Dst: '&mut Self::set_cache_config'
      Src: /src/redis-rs/redis/tests/test_cache.rs:454,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:456,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:456,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:454,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:454,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:461,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:462,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:463,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 464
    functionName: test_cache_basic_partial_opt_in
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - assert_invalidate
    - TestContext::new
    - CacheConfig::new
    - '&mut Self::set_cache_config'
    - query_async
    - assert_miss
    - supports_resp3
    - unwrap
    - '&mut Self::query_async'
    - Self::set_mode
    - CommandCacheConfig::new
    - assert_hit
    - Self::async_connection_with_cache_config
    - Self::set_enable_cache
    linkageType: ''
    returnType: void
    signature: async fn test_cache_basic_partial_opt_in()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:469,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:470,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:474,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:474,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:475,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:480,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:497,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:498,1
    - Dst: get_pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: redis::Cmd::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:503,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:503,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:501,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:518,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 83
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 520
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 520
    functionName: test_cache_pipeline_partial_opt_in
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::set_cache_config
    - unwrap
    - '&mut Self::query_async'
    - '&mut Self::arg'
    - TestContext::new
    - assert_miss
    - cmd
    - redis::Cmd::arg
    - arg
    - CacheConfig::new
    - get_pipe
    - Cmd::arg
    - Self::set_mode
    - CommandCacheConfig::new
    - Self::async_connection_with_cache_config
    - Self::set_enable_cache
    - redis::Pipeline::cmd
    - assert_hit
    - '&mut Self::cmd'
    - supports_resp3
    - ignore
    - query_async
    linkageType: ''
    returnType: void
    signature: 'async fn test_cache_pipeline_partial_opt_in(atomic: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:524,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:525,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:530,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:530,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:532,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:534,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:534,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:538,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:546,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:546,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:546,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:546,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:546,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:553,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:554,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:556,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:556,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:556,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:556,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:556,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:563,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:564,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:566,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:566,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:566,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:566,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:572,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:573,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:575,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:575,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:575,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:575,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:581,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:582,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 84
    argCount: 1
    argNames:
    - test_with_opt_in
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 583
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 583
    functionName: test_cache_different_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - get_cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - CacheConfig::new
    - arg
    - assert_miss
    - supports_resp3
    - unwrap
    - '&mut Self::query_async'
    - Self::set_mode
    - CacheConfig::default
    - query_async
    - Self::async_connection_with_cache_config
    - assert_hit
    linkageType: ''
    returnType: void
    signature: 'async fn test_cache_different_commands(test_with_opt_in: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:588,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:589,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:594,1
    - Dst: Self::set_mode
      Src: /src/redis-rs/redis/tests/test_cache.rs:594,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:596,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:599,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_cache.rs:599,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:600,1
    - Dst: Self::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:599,1
    - Dst: get_cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:603,1
    - Dst: Option::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:604,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:606,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:606,1
    - Dst: Option::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:612,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:612,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:614,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:615,1
    - Dst: Option::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:617,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:617,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:619,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:620,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_cache.rs:623,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:623,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cache.rs:624,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:628,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:628,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_cache.rs:632,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:635,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:635,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:642,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:643,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 77
    argCount: 1
    argNames:
    - test_with_optin
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 644
      start: 587
    functionDepth: 3
    functionLinenumber: 587
    functionLinenumberEnd: 644
    functionName: test_connection_manager_maintains_statistics_after_crashes
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - client_addr
    - TestContext::new_with_addr
    - unwrap
    - send_packed_command
    - TestContext::new
    - clone
    - Self::set_max_delay
    - assert_miss
    - Self::set_cache_config
    - drop
    - CacheConfig::new
    - get_connection_manager_with_config
    - Option::query_async
    - Self::set_mode
    - redis::cmd
    - get_cmd
    - is_ok
    - supports_resp3
    - Duration::from_millis
    - redis::aio::ConnectionManagerConfig::new
    - CacheConfig::default
    - assert_hit
    - Option::arg
    linkageType: ''
    returnType: void
    signature: 'async fn test_connection_manager_maintains_statistics_after_crashes(test_with_optin:
      bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cache.rs:649,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:650,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:650,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:652,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:656,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:657,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:657,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:657,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:657,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:663,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:664,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:666,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:666,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:666,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:666,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:673,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:674,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:676,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:678,1
    - Dst: redis::cluster_routing::RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cache.rs:679,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:676,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:687,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:689,1
    - Dst: redis::cluster_routing::RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cache.rs:690,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:697,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:697,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:697,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:697,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:704,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:705,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:706,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 707
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 707
    functionName: test_cache_async_cluster_reconnect_all_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - TestClusterContext::new_with_cluster_client_builder
    - assert_invalidate
    - assert_miss
    - supports_resp3
    - Self::async_connection
    - '&mut Self::query_async'
    - cache_config
    - unwrap
    - CacheConfig::default
    - assert_hit
    - route_command
    - redis::cluster_routing::RoutingInfo::MultiNode
    linkageType: ''
    returnType: void
    signature: async fn test_cache_async_cluster_reconnect_all_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cache.rs:712,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:713,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:713,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:715,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:719,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cache.rs:721,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:721,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cache.rs:722,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:722,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:724,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:724,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:724,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:724,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:724,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:730,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:731,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:734,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:734,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:734,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:734,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:734,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:734,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:741,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:742,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:748,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:748,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:748,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:748,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:753,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:754,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 711
    functionDepth: 3
    functionLinenumber: 711
    functionLinenumberEnd: 755
    functionName: test_cache_async_cluster_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - set
    - TestClusterContext::new_with_cluster_client_builder
    - redis::Cmd::arg
    - '&mut Self::arg'
    - arg
    - assert_miss
    - supports_resp3
    - Self::async_connection
    - unwrap
    - cache_config
    - '&mut Self::query_async'
    - CacheConfig::default
    - query_async
    - assert_hit
    linkageType: ''
    returnType: void
    signature: async fn test_cache_async_cluster_mget()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:760,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_cache.rs:761,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 766
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 766
    functionName: get_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 5
    functionsReached:
    - redis::pipe
    - Pipeline::atomic
    linkageType: ''
    returnType: redis::Pipeline
    signature: 'fn get_pipe(atomic: bool) -> redis::Pipeline'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cache.rs:771,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:772,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:772,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:774,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_cache.rs:780,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:799,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:800,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:800,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:800,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:800,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:800,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:807,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:807,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:807,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:807,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:813,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:814,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:815,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:817,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:817,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:817,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:817,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:823,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:824,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:826,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:826,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:826,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:826,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cache.rs:832,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cache.rs:832,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/tests/test_cache.rs:834,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cache.rs:832,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cache.rs:836,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cache.rs:836,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:838,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:838,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:839,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:840,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:840,1
    - Dst: parse
      Src: /src/redis-rs/redis/tests/test_cache.rs:842,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:842,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/tests/test_cache.rs:843,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:843,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:846,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:847,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/tests/test_cache.rs:848,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:848,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cache.rs:832,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: find
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cache.rs:855,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:853,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cache.rs:857,1
    - Dst: find
      Src: /src/redis-rs/redis/tests/test_cache.rs:857,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cache.rs:859,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:857,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:862,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:863,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:863,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:863,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:863,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:863,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:863,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:869,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:862,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:874,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:875,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:875,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:875,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:875,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:875,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:875,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:881,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:874,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:887,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:888,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:888,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:888,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:888,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:888,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:888,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:888,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:895,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:887,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:899,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:899,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:899,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:901,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:903,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:908,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:909,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:909,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:909,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:909,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:909,1
    - Dst: take
      Src: /src/redis-rs/redis/tests/test_cache.rs:909,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:915,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:908,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:920,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:921,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:921,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:921,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:921,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:921,1
    - Dst: take
      Src: /src/redis-rs/redis/tests/test_cache.rs:921,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:927,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:920,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:932,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:933,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:933,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:933,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:933,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:944,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:947,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:948,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 280
    argCount: 1
    argNames:
    - migrate
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 949
      start: 770
    functionDepth: 3
    functionLinenumber: 770
    functionLinenumberEnd: 949
    functionName: test_cache_async_cluster_slot_change
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - to_string
    - assert_invalidate
    - filter
    - to_owned
    - find
    - Self::async_connection
    - unwrap
    - '&mut Self::query_async'
    - collect
    - '&mut Self::arg'
    - map
    - assert_miss
    - split_once
    - cache_config
    - iter
    - parse
    - route_command
    - parse::<u16>
    - take
    - redis::Cmd::arg
    - TestClusterContext::new_with_cluster_client_builder
    - futures_time::task::sleep
    - arg
    - is_empty
    - assert_hit
    - redis::cmd
    - get_singe_route
    - run_test_if_version_supported
    - into
    - supports_resp3
    - Duration::from_millis
    - split
    - CacheConfig::default
    - query_async
    - contains
    linkageType: ''
    returnType: void
    signature: 'async fn test_cache_async_cluster_slot_change(migrate: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:953,1
    - Dst: Cmd::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:955,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:955,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - name
    - enable_opt_in
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 958
      start: 952
    functionDepth: 1
    functionLinenumber: 952
    functionLinenumberEnd: 958
    functionName: get_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 5
    functionsReached:
    - redis::cmd
    - CommandCacheConfig::new
    - Cmd::set_cache_config
    - Self::set_enable_cache
    linkageType: ''
    returnType: redis::Cmd
    signature: 'fn get_cmd(name: &str, enable_opt_in: bool) -> redis::Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:962,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:963,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:967,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:968,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:967,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:971,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:971,1
    - Dst: '&mut Self::take'
      Src: /src/redis-rs/redis/tests/test_cache.rs:971,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:972,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:972,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:973,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:973,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:975,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:976,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 977
      start: 961
    functionDepth: 2
    functionLinenumber: 961
    functionLinenumberEnd: 977
    functionName: test_readonly_commands_with_patterns_are_not_cached
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - Cmd::query_async
    - TestContext::new
    - CacheConfig::new
    - '&mut Self::take'
    - assert_miss
    - supports_resp3
    - unwrap
    - assert_hit
    - Self::async_connection_with_cache_config
    linkageType: ''
    returnType: void
    signature: async fn test_readonly_commands_with_patterns_are_not_cached()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:981,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:982,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:986,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:987,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:986,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:990,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:990,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:990,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:990,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:990,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:996,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:996,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:996,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:996,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:1002,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:1002,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:1002,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1002,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:1009,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:1010,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:1011,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:1013,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:1013,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:1013,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:1013,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1013,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:1019,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:1019,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:1019,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:1021,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:1021,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:1021,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1021,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:1028,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:1029,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:1030,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 1031
    functionName: test_bitcount_is_handled_correctly
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - futures_time::task::sleep
    - assert_invalidate
    - TestContext::new
    - CacheConfig::new
    - into
    - assert_miss
    - supports_resp3
    - unwrap
    - '&mut Self::query_async'
    - Duration::from_millis
    - query_async
    - Self::async_connection_with_cache_config
    - assert_hit
    linkageType: ''
    returnType: void
    signature: async fn test_bitcount_is_handled_correctly()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:1035,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:1036,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:1039,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:1040,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1039,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:1044,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:1045,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:1046,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1046,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:1048,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1048,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:1050,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:1051,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1034
    functionDepth: 12
    functionLinenumber: 1034
    functionLinenumberEnd: 1052
    functionName: test_that_a_pipeline_with_all_commands_cached_does_not_hang
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - get
    - TestContext::new
    - CacheConfig::new
    - assert_miss
    - supports_resp3
    - unwrap
    - query_async
    - Self::async_connection_with_cache_config
    - assert_hit
    linkageType: ''
    returnType: void
    signature: async fn test_that_a_pipeline_with_all_commands_cached_does_not_hang()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 22
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 22
    functionName: types::test_is_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    linkageType: ''
    returnType: void
    signature: fn test_is_io_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:26,1
    - Dst: std::io::Error::other
      Src: /src/redis-rs/redis/tests/test_types.rs:26,1
    - Dst: source
      Src: /src/redis-rs/redis/tests/test_types.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: types::test_redis_error_source_presence_for_io_wrapped_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::other
    - RedisError::from
    - source
    linkageType: ''
    returnType: void
    signature: fn test_redis_error_source_presence_for_io_wrapped_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:37,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:40,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_types.rs:41,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: types::test_redis_error_source_absence_for_non_io_wrapped_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - RedisError::from
    linkageType: ''
    returnType: void
    signature: fn test_redis_error_source_absence_for_non_io_wrapped_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 84
    functionName: types::test_is_single_arg
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_is_single_arg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:116,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:117,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: types::test_info_dict
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - parse_redis_value
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_info_dict()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:189,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:190,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 194
    functionName: types::test_role_ret
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - parse_redis_value
    - clone
    linkageType: ''
    returnType: void
    signature: fn test_role_ret()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:203,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:203,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:206,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:206,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:209,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:209,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:213,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:213,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:217,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: types::test_i32
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_i32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:225,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:225,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:228,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 231
    functionName: types::test_u32
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_u32()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:236,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:237,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:237,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: types::test_parse_boxed
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - String::clone
    - '&str::to_string'
    - parse_redis_value
    - Value::SimpleString
    linkageType: ''
    returnType: void
    signature: fn test_parse_boxed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:245,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:246,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:246,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:246,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:250,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:250,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: types::test_parse_arc
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - String::clone
    - '&str::to_string'
    - parse_redis_value
    - Value::SimpleString
    linkageType: ''
    returnType: void
    signature: fn test_parse_arc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:258,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:259,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:259,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:259,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:263,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_types.rs:263,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 266
    functionName: types::test_parse_rc
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - String::clone
    - '&str::to_string'
    - parse_redis_value
    - Value::SimpleString
    linkageType: ''
    returnType: void
    signature: fn test_parse_rc()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:271,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:271,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:279,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:280,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:280,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:280,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:284,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:285,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:285,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:285,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:287,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 290
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 290
    functionName: types::test_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Value::Array
    - Self::clone
    - parse_redis_value
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:295,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:295,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:303,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:304,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:304,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:304,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:308,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:309,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:309,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:309,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:311,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 321
    functionName: types::test_box_slice
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Value::Array
    - Self::clone
    - parse_redis_value
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_box_slice()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value::<Arc<[_]>>
      Src: /src/redis-rs/redis/tests/test_types.rs:326,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:326,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:334,1
    - Dst: parse_redis_value::<Arc<[_]>>
      Src: /src/redis-rs/redis/tests/test_types.rs:336,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:336,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:336,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:340,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:342,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:342,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_types.rs:342,1
    - Dst: parse_redis_value::<Arc<[_]>>
      Src: /src/redis-rs/redis/tests/test_types.rs:344,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 354
    functionName: types::test_arc_slice
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value::<Arc<[_]>>
    - Value::BulkString
    - Value::Array
    - Self::clone
    - parse_redis_value
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_arc_slice()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:359,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:359,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: types::test_single_bool_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - parse_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn test_single_bool_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:368,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:368,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 372
    functionName: types::test_single_i32_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - parse_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn test_single_i32_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:377,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:377,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 381
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 381
    functionName: types::test_single_u32_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - parse_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn test_single_u32_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:386,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:386,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 389
    functionName: types::test_single_string_vec
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::into'
    - parse_redis_value
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn test_single_string_vec()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:394,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: types::test_tuple
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_tuple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:406,1
    - Dst: parse_redis_value::<Vec<(u8, u8)>>
      Src: /src/redis-rs/redis/tests/test_types.rs:412,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:413,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_types.rs:412,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 416
    functionName: types::test_tuple_does_not_panic_if_vec_is_wrong_size
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value::<Vec<(u8, u8)>>
    - unwrap_err
    - clone
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_tuple_does_not_panic_if_vec_is_wrong_size()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:427,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:427,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:435,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:436,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:436,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:437,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:437,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:438,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:438,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:443,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:443,1
    - Dst: Hasher::default
      Src: /src/redis-rs/redis/tests/test_types.rs:452,1
    - Dst: HashMap::with_hasher
      Src: /src/redis-rs/redis/tests/test_types.rs:453,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:454,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:454,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:455,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:455,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:456,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:456,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:460,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 419
    functionDepth: 8
    functionLinenumber: 419
    functionLinenumberEnd: 463
    functionName: types::test_hashmap
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::insert
    - HashMap::new
    - Hasher::default
    - HashMap::with_hasher
    - Value::Array
    - '&str::into'
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_hashmap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:483,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:483,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:483,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:484,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:485,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:485,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:486,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:486,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:487,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:487,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:493,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:493,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:493,1
    - Dst: Hasher::default
      Src: /src/redis-rs/redis/tests/test_types.rs:495,1
    - Dst: HashMap::with_hasher
      Src: /src/redis-rs/redis/tests/test_types.rs:496,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:497,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:497,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:498,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:498,1
    - Dst: TlsFilePaths::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:499,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:499,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:503,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 467
    functionDepth: 8
    functionLinenumber: 467
    functionLinenumberEnd: 506
    functionName: types::test_hashbrown_hashmap
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::insert
    - HashMap::new
    - Hasher::default
    - HashMap::with_hasher
    - clone
    - Value::Array
    - '&str::into'
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_hashbrown_hashmap()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:514,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:514,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:520,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:521,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:521,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:522,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:522,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:523,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:523,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:527,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:527,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:530,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_types.rs:531,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:531,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_types.rs:532,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:532,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_types.rs:533,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:533,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:535,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_types.rs:538,1
    - Dst: std::iter::Chain::collect
      Src: /src/redis-rs/redis/tests/test_types.rs:538,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 543
      start: 510
    functionDepth: 8
    functionLinenumber: 510
    functionLinenumberEnd: 543
    functionName: types::test_hashbrown_hashset
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::collect
    - '&str::to_string'
    - Self::insert
    - Value::Int
    - to_redis_args
    - into_iter
    - HashSet::new
    - Value::Array
    - parse_redis_value
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_hashbrown_hashset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:548,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:548,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:548,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:551,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:551,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:551,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:555,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:555,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_types.rs:555,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:558,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:558,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:561,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:561,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:564,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:564,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:567,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:570,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:573,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:573,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:576,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:576,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 579
    functionName: types::test_bool
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Int
    - Value::BulkString
    - '&str::into'
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_bool()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:588,1
    - Dst: Bytes::from_static
      Src: /src/redis-rs/redis/tests/test_types.rs:589,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:591,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:591,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:594,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:594,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:597,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:600,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:603,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:603,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:606,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 609
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 609
    functionName: types::test_bytes
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - Value::Int
    - Value::BulkString
    - Bytes::from_static
    - parse_redis_value
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Uuid::from_str
      Src: /src/redis-rs/redis/tests/test_types.rs:618,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:618,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_types.rs:619,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/tests/test_types.rs:619,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:621,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:621,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:625,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:625,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:628,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:631,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:634,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:634,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:637,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 639
    functionName: types::test_uuid
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Result::unwrap
    - redis_value
    - Value::Int
    - to_vec
    - Uuid::from_str
    - Value::BulkString
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn test_uuid()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_types.rs:647,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:650,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:650,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:654,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:654,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:657,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:661,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:661,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:664,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:667,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:667,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:670,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 673
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 673
    functionName: types::test_cstring
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - parse_redis_value
    - Vec::from
    - Value::BulkString
    linkageType: ''
    returnType: void
    signature: fn test_cstring()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 724
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 724
    functionName: types::test_std_types_to_redis_args
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_std_types_to_redis_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:732,1
    - Dst: Result::to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:739,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_types.rs:745,1
    - Dst: "into_iter()\n            .collect::<BTreeMap<_, _>>"
      Src: /src/redis-rs/redis/tests/test_types.rs:745,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 752
    functionName: types::test_deref_types_to_redis_args
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - "into_iter()\n            .collect::<BTreeMap<_, _>>"
    - into_iter
    - Result::to_redis_args
    - to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_deref_types_to_redis_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:758,1
    - Dst: TlsFilePaths::to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:759,1
    - Dst: Result::to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 771
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 771
    functionName: types::test_cow_types_to_redis_args
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - TlsFilePaths::to_redis_args
    - Result::to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_cow_types_to_redis_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter_mut
      Src: /src/redis-rs/redis/tests/test_types.rs:778,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_types.rs:778,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:782,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:785,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:786,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:786,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:787,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:787,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:786,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:790,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:791,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:791,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:793,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 795
      start: 774
    functionDepth: 8
    functionLinenumber: 774
    functionLinenumberEnd: 795
    functionName: types::test_large_usize_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - io::Result::unwrap
    - Result::unwrap
    - map
    - clone
    - to_redis_args
    - Value::BulkString
    - encode_value
    - iter
    - Value::Array
    - Result::iter_mut
    - enumerate
    - Vec::new
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_large_usize_array_to_redis_args_and_back()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::iter_mut
      Src: /src/redis-rs/redis/tests/test_types.rs:802,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_types.rs:802,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:806,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:810,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:810,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:810,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/tests/test_types.rs:810,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:810,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:811,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:812,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:812,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:814,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:814,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 816
      start: 798
    functionDepth: 8
    functionLinenumber: 798
    functionLinenumberEnd: 816
    functionName: types::test_large_u8_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - io::Result::unwrap
    - Result::unwrap
    - map
    - Value::Int
    - to_redis_args
    - encode_value
    - iter
    - Value::Array
    - Result::iter_mut
    - enumerate
    - Vec::new
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_large_u8_array_to_redis_args_and_back()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:822,1
    - Dst: String::new
      Src: /src/redis-rs/redis/tests/test_types.rs:822,1
    - Dst: Result::iter_mut
      Src: /src/redis-rs/redis/tests/test_types.rs:823,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_types.rs:823,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:827,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:830,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:831,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:831,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:832,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:832,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:831,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:835,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:836,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:836,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:838,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 840
      start: 819
    functionDepth: 8
    functionLinenumber: 819
    functionLinenumberEnd: 840
    functionName: types::test_large_string_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - io::Result::unwrap
    - Result::unwrap
    - map
    - String::new
    - clone
    - to_redis_args
    - Value::BulkString
    - encode_value
    - iter
    - Value::Array
    - Result::iter_mut
    - enumerate
    - Vec::new
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_large_string_array_to_redis_args_and_back()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/test_types.rs:848,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_types.rs:851,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_types.rs:852,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_types.rs:852,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/tests/test_types.rs:853,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_types.rs:853,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_types.rs:852,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_types.rs:856,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/test_types.rs:857,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:857,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:859,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:859,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:862,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 843
    functionDepth: 8
    functionLinenumber: 843
    functionLinenumberEnd: 864
    functionName: types::test_0_length_usize_array_to_redis_args_and_back
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - io::Result::unwrap
    - Result::unwrap
    - map
    - clone
    - Value::BulkString
    - to_redis_args
    - encode_value
    - iter
    - Value::Array
    - Vec::new
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_0_length_usize_array_to_redis_args_and_back()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:870,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:870,1
    - Dst: redis::FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:873,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:873,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_types.rs:878,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 891
    functionName: types::test_attributes
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Result::unwrap
    - redis::FromRedisValue::from_redis_value_ref
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_attributes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:896,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:897,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:897,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 907
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 907
    functionName: types::arrays_to_tuples
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - parse_redis_value
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn arrays_to_tuples()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:912,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:921,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:921,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:923,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:924,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:924,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:924,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:925,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:925,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:925,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:927,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:928,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:928,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:928,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:929,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:929,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:929,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:930,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:930,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:930,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:932,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:933,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:933,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:933,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 947
      start: 910
    functionDepth: 8
    functionLinenumber: 910
    functionLinenumberEnd: 947
    functionName: types::test_complex_nested_tuples
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - '&str::to_string'
    - redis_value
    - Self::insert
    - unwrap
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_complex_nested_tuples()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:952,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_types.rs:959,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_types.rs:959,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:961,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:962,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:962,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:962,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:963,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:963,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:963,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:964,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:965,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:965,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:966,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:966,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:967,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:967,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_types.rs:969,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:970,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:970,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:970,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:971,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:971,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:971,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_types.rs:972,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:973,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:973,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:974,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:974,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_types.rs:975,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_types.rs:975,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 950
    functionDepth: 8
    functionLinenumber: 950
    functionLinenumberEnd: 985
    functionName: types::test_complex_nested_tuples_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - '&str::to_string'
    - redis_value
    - Self::insert
    - unwrap
    - HashSet::new
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_complex_nested_tuples_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:29,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:29,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:29,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:29,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:29,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:34,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:34,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:34,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - con
    argTypes:
    - ClusterConnection
    constantsTouched: []
    func_position:
      end: 45
      start: 28
    functionDepth: 2
    functionLinenumber: 28
    functionLinenumberEnd: 45
    functionName: cluster::smoke_test_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - exec
    - '&mut Self::exec'
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn smoke_test_connection(mut con: ClusterConnection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:49,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:50,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: cluster::test_cluster_basics
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - smoke_test_connection
    - TestClusterContext::new
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_cluster_basics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_cluster.rs:55,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:57,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:59,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:61,1
    - Dst: database_id
      Src: /src/redis-rs/redis/tests/test_cluster.rs:63,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:66,1
    - Dst: assert_all_nodes_on_db
      Src: /src/redis-rs/redis/tests/test_cluster.rs:68,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:71,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:72,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:73,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:71,1
    - Dst: assert_all_nodes_on_db
      Src: /src/redis-rs/redis/tests/test_cluster.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 54
    functionDepth: 9
    functionLinenumber: 54
    functionLinenumberEnd: 78
    functionName: cluster::test_cluster_numbered_database
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - assert_all_nodes_on_db
    - bool::route_command
    - redis::cmd
    - TestClusterContext::new_with_config_and_builder
    - database_id
    - run_test_if_version_supported
    - RoutingInfo::MultiNode
    - Default::default
    - connection
    - Some
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cluster_numbered_database()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:81,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:81,1
    - Dst: '&mut Self::take'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:81,1
    - Dst: '&mut ClusterConnection::route_command'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:82,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:85,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:82,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:88,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:88,1
    - Dst: redis::ConnectionInfo::split
      Src: /src/redis-rs/redis/tests/test_cluster.rs:94,1
    - Dst: find_map
      Src: /src/redis-rs/redis/tests/test_cluster.rs:94,1
    - Dst: Option::strip_prefix
      Src: /src/redis-rs/redis/tests/test_cluster.rs:96,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster.rs:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 2
    argNames:
    - con
    - expected_db
    argTypes:
    - '&mut ClusterConnection'
    - u32
    constantsTouched: []
    func_position:
      end: 104
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 104
    functionName: cluster::assert_all_nodes_on_db
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::ConnectionInfo::split
    - redis::Cmd::arg
    - Result::unwrap
    - Option::strip_prefix
    - '&mut Self::take'
    - RoutingInfo::MultiNode
    - find_map
    - unwrap_or_else
    - '&mut ClusterConnection::route_command'
    - from_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn assert_all_nodes_on_db(con: &mut ClusterConnection, expected_db:
      u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster.rs:111,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:116,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 9
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: cluster::test_default_reject_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_config
    - Default::default
    - ClusterType::get_intended
    linkageType: ''
    returnType: void
    signature: fn test_default_reject_invalid_hostnames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster.rs:129,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:134,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:138,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/tests/test_cluster.rs:140,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:143,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 144
      start: 126
    functionDepth: 9
    functionLinenumber: 126
    functionLinenumberEnd: 144
    functionName: cluster::test_danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - danger_accept_invalid_hostnames
    - TestClusterContext::new_with_config_and_builder
    - Default::default
    - connection
    - smoke_test_connection
    - ClusterType::get_intended
    linkageType: ''
    returnType: void
    signature: fn test_danger_accept_invalid_hostnames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:148,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:149,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:150,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:149,1
    - Dst: RedisCluster::password
      Src: /src/redis-rs/redis/tests/test_cluster.rs:151,1
    - Dst: disable_default_user
      Src: /src/redis-rs/redis/tests/test_cluster.rs:153,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:155,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 156
    functionName: cluster::test_cluster_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisCluster::username
    - TestClusterContext::new_with_cluster_client_builder
    - disable_default_user
    - username
    - connection
    - '&''static str::password'
    - smoke_test_connection
    - RedisCluster::password
    linkageType: ''
    returnType: void
    signature: fn test_cluster_with_username_and_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:160,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:161,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:162,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 166
    functionName: cluster::test_cluster_with_bad_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - username
    - RedisCluster::username
    - TestClusterContext::new_with_cluster_client_builder
    - '&''static str::password'
    linkageType: ''
    returnType: void
    signature: fn test_cluster_with_bad_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:170,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:171,1
    - Dst: read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:172,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:174,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:177,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:177,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:177,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:177,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:177,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:182,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:182,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:182,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 169
    functionDepth: 10
    functionLinenumber: 169
    functionLinenumberEnd: 194
    functionName: cluster::test_cluster_read_from_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestClusterContext::new_with_config_and_builder
    - exec
    - connection
    - RedisClusterConfiguration::single_replica_config
    - read_routing_strategy
    - '&mut Self::exec'
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cluster_read_from_replicas()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:198,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:199,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:201,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:201,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:201,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:201,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:201,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_cluster.rs:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 215
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 215
    functionName: cluster::test_cluster_eval
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - arg
    - connection
    - query
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_eval()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster.rs:219,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster.rs:219,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:222,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:224,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:226,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:226,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:227,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:227,1
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_cluster.rs:228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 231
      start: 218
    functionDepth: 3
    functionLinenumber: 218
    functionLinenumberEnd: 231
    functionName: cluster::test_cluster_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - ProtocolVersion::supports_resp3
    - bool::hgetall
    - unwrap
    - connection
    - bool::hset
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:235,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:237,1
    - Dst: bool::mset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:239,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 245
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 245
    functionName: cluster::test_cluster_multi_shard_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - bool::mget
    - unwrap
    - connection
    - TestClusterContext::new
    - bool::mset
    linkageType: ''
    returnType: void
    signature: fn test_cluster_multi_shard_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:250,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:251,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:253,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_cluster.rs:261,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_cluster.rs:261,1
    - Dst: invoke
      Src: /src/redis-rs/redis/tests/test_cluster.rs:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: cluster::test_cluster_script
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - key
    - connection
    - redis::Script::new
    - TestClusterContext::new
    - invoke
    linkageType: ''
    returnType: void
    signature: fn test_cluster_script()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:267,1
    - Dst: wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:268,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:271,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:271,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:271,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:271,1
    - Dst: "cmd(\"SET\")\n            .arg(\"key_1\")\n            .arg(42)\n    \
        \        .query::<Vec<String>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:271,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 279
    functionName: cluster::test_cluster_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterPipeline::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - "cmd(\"SET\")\n            .arg(\"key_1\")\n            .arg(42)\n         \
      \   .query::<Vec<String>>"
    - cluster_pipe
    - unwrap
    - connection
    - wait_for_cluster_up
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:284,1
    - Dst: wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:285,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:286,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: "cmd(\"HSET\")\n            .arg(\"hash_1\")\n            .arg(\"key_1\"\
        )\n            .arg(\"value_1\")\n            .cmd(\"ZADD\")\n           \
        \ .arg(\"zset\")\n            .arg(1)\n            .arg(\"zvalue_2\")\n  \
        \          .query::<Vec<i64>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:288,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:302,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:302,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:302,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:302,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:302,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:302,1
    - Dst: "cmd(\"HGET\")\n            .arg(\"hash_1\")\n            .arg(\"key_1\"\
        )\n            .cmd(\"ZCARD\")\n            .arg(\"zset\")\n            .query::<Vec<redis::Value>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:302,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:302,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster.rs:311,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:311,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster.rs:314,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: cluster::test_cluster_pipeline_multiple_keys
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - ClusterPipeline::cmd
    - "cmd(\"HGET\")\n            .arg(\"hash_1\")\n            .arg(\"key_1\")\n\
      \            .cmd(\"ZCARD\")\n            .arg(\"zset\")\n            .query::<Vec<redis::Value>>"
    - redis::Cmd::arg
    - '&mut Self::arg'
    - Result::unwrap
    - arg
    - cluster_pipe
    - Cmd::arg
    - unwrap
    - connection
    - wait_for_cluster_up
    - cmd
    - "cmd(\"HSET\")\n            .arg(\"hash_1\")\n            .arg(\"key_1\")\n\
      \            .arg(\"value_1\")\n            .cmd(\"ZADD\")\n            .arg(\"\
      zset\")\n            .arg(1)\n            .arg(\"zvalue_2\")\n            .query::<Vec<i64>>"
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_pipeline_multiple_keys()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:320,1
    - Dst: wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:321,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:322,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:324,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:324,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:324,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:324,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:324,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:324,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:324,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:324,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:338,1
    - Dst: ClusterPipeline::keys
      Src: /src/redis-rs/redis/tests/test_cluster.rs:338,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:338,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 344
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 344
    functionName: cluster::test_cluster_pipeline_invalid_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterPipeline::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - cluster_pipe
    - ignore
    - exec
    - connection
    - wait_for_cluster_up
    - unwrap_err
    - cmd
    - RedisResult::unwrap_err
    - TestClusterContext::new
    - ClusterPipeline::keys
    linkageType: ''
    returnType: void
    signature: fn test_cluster_pipeline_invalid_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:348,1
    - Dst: wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:349,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:350,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:351,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:353,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:354,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:356,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:357,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster.rs:358,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:358,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:360,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:360,1
    - Dst: Pipeline::clear
      Src: /src/redis-rs/redis/tests/test_cluster.rs:362,1
    - Dst: Pipeline::get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:364,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:367,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:367,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 347
    functionDepth: 8
    functionLinenumber: 347
    functionLinenumberEnd: 369
    functionName: cluster::test_cluster_pipeline_command_ordering
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Pipeline::exec
    - Self::push
    - Pipeline::clear
    - cluster_pipe
    - Vec::new
    - Pipeline::set
    - ignore
    - unwrap
    - connection
    - wait_for_cluster_up
    - Pipeline::get
    - query::<Vec<String>>
    - TestClusterContext::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cluster_pipeline_command_ordering()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:374,1
    - Dst: wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:375,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:376,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:377,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:379,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:380,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:383,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:383,1
    - Dst: '&mut Self::ignore'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:383,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster.rs:387,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:387,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:388,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:389,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:392,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:392,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_cluster.rs:394,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster.rs:394,1
    - Dst: Pipeline::clear
      Src: /src/redis-rs/redis/tests/test_cluster.rs:396,1
    - Dst: Pipeline::get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:398,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:401,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:401,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 373
    functionDepth: 8
    functionLinenumber: 373
    functionLinenumberEnd: 403
    functionName: cluster::test_cluster_pipeline_ordering_with_improper_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - cluster_pipe
    - unwrap
    - connection
    - RedisResult::unwrap_err
    - std::time::Duration::from_secs
    - '&mut Self::ignore'
    - Pipeline::cmd
    - TestClusterContext::new
    - Pipeline::set
    - Pipeline::get
    - query::<Vec<String>>
    - redis::Cmd::arg
    - Pipeline::clear
    - wait_for_cluster_up
    - Pipeline::exec
    - Self::push
    - ignore
    - std::thread::sleep
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_pipeline_ordering_with_improper_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:410,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster.rs:411,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:412,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:412,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:412,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:413,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:413,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:414,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:414,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:414,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:416,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:416,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:420,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:420,1
    - Dst: arg("test").query::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:420,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 423
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 423
    functionName: cluster::test_cluster_can_connect_to_server_that_sends_cluster_slots_with_null_host_name
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - arg("test").query::<Value>
    - Err
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - contains_slice
    - is_connection_check
    - Ok
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_cluster_can_connect_to_server_that_sends_cluster_slots_with_null_host_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:430,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster.rs:431,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:432,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:432,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:432,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:433,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:433,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:434,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:434,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:434,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:439,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:439,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:443,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:443,1
    - Dst: arg("test").query::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:443,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 445
    functionName: cluster::test_cluster_can_connect_to_server_that_sends_cluster_slots_with_partial_nodes_with_unknown_host_name
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - arg("test").query::<Value>
    - Err
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - contains_slice
    - is_connection_check
    - Ok
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_cluster_can_connect_to_server_that_sends_cluster_slots_with_partial_nodes_with_unknown_host_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:451,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:456,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:457,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:457,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:460,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:462,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:463,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:463,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:464,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:464,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:464,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:469,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:469,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 448
    functionDepth: 1
    functionLinenumber: 448
    functionLinenumberEnd: 472
    functionName: cluster::test_cluster_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - parse_redis_value
    - arg("test").query::<Option<i32>>
    - Err
    - redis_value
    - Cmd::arg
    - ClusterClientBuilder::retries
    - atomic::AtomicUsize::new
    - Ok
    - cmd
    - fetch_add
    - respond_startup
    linkageType: ''
    returnType: void
    signature: fn test_cluster_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:478,1
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:478,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:484,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:485,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:485,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:488,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:490,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:491,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:492,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:492,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:497,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:497,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 475
    functionDepth: 8
    functionLinenumber: 475
    functionLinenumberEnd: 504
    functionName: cluster::test_cluster_exhaust_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - parse_redis_value
    - arg("test").query::<Option<i32>>
    - Err
    - clone
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - atomic::AtomicUsize::new
    - cmd
    - fetch_add
    - respond_startup
    linkageType: ''
    returnType: void
    signature: fn test_cluster_exhaust_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:510,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:511,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:516,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_cluster.rs:517,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:518,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_cluster.rs:520,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster.rs:522,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:523,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:523,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:523,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:526,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:530,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:530,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:532,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:532,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:532,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:539,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:539,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:539,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:544,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:544,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:544,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 547
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 547
    functionName: cluster::test_cluster_move_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Self::load
    - Self::store
    - arg("test").query::<Option<i32>>
    - Err
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - atomic::AtomicBool::new
    - is_connection_check
    - atomic::AtomicUsize::new
    - Ok
    - cmd
    - fetch_add
    - respond_startup
    linkageType: ''
    returnType: void
    signature: fn test_cluster_move_error_when_new_node_is_added()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:552,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:552,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:557,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:558,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:562,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:565,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:568,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:568,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:576,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:576,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:580,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:580,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:580,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:590,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:590,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:590,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 593
      start: 550
    functionDepth: 8
    functionLinenumber: 550
    functionLinenumberEnd: 593
    functionName: cluster::test_cluster_ask_redirect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - ClusterClient::builder
    - Self::fetch_add
    - MockEnv::with_client_builder
    - arg("test").query::<Option<i32>>
    - Err
    - redis_value
    - respond_startup_two_nodes
    - Cmd::arg
    - Arc::new
    - Ok
    - cmd
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_cluster_ask_redirect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:599,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:600,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:606,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_cluster.rs:607,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:608,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_cluster.rs:610,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster.rs:612,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:613,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:613,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:613,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:616,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:620,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:620,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:621,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:626,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:626,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:631,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:631,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:631,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:639,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:639,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:639,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 642
    functionName: cluster::test_cluster_ask_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Self::load
    - Self::store
    - arg("test").query::<Option<i32>>
    - Err
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - atomic::AtomicBool::new
    - is_connection_check
    - atomic::AtomicUsize::new
    - Ok
    - cmd
    - fetch_add
    - as_bytes
    - respond_startup
    linkageType: ''
    returnType: void
    signature: fn test_cluster_ask_error_when_new_node_is_added()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:653,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:654,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:654,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:654,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster.rs:659,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:662,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:662,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:662,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:668,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:668,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:668,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:676,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster.rs:682,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:684,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:684,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:684,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:690,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:690,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:690,1
    - Dst: "arg(\"test\")\n            .arg(\"123\")\n            .query::<Option<Value>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:690,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 695
    functionName: cluster::test_cluster_random_replica_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - '&mut Self::arg'
    - arg("test").query::<Option<i32>>
    - "arg(\"test\")\n            .arg(\"123\")\n            .query::<Option<Value>>"
    - Err
    - redis_value
    - Cmd::arg
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - Ok
    - cmd
    - respond_startup_with_replica
    linkageType: ''
    returnType: void
    signature: fn test_cluster_random_replica_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:700,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:700,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:700,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:701,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:723,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:724,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:724,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:724,1
    - Dst: RoundRobinReplicaStrategy::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:726,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:729,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:729,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:729,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:730,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:731,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:731,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:731,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:732,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:732,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:732,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:734,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:750,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:750,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:750,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:750,1
    - Dst: Vec::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:753,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:753,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 698
    functionDepth: 8
    functionLinenumber: 698
    functionLinenumberEnd: 755
    functionName: cluster::test_cluster_round_robin_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - Vec::lock
    - unwrap
    - Ok
    - Some
    - RoundRobinReplicaStrategy::new
    - Self::lock
    - Self::unwrap
    - clone
    - '&mut Self::query'
    - cmd
    - ClusterClient::builder
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - Vec::clone
    - MockEnv::with_client_builder
    - std::sync::Mutex::new
    - push
    - contains_slice
    - Self::read_routing_strategy
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_round_robin_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:760,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:760,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:765,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:766,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:766,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:769,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:774,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:775,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:775,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:775,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:775,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:779,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:779,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:779,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:785,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:785,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 788
      start: 758
    functionDepth: 8
    functionLinenumber: 758
    functionLinenumberEnd: 788
    functionName: cluster::test_cluster_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - ClusterClient::builder
    - Self::fetch_add
    - MockEnv::with_client_builder
    - arg("test").query::<Option<i32>>
    - Err
    - redis_value
    - respond_startup_two_nodes
    - RedisError::from
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - Ok
    - cmd
    - std::io::Error::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_io_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:793,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:793,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:794,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:795,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:797,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:800,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:801,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:801,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster.rs:801,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster.rs:801,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:805,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:805,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 812
      start: 791
    functionDepth: 8
    functionLinenumber: 791
    functionLinenumberEnd: 812
    functionName: cluster::test_cluster_non_retryable_error_should_not_retry
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - Self::fetch_add
    - arg("test").query::<Option<i32>>
    - Err
    - into
    - MockEnv::new
    - respond_startup_two_nodes
    - Cmd::arg
    - Arc::new
    - cmd
    - Self::clone
    linkageType: ''
    returnType: void
    signature: fn test_cluster_non_retryable_error_should_not_retry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:820,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:820,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:820,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:821,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:822,1
    - Dst: RedisFuture::split_whitespace
      Src: /src/redis-rs/redis/tests/test_cluster.rs:823,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:824,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:826,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:832,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:833,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:833,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:833,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:838,1
    - Dst: Option<Vec<MockSlotRange>>::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:841,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:844,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:844,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:844,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:845,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:845,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:845,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:847,1
    - Dst: query::<Option<()>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:851,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:852,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:852,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster.rs:852,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 4
    argNames:
    - name
    - command
    - expected_ports
    - slots_config
    argTypes:
    - '&''static str'
    - '&''static str'
    - Vec<u16>
    - Option<Vec<MockSlotRange>>
    constantsTouched: []
    func_position:
      end: 855
      start: 814
    functionDepth: 8
    functionLinenumber: 814
    functionLinenumberEnd: 855
    functionName: cluster::test_cluster_fan_out
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - Ok
    - Self::lock
    - Self::unwrap
    - RedisFuture::split_whitespace
    - ClusterClient::builder
    - redis::Cmd::new
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - sort
    - Option<Vec<MockSlotRange>>::clone
    - MockEnv::with_client_builder
    - std::sync::Mutex::new
    - query::<Option<()>>
    - push
    - Cmd::get_packed_command
    - Self::read_routing_strategy
    - Self::clone
    - Vec::new
    linkageType: ''
    returnType: void
    signature: 'fn test_cluster_fan_out(name: &''static str,command: &''static str,expected_ports:
      Vec<u16>,slots_config: Option<Vec<MockSlotRange>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cluster_fan_out
      Src: /src/redis-rs/redis/tests/test_cluster.rs:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 865
      start: 858
    functionDepth: 9
    functionLinenumber: 858
    functionLinenumberEnd: 865
    functionName: cluster::test_cluster_fan_out_to_all_primaries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - test_cluster_fan_out
    linkageType: ''
    returnType: void
    signature: fn test_cluster_fan_out_to_all_primaries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cluster_fan_out
      Src: /src/redis-rs/redis/tests/test_cluster.rs:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 875
      start: 868
    functionDepth: 9
    functionLinenumber: 868
    functionLinenumberEnd: 875
    functionName: cluster::test_cluster_fan_out_to_all_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - test_cluster_fan_out
    linkageType: ''
    returnType: void
    signature: fn test_cluster_fan_out_to_all_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cluster_fan_out
      Src: /src/redis-rs/redis/tests/test_cluster.rs:879,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 896
      start: 878
    functionDepth: 9
    functionLinenumber: 878
    functionLinenumberEnd: 896
    functionName: cluster::test_cluster_fan_out_out_once_to_each_primary_when_no_replicas_are_available
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - test_cluster_fan_out
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_cluster_fan_out_out_once_to_each_primary_when_no_replicas_are_available()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_cluster_fan_out
      Src: /src/redis-rs/redis/tests/test_cluster.rs:900,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 899
    functionDepth: 9
    functionLinenumber: 899
    functionLinenumberEnd: 927
    functionName: cluster::test_cluster_fan_out_out_once_even_if_primary_has_multiple_slot_ranges
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - test_cluster_fan_out
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_cluster_fan_out_out_once_even_if_primary_has_multiple_slot_ranges()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:932,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:933,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:933,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:933,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:938,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:939,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:939,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:939,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:944,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster.rs:945,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:945,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster.rs:946,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cluster.rs:946,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster.rs:948,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster.rs:946,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:949,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster.rs:946,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:951,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:951,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:951,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:955,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 957
      start: 930
    functionDepth: 3
    functionLinenumber: 930
    functionLinenumberEnd: 957
    functionName: cluster::test_cluster_split_multi_shard_command_and_combine_arrays_of_values
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - respond_startup_with_replica_using_config
    - filter
    - redis_value
    - Err
    - unwrap
    - Ok
    - collect
    - '&mut Self::arg'
    - map
    - iter
    - query::<Vec<String>>
    - cmd
    - ClusterClient::builder
    - arg
    - std::str::from_utf8
    - Cmd::arg
    - ClusterClientBuilder::retries
    - MockEnv::with_client_builder
    - Self::read_routing_strategy
    - Value::Array
    - contains
    linkageType: ''
    returnType: void
    signature: fn test_cluster_split_multi_shard_command_and_combine_arrays_of_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:962,1
    - Dst: atomic
      Src: /src/redis-rs/redis/tests/test_cluster.rs:963,1
    - Dst: '&mut Self::set'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:963,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:963,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_cluster.rs:964,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:970,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:971,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:971,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:971,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:976,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:978,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:978,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:978,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:980,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:980,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:980,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:980,1
    - Dst: bool::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_cluster.rs:987,1
    - Dst: RedisFuture::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 991
      start: 960
    functionDepth: 12
    functionLinenumber: 960
    functionLinenumberEnd: 991
    functionName: cluster::test_cluster_route_correctly_on_packed_transaction_with_single_node_requests
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - get
    - atomic
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - RedisError::from
    - ClusterClientBuilder::retries
    - get_packed_pipeline
    - Self::read_routing_strategy
    - Ok
    - bool::req_packed_commands
    - '&mut Self::set'
    - std::io::Error::new
    - RedisFuture::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cluster_route_correctly_on_packed_transaction_with_single_node_requests()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:996,1
    - Dst: atomic
      Src: /src/redis-rs/redis/tests/test_cluster.rs:997,1
    - Dst: '&mut Self::set'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:997,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:997,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_cluster.rs:998,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:999,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1000,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1006,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1007,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1007,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1007,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1012,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1014,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1014,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1014,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1016,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1016,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1016,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1016,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1023,1
    - Dst: RedisFuture::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1023,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 994
    functionDepth: 12
    functionLinenumber: 994
    functionLinenumberEnd: 1025
    functionName: cluster::test_cluster_route_correctly_on_packed_transaction_with_single_node_requests2
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - get
    - atomic
    - MockEnv::with_client_builder
    - ClusterClient::builder
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - bool::req_packed_command
    - clone
    - RedisError::from
    - ClusterClientBuilder::retries
    - get_packed_pipeline
    - Self::read_routing_strategy
    - Ok
    - '&mut Self::set'
    - std::io::Error::new
    - RedisFuture::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cluster_route_correctly_on_packed_transaction_with_single_node_requests2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1030,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1047,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1048,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1048,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1048,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1053,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1056,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1058,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1058,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1058,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1058,1
    - Dst: bool::req_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1062,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1062,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1064
    functionName: cluster::test_cluster_can_be_created_with_partial_slot_coverage
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - redis::cmd
    - MockEnv::with_client_builder
    - bool::req_command
    - respond_startup_with_replica_using_config
    - Err
    - clone
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - Ok
    - Value::SimpleString
    - '&str::into'
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_cluster_can_be_created_with_partial_slot_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1069,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1069,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1071,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1072,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1074,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1075,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1076,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1080,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1080,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1067
    functionDepth: 3
    functionLinenumber: 1067
    functionLinenumberEnd: 1084
    functionName: cluster::test_cluster_handle_complete_server_disconnect_without_panicking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - TestClusterContext::new_with_cluster_client_builder
    - bool::req_packed_command
    - RoutingInfo::SingleNode
    - Cmd::get_packed_command
    - connection
    - cmd
    - retries
    - drop
    linkageType: ''
    returnType: void
    signature: fn test_cluster_handle_complete_server_disconnect_without_panicking()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1088,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1089,1
    - Dst: get_ports
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1092,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1094,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1095,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1097,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1100,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1100,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1105,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1105,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1109,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1111,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1114,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1115,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1087
    functionDepth: 8
    functionLinenumber: 1087
    functionLinenumberEnd: 1118
    functionName: cluster::test_cluster_reconnect_after_complete_server_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - get_ports
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - RedisCluster::new
    - bool::req_packed_command
    - Default::default
    - RoutingInfo::SingleNode
    - Cmd::get_packed_command
    - connection
    - cmd
    - retries
    - drop
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cluster_reconnect_after_complete_server_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1122,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1123,1
    - Dst: get_ports
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1126,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1128,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1129,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1132,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1134,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1137,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1139,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1142,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1144,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1121
    functionDepth: 8
    functionLinenumber: 1121
    functionLinenumberEnd: 1149
    functionName: cluster::test_cluster_reconnect_after_complete_server_disconnect_route_to_many
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - get_ports
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - RedisCluster::new
    - RoutingInfo::MultiNode
    - Default::default
    - connection
    - cmd
    - Some
    - retries
    - drop
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cluster_reconnect_after_complete_server_disconnect_route_to_many()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1153,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1154,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1156,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1156,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1156,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1160,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1160,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1152
    functionDepth: 4
    functionLinenumber: 1152
    functionLinenumberEnd: 1165
    functionName: cluster::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - redis::Cmd::new
    - cluster_pipe
    - Self::connection
    - unwrap_err
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn fail_on_empty_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1174,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1176,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1176,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1177,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1177,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1179,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1179,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1179,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1179,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1179,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1184,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1184,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1184,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1173
    functionDepth: 2
    functionLinenumber: 1173
    functionLinenumberEnd: 1195
    functionName: cluster::test_cluster_basics_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - Result::unwrap
    - redis::Cmd::arg
    - '&mut Self::arg'
    - exec
    - TestClusterContext::new_with_mtls
    - '&mut Self::exec'
    - support::mtls_test::create_cluster_client_from_cluster
    - get_connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_cluster_basics_with_mtls()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1199,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1201,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1201,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1202,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1204,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1204,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1204,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1204,1
    - Dst: bool::is_ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1198
    functionDepth: 11
    functionLinenumber: 1198
    functionLinenumberEnd: 1227
    functionName: cluster::test_cluster_should_not_connect_without_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - addr
    - Result::unwrap
    - unwrap
    - TestClusterContext::new_with_mtls
    - connection_info
    - bool::is_ok
    - support::mtls_test::create_cluster_client_from_cluster
    - get_connection
    - first
    linkageType: ''
    returnType: void
    signature: fn test_cluster_should_not_connect_without_mtls()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1232,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1234,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1235,1
    - Dst: RedisServer::host_and_port
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1236,1
    - Dst: redis::cluster::NodeAddress::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1237,1
    - Dst: redis::cluster::NodeAddress::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1238,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1239,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1243,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1243,1
    - Dst: TlsFilePaths::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1246,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1243,1
    - Dst: redis::cluster::ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1249,1
    - Dst: ClusterClientBuilder::use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1249,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1250,1
    - Dst: Self::node_address_map
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1249,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1249,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1249,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1255,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1255,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1257,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1257,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1257,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1257,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1257,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1262,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1262,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1262,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1231
    functionDepth: 11
    functionLinenumber: 1231
    functionLinenumberEnd: 1273
    functionName: cluster::test_cluster_node_address_map_remaps_connections
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - redis::cluster::NodeAddress::new
    - Self::insert
    - exec
    - get_connection
    - TlsFilePaths::connection_info
    - collect
    - '&mut Self::arg'
    - map
    - iter_servers
    - '&mut Self::exec'
    - RedisServer::host_and_port
    - use_protocol
    - redis::Cmd::arg
    - std::collections::HashMap::new
    - Self::node_address_map
    - RedisResult::unwrap
    - redis::cmd
    - redis::cluster::ClusterClient::builder
    - ClusterClientBuilder::use_protocol
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_node_address_map_remaps_connections()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1280,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1286,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1289,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1289,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1290,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1293,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1301,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1307,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1308,1
    - Dst: RedisServer::host_and_port
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1309,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1310,1
    - Dst: redis::cluster::NodeAddress::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1311,1
    - Dst: redis::cluster::NodeAddress::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1312,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1317,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1317,1
    - Dst: TlsFilePaths::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1320,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1317,1
    - Dst: redis::cluster::ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1323,1
    - Dst: ClusterClientBuilder::use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1323,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1324,1
    - Dst: Self::node_address_map
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1323,1
    - Dst: certs
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1328,1
    - Dst: load_certs_from_file
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1328,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1331,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1331,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1332,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1332,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1332,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1333
      start: 1277
    functionDepth: 9
    functionLinenumber: 1277
    functionLinenumberEnd: 1333
    functionName: cluster::test_cluster_node_address_map_fixes_tls_hostname_mismatch
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - to_string
    - redis::cluster::NodeAddress::new
    - '&str::to_string'
    - Self::insert
    - Default::default
    - TestClusterContext::new_with_config
    - Some
    - TlsFilePaths::connection_info
    - get_connection
    - collect
    - map
    - iter_servers
    - certs
    - load_certs_from_file
    - ClusterType::get_intended
    - RedisServer::host_and_port
    - use_protocol
    - std::collections::HashMap::new
    - build
    - Self::node_address_map
    - RedisResult::unwrap
    - redis::cluster::ClusterClient::builder
    - ClusterClientBuilder::use_protocol
    - smoke_test_connection
    linkageType: ''
    returnType: void
    signature: fn test_cluster_node_address_map_fixes_tls_hostname_mismatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis/tests/test_support.rs:15,1
    - Dst: AvailableComponents::from
      Src: /src/redis-rs/redis/tests/test_support.rs:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 17
      start: 14
    functionDepth: 9
    functionLinenumber: 14
    functionLinenumberEnd: 17
    functionName: build_available_components
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockRedisConnection::new
    - AvailableComponents::from
    linkageType: ''
    returnType: AvailableComponents
    signature: 'fn build_available_components(input: &str) -> AvailableComponents'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_support.rs:20,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_support.rs:21,1
    - Dst: Vec<Component>::sort
      Src: /src/redis-rs/redis/tests/test_support.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - components
    - expected
    argTypes:
    - AvailableComponents
    - Vec<Component>
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: assert_components_eq
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - into
    - sort
    - Vec<Component>::sort
    linkageType: ''
    returnType: void
    signature: 'fn assert_components_eq(components: AvailableComponents, mut expected:
      Vec<Component>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_available_components
      Src: /src/redis-rs/redis/tests/test_support.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 10
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: MockTestContext::new
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - build_available_components
    linkageType: ''
    returnType: Self
    signature: 'fn new(input: &str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_support.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: MockTestContext::get_available_components
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - clone
    linkageType: ''
    returnType: AvailableComponents
    signature: fn get_available_components(&self) -> AvailableComponents
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 11
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: ctx_supports_exact_match
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockTestContext::new
    linkageType: ''
    returnType: void
    signature: fn ctx_supports_exact_match()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 11
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: ctx_supports_major_smaller
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockTestContext::new
    linkageType: ''
    returnType: void
    signature: fn ctx_supports_major_smaller()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 11
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: ctx_supports_major_bigger
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockTestContext::new
    linkageType: ''
    returnType: void
    signature: fn ctx_supports_major_bigger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 11
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: ctx_supports_major_match_minor_smaller
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockTestContext::new
    linkageType: ''
    returnType: void
    signature: fn ctx_supports_major_match_minor_smaller()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 11
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: ctx_supports_major_match_minor_bigger
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockTestContext::new
    linkageType: ''
    returnType: void
    signature: fn ctx_supports_major_match_minor_bigger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 11
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: ctx_supports_major_match_minor_match_patch_smaller
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockTestContext::new
    linkageType: ''
    returnType: void
    signature: fn ctx_supports_major_match_minor_match_patch_smaller()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 108
    functionDepth: 11
    functionLinenumber: 108
    functionLinenumberEnd: 114
    functionName: ctx_supports_major_match_minor_match_patch_bigger
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockTestContext::new
    linkageType: ''
    returnType: void
    signature: fn ctx_supports_major_match_minor_match_patch_bigger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 118
    functionDepth: 11
    functionLinenumber: 118
    functionLinenumberEnd: 138
    functionName: ctx_supports_disjunctive
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockTestContext::new
    linkageType: ''
    returnType: void
    signature: fn ctx_supports_disjunctive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockTestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 177
      start: 142
    functionDepth: 11
    functionLinenumber: 142
    functionLinenumberEnd: 177
    functionName: ctx_supports_conjunctive
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - MockTestContext::new
    linkageType: ''
    returnType: void
    signature: fn ctx_supports_conjunctive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_support.rs:182,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_support.rs:183,1
    - Dst: AvailableComponents::from
      Src: /src/redis-rs/redis/tests/test_support.rs:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 188
    functionName: ctx_live_test_server
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - AvailableComponents::from
    linkageType: ''
    returnType: void
    signature: fn ctx_live_test_server()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_available_components
      Src: /src/redis-rs/redis/tests/test_support.rs:195,1
    - Dst: assert_components_eq
      Src: /src/redis-rs/redis/tests/test_support.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 10
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: component_parse_single_all_single_digit
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - assert_components_eq
    - build_available_components
    linkageType: ''
    returnType: void
    signature: fn component_parse_single_all_single_digit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_available_components
      Src: /src/redis-rs/redis/tests/test_support.rs:205,1
    - Dst: assert_components_eq
      Src: /src/redis-rs/redis/tests/test_support.rs:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 10
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: component_parse_single_multiple_digits_suffixed
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - assert_components_eq
    - build_available_components
    linkageType: ''
    returnType: void
    signature: fn component_parse_single_multiple_digits_suffixed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_available_components
      Src: /src/redis-rs/redis/tests/test_support.rs:215,1
    - Dst: assert_components_eq
      Src: /src/redis-rs/redis/tests/test_support.rs:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 10
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: component_parse_triplet_all_single_digit
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - assert_components_eq
    - build_available_components
    linkageType: ''
    returnType: void
    signature: fn component_parse_triplet_all_single_digit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_available_components
      Src: /src/redis-rs/redis/tests/test_support.rs:225,1
    - Dst: assert_components_eq
      Src: /src/redis-rs/redis/tests/test_support.rs:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 222
    functionDepth: 10
    functionLinenumber: 222
    functionLinenumberEnd: 228
    functionName: component_parse_triplet_multiple_digits_suffixed
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - assert_components_eq
    - build_available_components
    linkageType: ''
    returnType: void
    signature: fn component_parse_triplet_multiple_digits_suffixed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_available_components
      Src: /src/redis-rs/redis/tests/test_support.rs:239,1
    - Dst: assert_components_eq
      Src: /src/redis-rs/redis/tests/test_support.rs:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 232
    functionDepth: 10
    functionLinenumber: 232
    functionLinenumberEnd: 242
    functionName: component_parse_multiline_simple_server_version
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - assert_components_eq
    - build_available_components
    linkageType: ''
    returnType: void
    signature: fn component_parse_multiline_simple_server_version()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_available_components
      Src: /src/redis-rs/redis/tests/test_support.rs:253,1
    - Dst: assert_components_eq
      Src: /src/redis-rs/redis/tests/test_support.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 246
    functionDepth: 10
    functionLinenumber: 246
    functionLinenumberEnd: 256
    functionName: component_parse_multiline_simple_module_version
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - assert_components_eq
    - build_available_components
    linkageType: ''
    returnType: void
    signature: fn component_parse_multiline_simple_module_version()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_available_components
      Src: /src/redis-rs/redis/tests/test_support.rs:269,1
    - Dst: assert_components_eq
      Src: /src/redis-rs/redis/tests/test_support.rs:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 275
      start: 260
    functionDepth: 10
    functionLinenumber: 260
    functionLinenumberEnd: 275
    functionName: component_parse_mix
    functionSourceFile: /src/redis-rs/redis/tests/test_support.rs
    functionUses: 0
    functionsReached:
    - assert_components_eq
    - build_available_components
    linkageType: ''
    returnType: void
    signature: fn component_parse_mix()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_script.rs:12,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_script.rs:13,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_script.rs:15,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_script.rs:17,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_script.rs:22,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:22,1
    - Dst: invoke
      Src: /src/redis-rs/redis/tests/test_script.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 25
      start: 11
    functionDepth: 2
    functionLinenumber: 11
    functionLinenumberEnd: 25
    functionName: script::test_script
    functionSourceFile: /src/redis-rs/redis/tests/test_script.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - key
    - TestContext::new
    - arg
    - Self::connection
    - exec
    - invoke
    - redis::Script::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_script()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_script.rs:29,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_script.rs:30,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_script.rs:32,1
    - Dst: load
      Src: /src/redis-rs/redis/tests/test_script.rs:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 37
    functionName: script::test_script_load
    functionSourceFile: /src/redis-rs/redis/tests/test_script.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - load
    - redis::Script::new
    linkageType: ''
    returnType: void
    signature: fn test_script_load()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_script.rs:41,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_script.rs:42,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_script.rs:44,1
    - Dst: prepare_invoke
      Src: /src/redis-rs/redis/tests/test_script.rs:46,1
    - Dst: ScriptInvocation::load
      Src: /src/redis-rs/redis/tests/test_script.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: script::test_script_load_through_invocation
    functionSourceFile: /src/redis-rs/redis/tests/test_script.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - prepare_invoke
    - ScriptInvocation::load
    - Self::connection
    - redis::Script::new
    linkageType: ''
    returnType: void
    signature: fn test_script_load_through_invocation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_script.rs:53,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_script.rs:54,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_script.rs:56,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_script.rs:57,1
    - Dst: redis::Pipeline::invoke_script
      Src: /src/redis-rs/redis/tests/test_script.rs:57,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:58,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:58,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_script.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: script::test_script_that_is_not_loaded_fails_on_pipeline_invocation
    functionSourceFile: /src/redis-rs/redis/tests/test_script.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::Pipeline::invoke_script
    - TestContext::new
    - arg
    - Self::connection
    - query
    - redis::Script::new
    linkageType: ''
    returnType: void
    signature: fn test_script_that_is_not_loaded_fails_on_pipeline_invocation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_script.rs:65,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_script.rs:66,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_script.rs:68,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_script.rs:70,1
    - Dst: redis::Pipeline::load_script
      Src: /src/redis-rs/redis/tests/test_script.rs:70,1
    - Dst: invoke_script
      Src: /src/redis-rs/redis/tests/test_script.rs:70,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:72,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:72,1
    - Dst: invoke_script
      Src: /src/redis-rs/redis/tests/test_script.rs:70,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:73,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_script.rs:73,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_script.rs:70,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_script.rs:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 80
    functionName: script::test_script_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_script.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - TestContext::new
    - arg
    - invoke_script
    - redis::Pipeline::load_script
    - Self::connection
    - unwrap
    - query
    - redis::Script::new
    linkageType: ''
    returnType: void
    signature: fn test_script_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 15
    functionName: digest_utils::test_calculate_value_digest_basic
    functionSourceFile: /src/redis-rs/redis/tests/test_digest_utils.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_calculate_value_digest_basic()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_digest_utils.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: digest_utils::test_calculate_value_digest_leading_zeroes
    functionSourceFile: /src/redis-rs/redis/tests/test_digest_utils.rs
    functionUses: 0
    functionsReached:
    - calculate_value_digest
    linkageType: ''
    returnType: void
    signature: fn test_calculate_value_digest_leading_zeroes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: digest_utils::test_calculate_value_digest_consistency
    functionSourceFile: /src/redis-rs/redis/tests/test_digest_utils.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_calculate_value_digest_consistency()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: digest_utils::test_calculate_value_digest_different_values
    functionSourceFile: /src/redis-rs/redis/tests/test_digest_utils.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_calculate_value_digest_different_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: digest_utils::test_calculate_value_digest_numeric
    functionSourceFile: /src/redis-rs/redis/tests/test_digest_utils.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_calculate_value_digest_numeric()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: digest_utils::test_calculate_value_digest_bytes
    functionSourceFile: /src/redis-rs/redis/tests/test_digest_utils.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_calculate_value_digest_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: digest_utils::test_calculate_value_digest_empty
    functionSourceFile: /src/redis-rs/redis/tests/test_digest_utils.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_calculate_value_digest_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:37,1
    - Dst: AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_async.rs:37,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:38,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:39,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_async.rs:41,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:42,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:42,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_async.rs:43,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:48,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:48,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_async.rs:49,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 56
      start: 34
    functionDepth: 8
    functionLinenumber: 34
    functionLinenumberEnd: 56
    functionName: basic_async::test_block_on_all_panics_from_spawns
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::load
    - futures_time::task::sleep
    - Self::store
    - futures_time::time::Duration::from_millis
    - Arc::new
    - block_on_all
    - AtomicBool::new
    - Self::clone
    - spawn
    linkageType: ''
    returnType: void
    signature: 'fn test_block_on_all_panics_from_spawns(#[case] runtime: RuntimeType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:60,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:60,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:60,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:60,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:60,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:66,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:66,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:66,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:66,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:71,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:71,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:71,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 76
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 76
    functionName: basic_async::test_args
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - '&mut Self::exec_async'
    - unwrap
    - '&mut Self::query_async'
    - exec_async
    linkageType: ''
    returnType: void
    signature: 'async fn test_args(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:80,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:80,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:80,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_async.rs:80,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:80,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:80,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:89,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:89,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:89,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:89,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_async.rs:89,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:89,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:89,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:98,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:98,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: basic_async::test_no_response_skips_response_even_on_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - set_no_response
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - '&mut Self::exec_async'
    - arg
    - unwrap
    - '&mut Self::query_async'
    linkageType: ''
    returnType: void
    signature: 'async fn test_no_response_skips_response_even_on_error(mut con: impl
      ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:111,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:111,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:111,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:111,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 126
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 126
    functionName: b::a::s::i::c::_::a::s::y::n::c::::::::w::o::r::k::s::_::w::i::t::h::_::p::a::u::s::e::d::_::t::i::m::e::_::w::h::e::n::_::n::o::_::t::i::m::e::o::u::t::s::_::a::r::e::_::s::e::t::test
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - unwrap
    - exec_async
    linkageType: ''
    returnType: void
    signature: 'async fn test(mut conn: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::time::pause
      Src: /src/redis-rs/redis/tests/test_async.rs:106,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:127,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:129,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:132,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:132,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:132,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:129,1
    - Dst: test
      Src: /src/redis-rs/redis/tests/test_async.rs:138,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:144,1
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:147,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:147,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:147,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:144,1
    - Dst: test
      Src: /src/redis-rs/redis/tests/test_async.rs:153,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 155
    functionName: basic_async::works_with_paused_time_when_no_timeouts_are_set
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_response_timeout
    - TestContext::new
    - get_connection_manager_with_config
    - ConnectionManagerConfig::new
    - unwrap
    - test
    - AsyncConnectionConfig::new
    - tokio::time::pause
    - Self::set_connection_timeout
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn works_with_paused_time_when_no_timeouts_are_set()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:159,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:161,1
    - Dst: Self::set_write_backpressure_boundary
      Src: /src/redis-rs/redis/tests/test_async.rs:161,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:162,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:162,1
    - Dst: Option::set
      Src: /src/redis-rs/redis/tests/test_async.rs:167,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:167,1
    - Dst: Option::get
      Src: /src/redis-rs/redis/tests/test_async.rs:168,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 158
    functionDepth: 12
    functionLinenumber: 158
    functionLinenumberEnd: 170
    functionName: basic_async::test_set_write_backpressure_boundary_does_not_break_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_write_backpressure_boundary
    - TestContext::new
    - Option::get
    - redis::AsyncConnectionConfig::new
    - unwrap
    - Option::set
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn test_set_write_backpressure_boundary_does_not_break_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:174,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:175,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:175,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:181,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:182,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:182,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:182,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:182,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:182,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:182,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:191,1
    - Dst: RedisConnectionInfo::set_username
      Src: /src/redis-rs/redis/tests/test_async.rs:191,1
    - Dst: Self::set_password
      Src: /src/redis-rs/redis/tests/test_async.rs:191,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:194,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:194,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:195,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:195,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:195,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:195,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:201,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:201,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:201,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:201,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 207
      start: 173
    functionDepth: 10
    functionLinenumber: 173
    functionLinenumberEnd: 207
    functionName: basic_async::test_can_authenticate_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::arg
    - redis::Cmd::new
    - redis::Client::open
    - TestContext::new
    - arg
    - RedisConnectionInfo::set_username
    - RedisResult::unwrap
    - Cmd::arg
    - Self::async_connection
    - unwrap
    - '&mut Self::query_async'
    - Self::set_password
    - cmd
    - connection_info
    - get_multiplexed_async_connection
    - set_redis_settings
    - redis_settings
    linkageType: ''
    returnType: void
    signature: async fn test_can_authenticate_with_username_and_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_async.rs:218,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:218,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 224
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 224
    functionName: basic_async::test_nice_hash_api
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - bool::hgetall
    linkageType: ''
    returnType: void
    signature: 'async fn test_nice_hash_api(mut connection: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:235,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:236,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:236,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:237,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:237,1
    - Dst: pop
      Src: /src/redis-rs/redis/tests/test_async.rs:239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 245
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 245
    functionName: basic_async::test_nice_hash_api_in_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Pipeline::cmd
    - redis::Cmd::arg
    - pop
    - unwrap
    - Pipeline::query_async
    linkageType: ''
    returnType: void
    signature: 'async fn test_nice_hash_api_in_pipe(mut connection: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:249,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:250,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:251,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:252,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/tests/test_async.rs:254,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:257,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:259,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:259,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:259,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:259,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:266,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:268,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 248
    functionDepth: 3
    functionLinenumber: 248
    functionLinenumberEnd: 274
    functionName: basic_async::test_dont_panic_on_closed_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - map
    - RedisResult::and_then
    - clone
    - query_async
    - cmd
    - get_multiplexed_async_connection
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_dont_panic_on_closed_multiplexed_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:278,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:279,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:290,1
    - Dst: RedisResult::map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:290,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 297
      start: 277
    functionDepth: 2
    functionLinenumber: 277
    functionLinenumberEnd: 297
    functionName: basic_async::test_pipeline_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - '&mut Self::arg'
    - redis::Cmd::arg
    - arg
    - '&mut Self::cmd'
    - RedisResult::map_ok
    - ignore
    - Pipeline::atomic
    - unwrap
    - Pipeline::query_async
    - cmd
    linkageType: ''
    returnType: void
    signature: 'async fn test_pipeline_transaction(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:303,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:304,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:315,1
    - Dst: impl AsyncCommands::get
      Src: /src/redis-rs/redis/tests/test_async.rs:316,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 318
      start: 300
    functionDepth: 12
    functionLinenumber: 300
    functionLinenumberEnd: 318
    functionName: basic_async::test_client_tracking_doesnt_block_execution
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Pipeline::cmd
    - impl AsyncCommands::get
    - '&mut Self::arg'
    - redis::Cmd::arg
    - arg
    - ignore
    - unwrap
    - Pipeline::query_async
    - cmd
    linkageType: ''
    returnType: void
    signature: 'async fn test_client_tracking_doesnt_block_execution(mut con: impl
      AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:322,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:322,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:325,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:325,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:325,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:325,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:325,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:333,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:333,1
    - Dst: '&mut Self::ping'
      Src: /src/redis-rs/redis/tests/test_async.rs:333,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:333,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:333,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:333,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:333,1
    - Dst: "atomic()\n            .ping()\n            .set(\"x\", 142)\n        \
        \    .ignore()\n            .get(\"x\")\n            .set(\"x\", 142)\n  \
        \          .query_async::<()>"
      Src: /src/redis-rs/redis/tests/test_async.rs:333,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:333,1
    - Dst: into_server_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:345,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:345,1
    - Dst: impl AsyncCommands::get
      Src: /src/redis-rs/redis/tests/test_async.rs:352,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:352,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 354
      start: 321
    functionDepth: 12
    functionLinenumber: 321
    functionLinenumberEnd: 354
    functionName: basic_async::test_pipeline_transaction_with_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::cmd
    - get
    - impl AsyncCommands::get
    - '&mut Self::arg'
    - redis::Cmd::arg
    - redis::Pipeline::atomic
    - set
    - "atomic()\n            .ping()\n            .set(\"x\", 142)\n            .ignore()\n\
      \            .get(\"x\")\n            .set(\"x\", 142)\n            .query_async::<()>"
    - set::<_, _, ()>
    - ignore
    - unwrap
    - '&mut Self::ping'
    - into_server_errors
    - unwrap_err
    - Option::unwrap
    - exec_async
    linkageType: ''
    returnType: void
    signature: 'async fn test_pipeline_transaction_with_errors(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_async.rs:359,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:360,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:360,1
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:361,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:361,1
    - Dst: json_set::<_, _, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:362,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:362,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:366,1
    - Dst: atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: '&mut Self::ping'
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:367,1
    - Dst: ignore_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:391,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:391,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 358
    functionDepth: 12
    functionLinenumber: 358
    functionLinenumberEnd: 406
    functionName: basic_async::test_module_json_and_pipeline_transaction_with_ignore_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - get
    - atomic
    - TestContext::with_modules
    - set
    - set::<_, _, ()>
    - Self::async_connection
    - ignore
    - unwrap
    - '&mut Self::ping'
    - json_get
    - json_set::<_, _, _, ()>
    - ignore_errors
    - query_async
    linkageType: ''
    returnType: void
    signature: async fn test_module_json_and_pipeline_transaction_with_ignore_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:410,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:410,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:412,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_async.rs:413,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:413,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:413,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:413,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:413,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:413,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:413,1
    - Dst: ignore_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:422,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:422,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 435
      start: 409
    functionDepth: 12
    functionLinenumber: 409
    functionLinenumberEnd: 435
    functionName: basic_async::test_pipeline_with_ignore_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - get
    - set
    - arg
    - set::<_, _, ()>
    - ping
    - ignore
    - unwrap
    - cmd
    - ignore_errors
    - query_async
    linkageType: ''
    returnType: void
    signature: 'async fn test_pipeline_with_ignore_errors(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:439,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_async.rs:440,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:440,1
    - Dst: hset
      Src: /src/redis-rs/redis/tests/test_async.rs:440,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:440,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:440,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:446,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:447,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_async.rs:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 452
      start: 438
    functionDepth: 12
    functionLinenumber: 438
    functionLinenumberEnd: 452
    functionName: basic_async::test_pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - get
    - to_string
    - Pipeline::exec_async
    - Pipeline::set
    - ignore
    - hset
    - unwrap_err
    linkageType: ''
    returnType: void
    signature: 'async fn test_pipeline_returns_server_errors(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:456,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:458,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:462,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:462,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:462,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_async.rs:464,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:462,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:462,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:468,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:468,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:468,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:468,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 2
    argNames:
    - con
    - i
    argTypes:
    - impl AsyncCommands + Clone
    - i32
    constantsTouched: []
    func_position:
      end: 480
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 480
    functionName: basic_async::test_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - '&mut Self::exec_async'
    - clone
    - unwrap
    - '&mut Self::query_async'
    - RedisResult::map
    - as_bytes
    - exec_async
    linkageType: ''
    returnType: void
    signature: 'async fn test_cmd(mut con: impl AsyncCommands + Clone, i: i32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:484,1
    - Dst: Pipeline::zrange
      Src: /src/redis-rs/redis/tests/test_async.rs:485,1
    - Dst: Pipeline::zrange
      Src: /src/redis-rs/redis/tests/test_async.rs:486,1
    - Dst: impl ConnectionLike::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_async.rs:487,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:487,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 491
      start: 483
    functionDepth: 3
    functionLinenumber: 483
    functionLinenumberEnd: 491
    functionName: basic_async::test_pipe_over_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Pipeline::zrange
    - impl ConnectionLike::req_packed_commands
    - pipe
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'async fn test_pipe_over_multiplexed_connection(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:495,1
    - Dst: test_cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:495,1
    - Dst: impl AsyncCommands + Clone::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:495,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands + Clone
    constantsTouched: []
    func_position:
      end: 497
      start: 494
    functionDepth: 3
    functionLinenumber: 494
    functionLinenumberEnd: 497
    functionName: basic_async::test_running_multiple_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - map
    - test_cmd
    - impl AsyncCommands + Clone::clone
    - future::join_all
    linkageType: ''
    returnType: void
    signature: 'async fn test_running_multiple_commands(con: impl AsyncCommands +
      Clone)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:501,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:502,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:507,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:508,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:519,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/tests/test_async.rs:519,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: map_err
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:527,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 57
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Clone
    constantsTouched: []
    func_position:
      end: 534
      start: 500
    functionDepth: 3
    functionLinenumber: 500
    functionLinenumberEnd: 534
    functionName: basic_async::test_async_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::Cmd::arg
    - '&mut Self::arg'
    - map_err
    - map
    - arg
    - '&mut Self::cmd'
    - ignore
    - Pipeline::atomic
    - map_ok
    - unwrap
    - Pipeline::query_async
    - cmd
    - Self::clone
    - RedisResult::map
    - future::try_join_all
    linkageType: ''
    returnType: void
    signature: 'async fn test_async_transaction(con: impl ConnectionLike + Clone)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis/tests/test_async.rs:538,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:541,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:541,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:541,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:541,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:541,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:547,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:550,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:550,1
    - Dst: '&mut Self::cursor_arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:550,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:550,1
    - Dst: Self::iter_async
      Src: /src/redis-rs/redis/tests/test_async.rs:550,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:550,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:558,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Send
    constantsTouched: []
    func_position:
      end: 566
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 566
    functionName: basic_async::test_async_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - '&mut Self::clone'
    - '&mut Self::cursor_arg'
    - next_item
    - Self::insert
    - unwrap
    - Self::iter_async
    - exec_async
    - std::collections::HashSet::new
    linkageType: ''
    returnType: void
    signature: 'async fn test_async_scanning(mut con: impl ConnectionLike + Send)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis/tests/test_async.rs:570,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:574,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:574,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:575,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:574,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:574,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:574,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:580,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:580,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    - Dst: redis::Cmd::cursor_arg
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    - Dst: "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\"\
        )\n            .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n\
        \            .iter_async::<String>"
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:594,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Send
    constantsTouched: []
    func_position:
      end: 602
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 602
    functionName: basic_async::test_async_scanning_iterative
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - next_item
    - arg
    - Self::insert
    - "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\")\n  \
      \          .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n    \
      \        .iter_async::<String>"
    - clone
    - redis::Cmd::cursor_arg
    - unwrap
    - Option::unwrap
    - exec_async
    - std::collections::HashSet::new
    linkageType: ''
    returnType: void
    signature: 'async fn test_async_scanning_iterative(mut con: impl ConnectionLike
      + Send)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis/tests/test_async.rs:606,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:610,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:610,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:611,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:610,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:610,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:610,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:616,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:616,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    - Dst: redis::Cmd::cursor_arg
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    - Dst: "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\"\
        )\n            .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n\
        \            .iter_async::<String>"
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:630,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:631,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Sync + Send
    constantsTouched: []
    func_position:
      end: 638
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 638
    functionName: basic_async::test_async_scanning_stream
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - next_item
    - arg
    - Self::insert
    - "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\")\n  \
      \          .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n    \
      \        .iter_async::<String>"
    - clone
    - redis::Cmd::cursor_arg
    - unwrap
    - Option::unwrap
    - exec_async
    - std::collections::HashSet::new
    linkageType: ''
    returnType: void
    signature: 'async fn test_async_scanning_stream(mut con: impl ConnectionLike +
      Sync + Send)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:642,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:644,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:644,1
    - Dst: bool::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:645,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:645,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:646,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:647,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:647,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:647,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 651
      start: 641
    functionDepth: 4
    functionLinenumber: 641
    functionLinenumberEnd: 651
    functionName: basic_async::test_response_timeout_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - redis::Cmd::new
    - TestContext::new
    - arg
    - bool::req_packed_command
    - bool::set_response_timeout
    - Cmd::arg
    - Self::async_connection
    - unwrap
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn test_response_timeout_multiplexed_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:658,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:659,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:660,1
    - Dst: Self::key
      Src: /src/redis-rs/redis/tests/test_async.rs:661,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:661,1
    - Dst: "key(\"key1\")\n            .arg(\"foo\")\n            .invoke_async::<()>"
      Src: /src/redis-rs/redis/tests/test_async.rs:661,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:661,1
    - Dst: Self::key
      Src: /src/redis-rs/redis/tests/test_async.rs:667,1
    - Dst: invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:667,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:667,1
    - Dst: Self::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:669,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:669,1
    - Dst: Self::key
      Src: /src/redis-rs/redis/tests/test_async.rs:671,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:671,1
    - Dst: "key(\"key1\")\n            .arg(\"bar\")\n            .invoke_async::<()>"
      Src: /src/redis-rs/redis/tests/test_async.rs:671,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:671,1
    - Dst: Self::key
      Src: /src/redis-rs/redis/tests/test_async.rs:677,1
    - Dst: invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:677,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:677,1
    - Dst: Self::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:679,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:679,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 681
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 681
    functionName: basic_async::test_script
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::key
    - invoke_async
    - Self::invoke_async
    - arg
    - "key(\"key1\")\n            .arg(\"foo\")\n            .invoke_async::<()>"
    - unwrap
    - redis::Script::new
    - "key(\"key1\")\n            .arg(\"bar\")\n            .invoke_async::<()>"
    linkageType: ''
    returnType: void
    signature: 'async fn test_script(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:686,1
    - Dst: prepare_invoke
      Src: /src/redis-rs/redis/tests/test_async.rs:688,1
    - Dst: ScriptInvocation::load_async
      Src: /src/redis-rs/redis/tests/test_async.rs:688,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:688,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 690
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 690
    functionName: basic_async::test_script_load
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - ScriptInvocation::load_async
    - prepare_invoke
    - redis::Script::new
    linkageType: ''
    returnType: void
    signature: 'async fn test_script_load(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:695,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:695,1
    - Dst: invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:695,1
    - Dst: RedisResult::map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:695,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:695,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 705
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 705
    functionName: basic_async::test_script_returning_complex_type
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - invoke_async
    - Self::arg
    - RedisResult::map_ok
    - unwrap
    - redis::Script::new
    linkageType: ''
    returnType: void
    signature: 'async fn test_script_returning_complex_type(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:712,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:714,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:714,1
    - Dst: kill_client_async
      Src: /src/redis-rs/redis/tests/test_async.rs:715,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:715,1
    - Dst: get::<_, Option<String>>
      Src: /src/redis-rs/redis/tests/test_async.rs:721,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:723,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:723,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:723,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 728
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 728
    functionName: basic_async::test_io_error_on_kill_issue_320
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - get::<_, Option<String>>
    - into
    - Self::async_connection
    - kill_client_async
    - unwrap
    - sleep
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn test_io_error_on_kill_issue_320()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:732,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:734,1
    - Dst: Self::set_password
      Src: /src/redis-rs/redis/tests/test_async.rs:734,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:735,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:735,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:735,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:735,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:735,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:743,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:743,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:745,1
    - Dst: err
      Src: /src/redis-rs/redis/tests/test_async.rs:745,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:745,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 731
    functionDepth: 9
    functionLinenumber: 731
    functionLinenumberEnd: 755
    functionName: basic_async::test_invalid_password_issue_343
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - client_addr
    - into_connection_info
    - redis::Client::open
    - TestContext::new
    - clone
    - unwrap
    - err
    - Self::set_password
    - RedisConnectionInfo::default
    - get_multiplexed_async_connection
    - set_redis_settings
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_invalid_password_issue_343()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncCommands::append
      Src: /src/redis-rs/redis/tests/test_async.rs:760,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:760,1
    - Dst: impl AsyncCommands::append
      Src: /src/redis-rs/redis/tests/test_async.rs:761,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:761,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_async.rs:764,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_async.rs:764,1
    - Dst: Result::with_pattern
      Src: /src/redis-rs/redis/tests/test_async.rs:764,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:765,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:765,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:766,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:766,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:768,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:766,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_async.rs:774,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:775,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:775,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:776,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:776,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:778,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:776,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 782
      start: 758
    functionDepth: 9
    functionLinenumber: 758
    functionLinenumberEnd: 782
    functionName: basic_async::test_scan_with_options_works
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl AsyncCommands::append
    - ScanOptions::default
    - Self::with_count
    - scan_options::<String>
    - timeout
    - futures_time::time::Duration::from_millis
    - Self::collect
    - unwrap
    - Result::with_pattern
    linkageType: ''
    returnType: void
    signature: 'async fn test_scan_with_options_works(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncCommands::append
      Src: /src/redis-rs/redis/tests/test_async.rs:789,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:789,1
    - Dst: scan_match::<&str, String>
      Src: /src/redis-rs/redis/tests/test_async.rs:791,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:791,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:793,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:792,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:796,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:792,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 799
      start: 787
    functionDepth: 7
    functionLinenumber: 787
    functionLinenumberEnd: 799
    functionName: basic_async::test_issue_stream_blocks
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl AsyncCommands::append
    - futures_time::time::Duration::from_millis
    - timeout
    - Self::collect
    - unwrap
    - scan_match::<&str, String>
    linkageType: ''
    returnType: void
    signature: 'async fn test_issue_stream_blocks(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:805,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:805,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_async.rs:806,1
    - Dst: impl AsyncCommands::set
      Src: /src/redis-rs/redis/tests/test_async.rs:808,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:808,1
    - Dst: impl AsyncCommands::scan
      Src: /src/redis-rs/redis/tests/test_async.rs:811,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:811,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:812,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:812,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_async.rs:813,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 816
      start: 804
    functionDepth: 3
    functionLinenumber: 804
    functionLinenumberEnd: 816
    functionName: basic_async::test_issue_async_commands_scan_broken
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - map
    - sort
    - unwrap
    - impl AsyncCommands::set
    - impl AsyncCommands::scan
    - collect
    linkageType: ''
    returnType: void
    signature: 'async fn test_issue_async_commands_scan_broken(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:825,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:827,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:827,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:828,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:828,1
    - Dst: on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:829,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:830,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:830,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:831,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:831,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:835,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:835,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:839,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:839,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 843
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 843
    functionName: basic_async::test_pub_sub_subscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get_payload
    - TestContext::new
    - Self::async_connection
    - unwrap
    - on_message
    - next
    - subscribe
    - Self::async_pubsub
    - publish
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_subscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:847,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:849,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:849,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:850,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:850,1
    - Dst: on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:854,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:855,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:855,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:856,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:856,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:858,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:858,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:858,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:858,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:861,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:861,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:862,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:862,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:862,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:862,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 864
    functionName: basic_async::test_pub_sub_subscription_to_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get_payload
    - TestContext::new
    - Self::async_connection
    - unwrap
    - on_message
    - next
    - subscribe
    - Self::async_pubsub
    - publish
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_subscription_to_multiple_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:891,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:891,1
    - Dst: impl AsyncCommands::set
      Src: /src/redis-rs/redis/tests/test_async.rs:896,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis/tests/test_async.rs:896,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:896,1
    - Dst: impl AsyncCommands::scan
      Src: /src/redis-rs/redis/tests/test_async.rs:900,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:900,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:905,1
    - Dst: is_some
      Src: /src/redis-rs/redis/tests/test_async.rs:911,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_async.rs:914,1
    - Dst: TlsFilePaths::kind
      Src: /src/redis-rs/redis/tests/test_async.rs:914,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 58
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 924
      start: 869
    functionDepth: 3
    functionLinenumber: 869
    functionLinenumberEnd: 924
    functionName: basic_async::test_issue_async_commands_scan_finishing_prematurely
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - next_item
    - map
    - '&str::as_bytes'
    - TlsFilePaths::kind
    - unwrap
    - impl AsyncCommands::set
    - Some
    - is_some
    - impl AsyncCommands::scan
    - collect
    linkageType: ''
    returnType: void
    signature: 'async fn test_issue_async_commands_scan_finishing_prematurely(mut
      con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:930,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:932,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:932,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:933,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:933,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:934,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:934,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:936,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:936,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:937,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:937,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:937,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:937,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:937,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:943,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:943,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 945
      start: 927
    functionDepth: 12
    functionLinenumber: 927
    functionLinenumberEnd: 945
    functionName: basic_async::test_pub_sub_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - get
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - Self::async_connection
    - unsubscribe
    - unwrap
    - subscribe
    - query_async
    - Self::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_unsubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:949,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:951,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:951,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:951,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:952,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:952,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:954,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:954,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:957,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:957,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:961,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:961,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:961,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:961,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 965
      start: 948
    functionDepth: 1
    functionLinenumber: 948
    functionLinenumberEnd: 965
    functionName: basic_async::test_can_receive_messages_while_sending_requests_from_split_pub_sub
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - subscribe
    - get_payload
    - TestContext::new
    - Self::async_connection
    - unwrap
    - next
    - split
    - Self::async_pubsub
    - publish
    linkageType: ''
    returnType: void
    signature: async fn test_can_receive_messages_while_sending_requests_from_split_pub_sub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:969,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:971,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:971,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:971,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:972,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:972,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:974,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:974,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:979,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:979,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:982,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_async.rs:983,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:983,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_async.rs:986,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:986,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:990,1
    - Dst: ping_message
      Src: /src/redis-rs/redis/tests/test_async.rs:991,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:991,1
    - Dst: ping_message
      Src: /src/redis-rs/redis/tests/test_async.rs:994,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:994,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:999,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:999,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:999,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:999,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1005,1
    - Dst: ping_message::<()>
      Src: /src/redis-rs/redis/tests/test_async.rs:1006,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1006,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 968
    functionDepth: 3
    functionLinenumber: 968
    functionLinenumberEnd: 1008
    functionName: basic_async::test_can_send_ping_on_split_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - ping_message
    - subscribe
    - get_payload
    - TestContext::new
    - drop
    - ping
    - Self::async_connection
    - supports_resp3
    - unwrap
    - next
    - unwrap_err
    - split
    - ping_message::<()>
    - Self::async_pubsub
    - publish
    linkageType: ''
    returnType: void
    signature: async fn test_can_send_ping_on_split_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1012,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1014,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1014,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1014,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1015,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1015,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1017,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1017,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1018,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1021,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1021,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:1025,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1025,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1025,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1025,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1011
    functionDepth: 3
    functionLinenumber: 1011
    functionLinenumberEnd: 1029
    functionName: basic_async::test_can_receive_messages_from_split_pub_sub_after_sink_was_dropped
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - subscribe
    - drop
    - TestContext::new
    - get_payload
    - Self::async_connection
    - unwrap
    - next
    - split
    - Self::async_pubsub
    - publish
    linkageType: ''
    returnType: void
    signature: async fn test_can_receive_messages_from_split_pub_sub_after_sink_was_dropped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1033,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1035,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1035,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1036,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1036,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1038,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1038,1
    - Dst: into_on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1039,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1041,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_async.rs:1041,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1041,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1044,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1044,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:1048,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1048,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1048,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1048,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1032
    functionDepth: 1
    functionLinenumber: 1032
    functionLinenumberEnd: 1052
    functionName: basic_async::test_can_receive_messages_from_split_pub_sub_after_into_on_message
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get_payload
    - TestContext::new
    - into
    - Self::async_connection
    - unwrap
    - into_on_message
    - sleep
    - next
    - subscribe
    - Duration::from_secs
    - Self::async_pubsub
    - publish
    linkageType: ''
    returnType: void
    signature: async fn test_can_receive_messages_from_split_pub_sub_after_into_on_message()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1056,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1058,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1058,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1058,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1055
    functionDepth: 3
    functionLinenumber: 1055
    functionLinenumberEnd: 1062
    functionName: basic_async::test_cannot_subscribe_on_split_pub_sub_after_stream_was_dropped
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::async_pubsub
    - TestContext::new
    - unwrap
    - split
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_cannot_subscribe_on_split_pub_sub_after_stream_was_dropped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1068,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1070,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1070,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1071,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1071,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1072,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1074,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1074,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1078,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1078,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1078,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1078,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1078,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1084,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1084,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1089,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1089,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1089,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1065
    functionDepth: 12
    functionLinenumber: 1065
    functionLinenumberEnd: 1092
    functionName: basic_async::test_automatic_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - get
    - redis::Cmd::arg
    - '&mut Self::arg'
    - Self::async_pubsub
    - TestContext::new
    - into
    - Self::async_connection
    - unwrap
    - sleep
    - Duration::from_millis
    - subscribe
    - query_async
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_automatic_unsubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1098,1
    - Dst: Self::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1100,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1100,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1100,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1101,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1101,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1102,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1102,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1103,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1103,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1103,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1105,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1105,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1105,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1105,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1105,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1111,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1111,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1114,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1118,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1118,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1118,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1118,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1118,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1124,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1124,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1129,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1129,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1129,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1134,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1134,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1095
    functionDepth: 12
    functionLinenumber: 1095
    functionLinenumberEnd: 1136
    functionName: basic_async::test_automatic_unsubscription_on_split
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - get
    - redis::Cmd::arg
    - '&mut Self::arg'
    - subscribe
    - drop
    - TestContext::new
    - into
    - Self::async_connection
    - unwrap
    - sleep
    - Duration::from_millis
    - unwrap_err
    - split
    - query_async
    - Self::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn test_automatic_unsubscription_on_split()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lpush::<&str, &str, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:1140,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1140,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1142,1
    - Dst: redis::Pipeline::get
      Src: /src/redis-rs/redis/tests/test_async.rs:1142,1
    - Dst: Option::llen
      Src: /src/redis-rs/redis/tests/test_async.rs:1142,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1142,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1142,1
    - Dst: Option::lrange
      Src: /src/redis-rs/redis/tests/test_async.rs:1148,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 1151
      start: 1139
    functionDepth: 2
    functionLinenumber: 1139
    functionLinenumberEnd: 1151
    functionName: basic_async::test_pipe_errors_do_not_affect_subsequent_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Option::lrange
    - redis::Pipeline::get
    - unwrap
    - Option::llen
    - exec_async
    - unwrap_err
    - lpush::<&str, &str, ()>
    linkageType: ''
    returnType: void
    signature: 'async fn test_pipe_errors_do_not_affect_subsequent_commands(mut conn:
      impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1155,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1156,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1160,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1161,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1161,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1162,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1162,1
    - Dst: Option::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1167,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1167,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1168,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1168,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1170,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1170,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1173,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1173,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1175,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1175,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1177,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1177,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1179,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1179,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1181
    functionName: basic_async::test_multiplexed_pub_sub_subscribe_on_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - tokio::sync::mpsc::unbounded_channel
    - recv
    - Option::subscribe
    - supports_resp3
    - Self::async_connection
    - redis::AsyncConnectionConfig::new
    - unwrap
    - Self::set_push_sender
    - get_multiplexed_async_connection_with_config
    - publish
    linkageType: ''
    returnType: void
    signature: async fn test_multiplexed_pub_sub_subscribe_on_multiple_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lpush::<&str, &str, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:1187,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1187,1
    - Dst: Option::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_async.rs:1189,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1191,1
    - Dst: redis::Pipeline::get
      Src: /src/redis-rs/redis/tests/test_async.rs:1191,1
    - Dst: Option::llen
      Src: /src/redis-rs/redis/tests/test_async.rs:1191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 1202
      start: 1184
    functionDepth: 3
    functionLinenumber: 1184
    functionLinenumberEnd: 1202
    functionName: basic_async::test_non_transaction_errors_do_not_affect_other_results_in_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Option::req_packed_commands
    - redis::Pipeline::get
    - unwrap
    - Option::llen
    - lpush::<&str, &str, ()>
    linkageType: ''
    returnType: void
    signature: 'async fn test_non_transaction_errors_do_not_affect_other_results_in_pipeline(mut
      conn: impl AsyncCommands,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1206,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1207,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1207,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1208,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1208,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1209,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1209,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1211,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1212,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1212,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1213,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1213,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_async.rs:1218,1
    - Dst: Option::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1219,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1219,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1219,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1220,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1220,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1223,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1223,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1225,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1226,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1225,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1231,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1231,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1244,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1245,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1244,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1248,1
    - Dst: Option::unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1256,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1256,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1256,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1257,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1257,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1259,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1260,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1259,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1264,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1264,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1264,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1205
    functionDepth: 9
    functionLinenumber: 1205
    functionLinenumberEnd: 1266
    functionName: basic_async::test_pub_sub_multiple
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Option::unsubscribe
    - '&str::to_string'
    - Self::async_connection
    - redis::AsyncConnectionConfig::new
    - unwrap
    - RedisConnectionInfo::default
    - Self::set_push_sender
    - connection_info
    - TestContext::new
    - recv
    - '&str::clone'
    - sleep
    - Self::set_protocol
    - get_multiplexed_async_connection_with_config
    - publish
    - set_redis_settings
    - redis::Client::open
    - RedisResult::unwrap
    - into
    - tokio::sync::mpsc::unbounded_channel
    - Option::subscribe
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_multiple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1270,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1270,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1273,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1274,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1274,1
    - Dst: Option::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1282
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1282
    functionName: basic_async::test_pub_sub_requires_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - ProtocolVersion::supports_resp3
    - TestContext::new
    - Option::subscribe
    - Self::async_connection
    - unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_requires_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1286,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1287,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1287,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1288,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1288,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1289,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1289,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1291,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1292,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1292,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1293,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1293,1
    - Dst: Option::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1298,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1298,1
    - Dst: kill_client_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1300,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1300,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1285
    functionDepth: 9
    functionLinenumber: 1285
    functionLinenumberEnd: 1303
    functionName: basic_async::test_push_sender_send_on_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Client::open
    - TestContext::new
    - get_multiplexed_async_connection_with_config
    - tokio::sync::mpsc::unbounded_channel
    - RedisConnectionInfo::default
    - Self::set_push_sender
    - kill_client_async
    - redis::AsyncConnectionConfig::new
    - unwrap
    - connection_info
    - Self::set_protocol
    - Option::set
    - set_redis_settings
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_push_sender_send_on_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1308,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1309,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1312,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1314,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1315,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1315,1
    - Dst: Self::set_automatic_resubscription
      Src: /src/redis-rs/redis/tests/test_async.rs:1315,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1315,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1320,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1320,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1325,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1325,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1329,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1329,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1330,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1330,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1332,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1332,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1335,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1335,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1338,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1338,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1341,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1341,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1344,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1344,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1348,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1348,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1349,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1352,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1352,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1352,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1353,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1353,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1355,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1357,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1357,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1360,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1360,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1368,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1368,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1372,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1372,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1373,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1373,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1375,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1375,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1383,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1383,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1384,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1384,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1385,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1385,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 153
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1307
    functionDepth: 3
    functionLinenumber: 1307
    functionLinenumberEnd: 1398
    functionName: basic_async::test_manager_should_resubscribe_to_pubsub_channels_after_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - client_addr
    - psubscribe
    - TestContext::new_with_addr
    - unwrap
    - Self::async_connection
    - Self::set_push_sender
    - Self::set_automatic_resubscription
    - TestContext::new
    - clone
    - recv
    - Self::set_max_delay
    - sleep
    - drop
    - publish
    - get_connection_manager_with_config
    - unsubscribe
    - into
    - tokio::sync::mpsc::unbounded_channel
    - supports_resp3
    - Duration::from_millis
    - redis::aio::ConnectionManagerConfig::new
    - subscribe
    linkageType: ''
    returnType: void
    signature: async fn test_manager_should_resubscribe_to_pubsub_channels_after_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: "atomic()\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\")\n\
        \            .arg(0)\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\"\
        )\n            .arg(0)\n            .query_async::<((), ())>"
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 1428
      start: 1402
    functionDepth: 2
    functionLinenumber: 1402
    functionLinenumberEnd: 1428
    functionName: basic_async::test_async_basic_pipe_with_parsing_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - '&mut Self::arg'
    - redis::Pipeline::atomic
    - redis::Cmd::arg
    - "atomic()\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\")\n   \
      \         .arg(0)\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\"\
      )\n            .arg(0)\n            .query_async::<((), ())>"
    - '&mut Self::cmd'
    - Cmd::arg
    - cmd
    - expect_err
    linkageType: ''
    returnType: void
    signature: 'async fn test_async_basic_pipe_with_parsing_error(mut conn: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1433,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1434,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1434,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1434,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1438,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis/tests/test_async.rs:1438,1
    - Dst: tempdir
      Src: /src/redis-rs/redis/tests/test_async.rs:1438,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_async.rs:1438,1
    - Dst: redis_test::utils::build_keys_and_certs_for_tls
      Src: /src/redis-rs/redis/tests/test_async.rs:1442,1
    - Dst: TestContext::with_tls
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    - Dst: TlsFilePaths::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1447,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1448,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1449,1
    - Dst: redis::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1452,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1452,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1452,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1457,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1457,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1458,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1460,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1463,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1468,1
    - Dst: set::<_, _, Value>
      Src: /src/redis-rs/redis/tests/test_async.rs:1471,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1472,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1472,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1472,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1476,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1432
    functionDepth: 3
    functionLinenumber: 1432
    functionLinenumberEnd: 1482
    functionName: basic_async::test_connection_manager_reconnect_after_delay
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::clone
    - client_addr
    - Self::set_exponent_base
    - TestContext::new_with_addr
    - unwrap
    - Self::set_push_sender
    - TestContext::with_tls
    - RedisResult::prefix
    - set
    - clone
    - redis::aio::ConnectionManager::new_with_config
    - Self::set_max_delay
    - tempfile::Builder::new
    - sleep
    - set::<_, _, Value>
    - drop
    - redis_test::utils::build_keys_and_certs_for_tls
    - tempdir
    - expect
    - ProtocolVersion::supports_resp3
    - into
    - tokio::sync::mpsc::unbounded_channel
    - supports_resp3
    - Duration::from_millis
    - redis::aio::ConnectionManagerConfig::new
    linkageType: ''
    returnType: void
    signature: async fn test_connection_manager_reconnect_after_delay()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1487,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1488,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1492,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1493,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1493,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1493,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1497,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1497,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1503,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1503,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1504,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1505,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1507,1
    - Dst: Duration::from_secs_f32
      Src: /src/redis-rs/redis/tests/test_async.rs:1507,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1507,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1486
    functionDepth: 3
    functionLinenumber: 1486
    functionLinenumberEnd: 1510
    functionName: basic_async::test_manager_should_reconnect_without_actions_if_resp3_is_set
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - client_addr
    - TestContext::new
    - get_connection_manager_with_config
    - into
    - clone
    - Self::set_max_delay
    - Self::set_exponent_base
    - supports_resp3
    - unwrap
    - Duration::from_millis
    - redis::aio::ConnectionManagerConfig::new
    - TestContext::new_with_addr
    - sleep
    - Duration::from_secs_f32
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_manager_should_reconnect_without_actions_if_resp3_is_set()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1515,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1516,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1516,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1517,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1517,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1518,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1518,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1523,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1524,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1523,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1527,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1527,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1527,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1527,1
    - Dst: lines
      Src: /src/redis-rs/redis/tests/test_async.rs:1533,1
    - Dst: lines().collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/test_async.rs:1533,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_async.rs:1533,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1536,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1537,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1536,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1540,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1540,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1540,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1540,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1551
      start: 1514
    functionDepth: 9
    functionLinenumber: 1514
    functionLinenumberEnd: 1551
    functionName: basic_async::test_manager_should_completely_disconnect_when_drop
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - len
    - redis::Client::open
    - TestContext::new
    - get_connection_manager_with_config
    - Cmd::arg
    - RedisConnectionInfo::default
    - lines
    - lines().collect::<Vec<_>>
    - unwrap
    - '&mut Self::query_async'
    - redis::aio::ConnectionManagerConfig::new
    - connection_info
    - cmd
    - Self::set_protocol
    - set_redis_settings
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_manager_should_completely_disconnect_when_drop()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1557,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1558,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1562,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1564,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1565,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1565,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1565,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1565,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1570,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1570,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1576,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1576,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1578,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1579,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1579,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1581,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1581,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1587,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1588,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1588,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1590,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1592,1
    - Dst: Duration::from_secs_f32
      Src: /src/redis-rs/redis/tests/test_async.rs:1592,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1592,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1595
      start: 1555
    functionDepth: 3
    functionLinenumber: 1555
    functionLinenumberEnd: 1595
    functionName: basic_async::test_manager_should_reconnect_without_actions_if_push_sender_is_set_even_after_sender_returns_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - client_addr
    - ConnectionAddr::clone
    - Self::set_exponent_base
    - TestContext::new_with_addr
    - unwrap
    - Self::set_push_sender
    - TestContext::new
    - clone
    - recv
    - Self::set_max_delay
    - sleep
    - drop
    - get_connection_manager_with_config
    - into
    - tokio::sync::mpsc::unbounded_channel
    - supports_resp3
    - Duration::from_millis
    - redis::aio::ConnectionManagerConfig::new
    - Duration::from_secs_f32
    linkageType: ''
    returnType: void
    signature: async fn test_manager_should_reconnect_without_actions_if_push_sender_is_set_even_after_sender_returns_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1607,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1607,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1607,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1607,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    - Dst: RedisResult::as_bytes
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    - Dst: windows
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_async.rs:1609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut impl redis::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 1614
      start: 1605
    functionDepth: 13
    functionLinenumber: 1605
    functionLinenumberEnd: 1614
    functionName: b::a::s::i::c::_::a::s::y::n::c::::::::t::e::s::t::_::m::u::l::t::i::p::l::e::x::e::d::_::c::o::n::n::e::c::t::i::o::n::_::k::i::l::l::s::_::c::o::n::n::e::c::t::i::o::n::_::o::n::_::d::r::o::p::_::e::v::e::n::_::w::h::e::n::_::b::l::o::c::k::i::n::g::count_ids
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - RedisResult::as_bytes
    - filter
    - Cmd::arg
    - '&mut Self::query_async'
    - unwrap
    - Ok
    - count
    - cmd
    - windows
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn count_ids(conn: &mut impl redis::aio::ConnectionLike) ->
      RedisResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1599,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1601,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1601,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1602,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1602,1
    - Dst: set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:1603,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1603,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1618,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1618,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1618,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1618,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1624,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1627,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1629,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1629,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1629,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1598
    functionDepth: 3
    functionLinenumber: 1598
    functionLinenumberEnd: 1632
    functionName: basic_async::test_multiplexed_connection_kills_connection_on_drop_even_when_blocking
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - drop
    - TestContext::new
    - into
    - Cmd::arg
    - Self::async_connection
    - unwrap
    - Duration::from_millis
    - sleep
    - cmd
    - unwrap_err
    - set_response_timeout
    - exec_async
    linkageType: ''
    returnType: void
    signature: async fn test_multiplexed_connection_kills_connection_on_drop_even_when_blocking()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1636,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1638,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1638,1
    - Dst: get_async_monitor
      Src: /src/redis-rs/redis/tests/test_async.rs:1639,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1639,1
    - Dst: into_on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1640,1
    - Dst: Option::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1642,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1642,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:1644,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1644,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1647,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1635
    functionDepth: 3
    functionLinenumber: 1635
    functionLinenumberEnd: 1650
    functionName: basic_async::test_monitor
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::async_connection
    - get_async_monitor
    - unwrap
    - into_on_message
    - next
    - Option::set
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_monitor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_async.rs:1660,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_async.rs:1663,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1663,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1663,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1665,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:1666,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1668,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1670,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1670,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1670,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1670,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1670,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1676,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1676,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1676,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 1681
      start: 1659
    functionDepth: 11
    functionLinenumber: 1659
    functionLinenumberEnd: 1681
    functionName: basic_async::test_should_connect_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - TestContext::new_with_mtls
    - redis::Cmd::arg
    - '&mut Self::arg'
    - block_on_all
    - unwrap
    - '&mut Self::query_async'
    - connection_info
    - build_single_client
    - get_multiplexed_async_connection
    - exec_async
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_should_connect_mtls(#[case] runtime: RuntimeType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_async.rs:1687,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_async.rs:1690,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1690,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1690,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1692,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:1693,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1696,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1696,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1696,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1696,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1696,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1702,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1702,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1702,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1710,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1710,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1712,1
    - Dst: is_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1719,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 54
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 1726
      start: 1686
    functionDepth: 11
    functionLinenumber: 1686
    functionLinenumberEnd: 1726
    functionName: basic_async::test_should_not_connect_if_tls_active
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - addr
    - redis::cmd
    - TestContext::new_with_mtls
    - redis::Cmd::arg
    - '&mut Self::arg'
    - is_ok
    - is_err
    - block_on_all
    - unwrap
    - '&mut Self::query_async'
    - connection_info
    - build_single_client
    - get_multiplexed_async_connection
    - exec_async
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn test_should_not_connect_if_tls_active(#[case] runtime: RuntimeType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1732,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1733,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1733,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1734,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1734,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1735,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1735,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1737,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1738,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1738,1
    - Dst: redis::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1739,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1739,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:1742,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1743,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1743,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1743,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1742,1
    - Dst: build_simple_pipeline_for_invalidation
      Src: /src/redis-rs/redis/tests/test_async.rs:1746,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1747,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1748,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1748,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1749,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1731
    functionDepth: 9
    functionLinenumber: 1731
    functionLinenumberEnd: 1754
    functionName: basic_async::test_resp3_pushes_connection_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Pipeline::query_async
    - RedisConnectionInfo::default
    - Self::set_push_sender
    - connection_info
    - send_packed_command
    - '&mut Self::arg'
    - TestContext::new
    - redis::aio::ConnectionManager::new_with_config
    - cmd
    - Self::set_protocol
    - set_redis_settings
    - get
    - redis::Client::open
    - Cmd::arg
    - try_recv
    - RedisResult::unwrap
    - tokio::sync::mpsc::unbounded_channel
    - build_simple_pipeline_for_invalidation
    - redis::aio::ConnectionManagerConfig::new
    linkageType: ''
    returnType: void
    signature: async fn test_resp3_pushes_connection_manager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1758,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1759,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_async.rs:1759,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1760,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1760,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1761,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1761,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1763,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1763,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1765,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1765,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1765,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1757
    functionDepth: 10
    functionLinenumber: 1757
    functionLinenumberEnd: 1771
    functionName: basic_async::test_select_db
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - redis::Client::open
    - TestContext::new
    - RedisResult::unwrap
    - RedisConnectionInfo::set_db
    - unwrap
    - '&mut Self::query_async'
    - connection_info
    - get_multiplexed_async_connection
    - set_redis_settings
    - redis_settings
    linkageType: ''
    returnType: void
    signature: async fn test_select_db()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1775,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1776,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1780,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1781,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1781,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1782,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1782,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1787,1
    - Dst: Self::stop_server
      Src: /src/redis-rs/redis/tests/test_async.rs:1788,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1791,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1791,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1791,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1774
    functionDepth: 3
    functionLinenumber: 1774
    functionLinenumberEnd: 1794
    functionName: basic_async::test_multiplexed_connection_send_single_disconnect_on_connection_failure
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::stop_server
    - drop
    - TestContext::new
    - into
    - tokio::sync::mpsc::unbounded_channel
    - supports_resp3
    - redis::AsyncConnectionConfig::new
    - unwrap
    - sleep
    - Duration::from_millis
    - Self::set_push_sender
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn test_multiplexed_connection_send_single_disconnect_on_connection_failure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1798,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1799,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1799,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1801,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:1801,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1801,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1808,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:1808,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1808,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1797
    functionDepth: 4
    functionLinenumber: 1797
    functionLinenumberEnd: 1814
    functionName: basic_async::test_fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - query_async::<String>
    - redis::Cmd::new
    - TestContext::new
    - redis::Pipeline::new
    - Self::async_connection
    - unwrap
    - unwrap_err
    linkageType: ''
    returnType: void
    signature: async fn test_fail_on_empty_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1822,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1822,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1822,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1822,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl AsyncCommands'
    constantsTouched: []
    func_position:
      end: 1827
      start: 1821
    functionDepth: 1
    functionLinenumber: 1821
    functionLinenumberEnd: 1827
    functionName: basic_async::check_unwatched
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - '&mut Self::query_async'
    - unwrap
    - Cmd::arg
    linkageType: ''
    returnType: void
    signature: 'async fn check_unwatched(con: &mut impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1831,1
    - Dst: impl AsyncCommands + Clone::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1832,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1835,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:1835,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1835,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:1835,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1835,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1835,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1835,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1831,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_async.rs:1849,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands + Clone
    constantsTouched: []
    func_position:
      end: 1850
      start: 1830
    functionDepth: 12
    functionLinenumber: 1830
    functionLinenumberEnd: 1850
    functionName: basic_async::test_simple_case_success
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get
    - set
    - impl AsyncCommands + Clone::clone
    - redis::aio::transaction_async
    - Pipeline::set
    - ignore
    - unwrap
    - check_unwatched
    - query_async
    linkageType: ''
    returnType: void
    signature: 'async fn test_simple_case_success(mut con: impl AsyncCommands + Clone)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1854,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1855,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1855,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1856,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1856,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1858,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1858,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1859,1
    - Dst: tokio::sync::Notify::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1859,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1860,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1861,1
    - Dst: tokio::sync::Notify::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1861,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1862,1
    - Dst: futures::future::join
      Src: /src/redis-rs/redis/tests/test_async.rs:1864,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1865,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1865,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1866,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1867,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1868,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_async.rs:1870,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_async.rs:1871,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_async.rs:1872,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1874,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:1874,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1874,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1874,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_async.rs:1882,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1883,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1883,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_async.rs:1884,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_async.rs:1886,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_async.rs:1887,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1864,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_async.rs:1895,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1895,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1853
    functionDepth: 8
    functionLinenumber: 1853
    functionLinenumberEnd: 1896
    functionName: basic_async::test_transaction_should_retry_on_watch
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - tokio::sync::Notify::new
    - redis::aio::transaction_async
    - AtomicUsize::new
    - Self::async_connection
    - unwrap
    - fetch_add
    - set
    - TestContext::new
    - clone
    - Pipeline::set
    - get
    - Arc::new
    - check_unwatched
    - Self::notified
    - futures::future::join
    - Self::notify_one
    - ignore
    - Self::clone
    - query_async
    linkageType: ''
    returnType: void
    signature: async fn test_transaction_should_retry_on_watch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1900,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1901,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1901,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1903,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1903,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1906,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1906,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1907,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_async.rs:1909,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1912,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_async.rs:1912,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1915,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1906,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_async.rs:1922,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1922,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1899
    functionDepth: 8
    functionLinenumber: 1899
    functionLinenumberEnd: 1923
    functionName: basic_async::test_transaction_should_retry_on_none_from_closure
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::aio::transaction_async
    - TestContext::new
    - AtomicUsize::new
    - clone
    - Arc::new
    - Self::async_connection
    - unwrap
    - Ok
    - check_unwatched
    - Some
    - fetch_add
    linkageType: ''
    returnType: void
    signature: async fn test_transaction_should_retry_on_none_from_closure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1927,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1928,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1928,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1929,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1929,1
    - Dst: redis::aio::transaction_async::<_, _, (), _, _>
      Src: /src/redis-rs/redis/tests/test_async.rs:1931,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1932,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1935,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_async.rs:1937,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_async.rs:1940,1
    - Dst: redis::RedisError::from
      Src: /src/redis-rs/redis/tests/test_async.rs:1940,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1947,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1931,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_async.rs:1959,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1959,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 1926
    functionDepth: 8
    functionLinenumber: 1926
    functionLinenumberEnd: 1960
    functionName: basic_async::test_transaction_abort_if_internal_function_returns_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Err
    - TestContext::new
    - AtomicUsize::new
    - redis::RedisError::from
    - clone
    - Arc::new
    - Self::async_connection
    - unwrap
    - Ok
    - check_unwatched
    - unwrap_err
    - fetch_add
    - redis::aio::transaction_async::<_, _, (), _, _>
    linkageType: ''
    returnType: void
    signature: async fn test_transaction_abort_if_internal_function_returns_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1969,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1971,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/tests/test_async.rs:1971,1
    - Dst: Self::set_number_of_retries
      Src: /src/redis-rs/redis/tests/test_async.rs:1971,1
    - Dst: get_connection_manager_lazy
      Src: /src/redis-rs/redis/tests/test_async.rs:1975,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1975,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1978,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1978,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1979,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1968
    functionDepth: 12
    functionLinenumber: 1968
    functionLinenumberEnd: 1981
    functionName: basic_async::test_lazy_connection_manager_can_be_created_synchronously
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get
    - set
    - TestContext::new
    - Self::set_pipeline_buffer_size
    - unwrap
    - redis::aio::ConnectionManagerConfig::new
    - Self::set_number_of_retries
    - get_connection_manager_lazy
    linkageType: ''
    returnType: void
    signature: async fn test_lazy_connection_manager_can_be_created_synchronously()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1985,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1987,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1988,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1988,1
    - Dst: get_connection_manager_lazy
      Src: /src/redis-rs/redis/tests/test_async.rs:1991,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1991,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1993,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1993,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1995,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1995,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1996,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1998,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1999,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:2001,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:2004,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:2004,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:2004,1
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:2005,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:2005,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:2006,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2006,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2012
      start: 1984
    functionDepth: 12
    functionLinenumber: 1984
    functionLinenumberEnd: 2012
    functionName: basic_async::test_lazy_connection_manager_reconnects_after_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - client_addr
    - get
    - set
    - is_ok
    - drop
    - TestContext::new
    - into
    - clone
    - Self::set_max_delay
    - set::<_, _, ()>
    - TestContext::new_with_addr
    - unwrap
    - Duration::from_millis
    - redis::aio::ConnectionManagerConfig::new
    - sleep
    - unwrap_err
    - get_connection_manager_lazy
    linkageType: ''
    returnType: void
    signature: async fn test_lazy_connection_manager_reconnects_after_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:2016,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:2018,1
    - Dst: get_connection_manager_lazy
      Src: /src/redis-rs/redis/tests/test_async.rs:2019,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2019,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:2020,1
    - Dst: Self::set
      Src: /src/redis-rs/redis/tests/test_async.rs:2023,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2023,1
    - Dst: manager::set
      Src: /src/redis-rs/redis/tests/test_async.rs:2024,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2024,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_async.rs:2026,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2026,1
    - Dst: manager::get
      Src: /src/redis-rs/redis/tests/test_async.rs:2027,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2027,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2015
    functionDepth: 12
    functionLinenumber: 2015
    functionLinenumberEnd: 2031
    functionName: basic_async::test_lazy_connection_manager_can_be_cloned_before_sending
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - manager::get
    - TestContext::new
    - clone
    - Self::get
    - unwrap
    - manager::set
    - redis::aio::ConnectionManagerConfig::new
    - Self::set
    - get_connection_manager_lazy
    linkageType: ''
    returnType: void
    signature: async fn test_lazy_connection_manager_can_be_cloned_before_sending()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:2035,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:2036,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:2040,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:2041,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:2041,1
    - Dst: get_connection_manager_lazy
      Src: /src/redis-rs/redis/tests/test_async.rs:2043,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2043,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:2045,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2045,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:2047,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:2048,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:2048,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:2048,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2047,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:2052,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2052,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:2053,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2053,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:2055,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2055,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2034
    functionDepth: 12
    functionLinenumber: 2034
    functionLinenumberEnd: 2057
    functionName: basic_async::test_lazy_connection_manager_with_resp3_push
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - send_packed_command
    - get
    - set
    - '&mut Self::arg'
    - TestContext::new
    - tokio::sync::mpsc::unbounded_channel
    - recv
    - Cmd::arg
    - supports_resp3
    - unwrap
    - redis::aio::ConnectionManagerConfig::new
    - cmd
    - Self::set_push_sender
    - get_connection_manager_lazy
    linkageType: ''
    returnType: void
    signature: async fn test_lazy_connection_manager_with_resp3_push()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::xadd'
      Src: /src/redis-rs/redis/tests/test_streams.rs:18,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:18,1
    - Dst: '&mut Connection::xadd'
      Src: /src/redis-rs/redis/tests/test_streams.rs:20,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:20,1
    - Dst: '&mut Connection::xadd'
      Src: /src/redis-rs/redis/tests/test_streams.rs:21,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:21,1
    - Dst: '&mut Connection::xadd'
      Src: /src/redis-rs/redis/tests/test_streams.rs:22,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 23
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 23
    functionName: xadd
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 1
    functionsReached:
    - unwrap
    - '&mut Connection::xadd'
    linkageType: ''
    returnType: void
    signature: 'fn xadd(con: &mut Connection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::xadd'
      Src: /src/redis-rs/redis/tests/test_streams.rs:27,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - con
    - key
    - start
    - end
    argTypes:
    - '&mut Connection'
    - '&str'
    - i32
    - i32
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: xadd_keyrange
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - '&mut Connection::xadd'
    linkageType: ''
    returnType: void
    signature: 'fn xadd_keyrange(con: &mut Connection, key: &str, start: i32, end:
      i32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:40,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:43,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:46,1
    - Dst: Self::idle
      Src: /src/redis-rs/redis/tests/test_streams.rs:46,1
    - Dst: Self::time
      Src: /src/redis-rs/redis/tests/test_streams.rs:46,1
    - Dst: retry
      Src: /src/redis-rs/redis/tests/test_streams.rs:46,1
    - Dst: with_force
      Src: /src/redis-rs/redis/tests/test_streams.rs:46,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:46,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:53,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:67,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:68,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:72,1
    - Dst: Self::noack
      Src: /src/redis-rs/redis/tests/test_streams.rs:72,1
    - Dst: Self::block
      Src: /src/redis-rs/redis/tests/test_streams.rs:72,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:72,1
    - Dst: group
      Src: /src/redis-rs/redis/tests/test_streams.rs:72,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:78,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:91,1
    - Dst: Self::noack
      Src: /src/redis-rs/redis/tests/test_streams.rs:91,1
    - Dst: Self::block
      Src: /src/redis-rs/redis/tests/test_streams.rs:91,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:91,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_streams.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 32
    functionDepth: 9
    functionLinenumber: 32
    functionLinenumberEnd: 94
    functionName: test_cmd_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - assert_args
    - group
    - retry
    - Self::noack
    - StreamClaimOptions::default
    - with_force
    - Self::count
    - StreamReadOptions::default
    - Self::time
    - Self::with_justid
    - Self::idle
    - Self::block
    linkageType: ''
    returnType: void
    signature: fn test_cmd_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:105,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:106,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:108,1
    - Dst: bool::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:111,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:111,1
    - Dst: bool::xread
      Src: /src/redis-rs/redis/tests/test_streams.rs:115,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:115,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:115,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_streams.rs:129,1
    - Dst: BTreeMap::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:138,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:139,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:140,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:141,1
    - Dst: bool::xadd_map
      Src: /src/redis-rs/redis/tests/test_streams.rs:142,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:142,1
    - Dst: bool::xrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:144,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:144,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:152,1
    - Dst: bool::xlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:155,1
    - Dst: bool::xadd_maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:160,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:160,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:160,1
    - Dst: bool::xlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 97
    functionDepth: 12
    functionLinenumber: 97
    functionLinenumberEnd: 164
    functionName: test_assorted_1
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - get
    - bool::xadd
    - bool::xlen
    - bool::xadd_maxlen
    - TestContext::new
    - bool::xadd_map
    - bool::xrange_all
    - xadd_keyrange
    - BTreeMap::new
    - StreamMaxlen::Equals
    - bool::xread
    - Self::connection
    - unwrap
    - xadd
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_assorted_1()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:174,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:175,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:177,1
    - Dst: bool::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:180,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:188,1
    - Dst: bool::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:191,1
    - Dst: bool::xgroup_create
      Src: /src/redis-rs/redis/tests/test_streams.rs:197,1
    - Dst: bool::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:201,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 206
    functionName: test_xgroup_create
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - bool::xinfo_stream
    - TestContext::new
    - bool::xgroup_create
    - unwrap
    - Self::connection
    - bool::xinfo_groups
    - xadd
    linkageType: ''
    returnType: void
    signature: fn test_xgroup_create()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:213,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:214,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:216,1
    - Dst: bool::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:219,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:219,1
    - Dst: bool::xgroup_create
      Src: /src/redis-rs/redis/tests/test_streams.rs:225,1
    - Dst: bool::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:229,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:231,1
    - Dst: bool::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:236,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:238,1
    - Dst: bool::xgroup_createconsumer
      Src: /src/redis-rs/redis/tests/test_streams.rs:242,1
    - Dst: bool::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:246,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:248,1
    - Dst: bool::xgroup_createconsumer
      Src: /src/redis-rs/redis/tests/test_streams.rs:253,1
    - Dst: bool::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:257,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 262
    functionName: test_xgroup_createconsumer
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - bool::xinfo_consumers
    - bool::xinfo_stream
    - TestContext::new
    - bool::xgroup_create
    - unwrap
    - Self::connection
    - bool::xinfo_groups
    - xadd
    - bool::xgroup_createconsumer
    linkageType: ''
    returnType: void
    signature: fn test_xgroup_createconsumer()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:278,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:279,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:281,1
    - Dst: bool::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:284,1
    - Dst: bool::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:289,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:291,1
    - Dst: bool::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:301,1
    - Dst: bool::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:302,1
    - Dst: bool::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:306,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:308,1
    - Dst: bool::xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:316,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:316,1
    - Dst: bool::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:329,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:333,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:333,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:329,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:329,1
    - Dst: bool::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:340,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:340,1
    - Dst: bool::xack
      Src: /src/redis-rs/redis/tests/test_streams.rs:344,1
    - Dst: bool::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:349,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:353,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:353,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:349,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:349,1
    - Dst: bool::xinfo_consumers
      Src: /src/redis-rs/redis/tests/test_streams.rs:360,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:360,1
    - Dst: bool::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:364,1
    - Dst: bool::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:365,1
    - Dst: bool::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:366,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:370,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:370,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:366,1
    - Dst: bool::xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:376,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:376,1
    - Dst: assert_stream_pending_data
      Src: /src/redis-rs/redis/tests/test_streams.rs:381,1
    - Dst: bool::xpending_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:387,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:387,1
    - Dst: bool::xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:390,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 151
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 265
    functionDepth: 9
    functionLinenumber: 265
    functionLinenumberEnd: 406
    functionName: test_assorted_2
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - bool::xinfo_consumers
    - Self::group
    - bool::xadd
    - TestContext::new
    - bool::xpending
    - bool::xpending_consumer_count
    - assert_stream_pending_data
    - StreamReadOptions::default
    - bool::xinfo_groups
    - Self::connection
    - unwrap
    - bool::xpending_count
    - bool::xgroup_create_mkstream
    - bool::xread_options
    - bool::xack
    - xadd
    linkageType: ''
    returnType: void
    signature: fn test_assorted_2()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - StreamPendingData
    constantsTouched: []
    func_position:
      end: 413
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 413
    functionName: assert_stream_pending_data
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn assert_stream_pending_data(data: StreamPendingData)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:417,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:418,1
    - Dst: BTreeMap::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:421,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_streams.rs:422,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:423,1
    - Dst: bool::xadd_maxlen_map
      Src: /src/redis-rs/redis/tests/test_streams.rs:424,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:424,1
    - Dst: bool::xlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:427,1
    - Dst: bool::xrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:429,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:429,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 434
      start: 416
    functionDepth: 8
    functionLinenumber: 416
    functionLinenumberEnd: 434
    functionName: test_xadd_maxlen_map
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - to_string
    - bool::xlen
    - TestContext::new
    - bool::xrange_all
    - BTreeMap::new
    - StreamMaxlen::Equals
    - Self::connection
    - bool::xadd_maxlen_map
    - unwrap
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_xadd_maxlen_map()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::del'
      Src: /src/redis-rs/redis/tests/test_streams.rs:458,1
    - Dst: '&mut Connection::xadd_options'
      Src: /src/redis-rs/redis/tests/test_streams.rs:461,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 468
      start: 457
    functionDepth: 9
    functionLinenumber: 457
    functionLinenumberEnd: 468
    functionName: t::e::s::t::_::x::a::d::d::_::o::p::t::i::o::n::s::setup_stream
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - '&mut Connection::xadd_options'
    - '&mut Connection::del'
    linkageType: ''
    returnType: void
    signature: 'fn setup_stream(con: &mut Connection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:438,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:439,1
    - Dst: bool::xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:442,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:446,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:446,1
    - Dst: bool::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:450,1
    - Dst: setup_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:471,1
    - Dst: bool::xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:473,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:477,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:477,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:477,1
    - Dst: bool::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:480,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:480,1
    - Dst: setup_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:485,1
    - Dst: bool::xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:487,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:491,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:491,1
    - Dst: StreamTrimStrategy::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:492,1
    - Dst: bool::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:494,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:494,1
    - Dst: BTreeMap::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:499,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:500,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:501,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:502,1
    - Dst: bool::xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:503,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:503,1
    - Dst: bool::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:505,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:505,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 437
    functionDepth: 9
    functionLinenumber: 437
    functionLinenumberEnd: 509
    functionName: test_xadd_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - bool::xinfo_stream
    - StreamTrimStrategy::minid
    - Self::trim
    - bool::xadd_options
    - TestContext::new
    - BTreeMap::new
    - Self::connection
    - unwrap
    - Self::nomkstream
    - StreamAddOptions::default
    - StreamTrimStrategy::maxlen
    - setup_stream
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_xadd_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:514,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:515,1
    - Dst: bool::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:516,1
    - Dst: bool::xadd_maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:518,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:518,1
    - Dst: bool::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:520,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:524,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:524,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:520,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:520,1
    - Dst: bool::xadd_maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:529,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:529,1
    - Dst: bool::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:530,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:534,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:534,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:530,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 546
      start: 512
    functionDepth: 9
    functionLinenumber: 512
    functionLinenumberEnd: 546
    functionName: test_xread_options_deleted_pel_entry
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - bool::xadd_maxlen
    - TestContext::new
    - StreamMaxlen::Equals
    - StreamReadOptions::default
    - Self::connection
    - unwrap
    - bool::xgroup_create_mkstream
    - bool::xread_options
    linkageType: ''
    returnType: void
    signature: fn test_xread_options_deleted_pel_entry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::flushall'
      Src: /src/redis-rs/redis/tests/test_streams.rs:549,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:549,1
    - Dst: '&mut Connection::xgroup_create_mkstream'
      Src: /src/redis-rs/redis/tests/test_streams.rs:550,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:553,1
    - Dst: '&mut Connection::xread_options'
      Src: /src/redis-rs/redis/tests/test_streams.rs:555,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:559,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:559,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:555,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 565
      start: 548
    functionDepth: 9
    functionLinenumber: 548
    functionLinenumberEnd: 565
    functionName: create_group_add_and_read
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - '&mut Connection::xgroup_create_mkstream'
    - StreamReadOptions::default
    - unwrap
    - '&mut Connection::xread_options'
    - xadd_keyrange
    - '&mut Connection::flushall'
    linkageType: ''
    returnType: StreamReadReply
    signature: 'fn create_group_add_and_read(con: &mut Connection) -> StreamReadReply'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:571,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:572,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:581,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:588,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:588,1
    - Dst: bool::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:591,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:597,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:598,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:598,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:591,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:608,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:608,1
    - Dst: bool::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:612,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:618,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:619,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:619,1
    - Dst: with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:619,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 568
    functionDepth: 10
    functionLinenumber: 568
    functionLinenumberEnd: 630
    functionName: test_xautoclaim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - create_group_add_and_read
    - bool::xautoclaim_options
    - TestContext::new
    - clone
    - Self::count
    - Self::connection
    - std::thread::sleep
    - Duration::from_millis
    - unwrap
    - StreamAutoClaimOptions::default
    - with_justid
    linkageType: ''
    returnType: void
    signature: fn test_xautoclaim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:637,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:638,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:648,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:652,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:652,1
    - Dst: "keys[0]\n        .ids\n        .iter()\n        .map(|msg| &msg.id)\n\
        \        .collect::<Vec<&String>>"
      Src: /src/redis-rs/redis/tests/test_streams.rs:652,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:659,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:659,1
    - Dst: bool::xclaim
      Src: /src/redis-rs/redis/tests/test_streams.rs:662,1
    - Dst: slice::from_ref
      Src: /src/redis-rs/redis/tests/test_streams.rs:663,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:662,1
    - Dst: bool::xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:670,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:670,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:679,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:679,1
    - Dst: bool::xclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:683,1
    - Dst: slice::from_ref
      Src: /src/redis-rs/redis/tests/test_streams.rs:689,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:690,1
    - Dst: Self::with_force
      Src: /src/redis-rs/redis/tests/test_streams.rs:690,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:683,1
    - Dst: bool::xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:694,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:694,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:702,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:702,1
    - Dst: bool::xclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:705,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:712,1
    - Dst: Self::with_force
      Src: /src/redis-rs/redis/tests/test_streams.rs:712,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:712,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 718
      start: 633
    functionDepth: 10
    functionLinenumber: 633
    functionLinenumberEnd: 718
    functionName: test_xclaim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - create_group_add_and_read
    - bool::xclaim_options
    - TestContext::new
    - map
    - bool::xpending
    - slice::from_ref
    - StreamClaimOptions::default
    - Self::connection
    - std::thread::sleep
    - iter
    - "keys[0]\n        .ids\n        .iter()\n        .map(|msg| &msg.id)\n     \
      \   .collect::<Vec<&String>>"
    - Duration::from_millis
    - unwrap
    - bool::xclaim
    - Self::with_justid
    - Self::with_force
    linkageType: ''
    returnType: void
    signature: fn test_xclaim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:722,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:723,1
    - Dst: bool::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:725,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:729,1
    - Dst: bool::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:731,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:732,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:731,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:731,1
    - Dst: bool::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:743,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:747,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:747,1
    - Dst: group
      Src: /src/redis-rs/redis/tests/test_streams.rs:747,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:743,1
    - Dst: bool::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:751,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:751,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:755,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:755,1
    - Dst: bool::xclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:757,1
    - Dst: slice::from_ref
      Src: /src/redis-rs/redis/tests/test_streams.rs:763,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:764,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:764,1
    - Dst: Self::with_lastid
      Src: /src/redis-rs/redis/tests/test_streams.rs:764,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:757,1
    - Dst: bool::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:771,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:771,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:775,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:775,1
    - Dst: bool::xclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:777,1
    - Dst: slice::from_ref
      Src: /src/redis-rs/redis/tests/test_streams.rs:783,1
    - Dst: StreamClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:784,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:784,1
    - Dst: Self::with_lastid
      Src: /src/redis-rs/redis/tests/test_streams.rs:784,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:786,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:777,1
    - Dst: bool::xinfo_groups
      Src: /src/redis-rs/redis/tests/test_streams.rs:791,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 793
      start: 721
    functionDepth: 9
    functionLinenumber: 721
    functionLinenumberEnd: 793
    functionName: test_xclaim_last_id
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - group
    - bool::xclaim_options
    - TestContext::new
    - slice::from_ref
    - StreamClaimOptions::default
    - Self::count
    - as_str
    - StreamReadOptions::default
    - bool::xinfo_groups
    - Self::connection
    - unwrap
    - std::thread::sleep
    - bool::xgroup_create_mkstream
    - bool::xread_options
    - Duration::from_millis
    - Self::with_justid
    - Self::with_lastid
    - xadd_keyrange
    linkageType: ''
    returnType: void
    signature: fn test_xclaim_last_id()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:798,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:799,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:807,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:807,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:809,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:812,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:816,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:816,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:816,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:812,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:812,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:824,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:824,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:824,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:824,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:827,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:827,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:836,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:836,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:839,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:843,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:843,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:843,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:843,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:849,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:864,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:864,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:867,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:864,1
    - Dst: xpending_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:874,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:874,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 893
      start: 796
    functionDepth: 9
    functionLinenumber: 796
    functionLinenumberEnd: 893
    functionName: test_xreadgroup_with_claim_option
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - map
    - run_test_if_version_supported
    - xpending
    - clone
    - claim
    - StreamReadOptions::default
    - unwrap
    - count
    - connection
    - iter
    - std::thread::sleep
    - Duration::from_millis
    - xread_options
    - xgroup_create_mkstream
    - xadd_keyrange
    - xpending_count
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_xreadgroup_with_claim_option()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:898,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:899,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:907,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:907,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:909,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:912,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:916,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:916,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:916,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:912,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:912,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:923,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:923,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:926,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:923,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:930,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:930,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:933,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:936,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:940,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:940,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:940,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:940,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:936,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:946,1
    - Dst: xpending_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:974,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:974,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:993,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:993,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:996,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1000,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1000,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1000,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:996,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1005,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 147
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 896
    functionDepth: 9
    functionLinenumber: 896
    functionLinenumberEnd: 1023
    functionName: test_xreadgroup_claim_with_idle_and_incoming_messages
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - map
    - run_test_if_version_supported
    - claim
    - clone
    - StreamReadOptions::default
    - unwrap
    - count
    - connection
    - iter
    - std::thread::sleep
    - Duration::from_millis
    - xread_options
    - xgroup_create_mkstream
    - xadd_keyrange
    - xpending_count
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_xreadgroup_claim_with_idle_and_incoming_messages()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1028,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1029,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1040,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1040,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:1043,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1047,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1051,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1051,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1051,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1047,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1056,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:1060,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:1060,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1063,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1067,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1067,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1067,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1063,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1072,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1087,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1087,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1093,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1093,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1026
    functionDepth: 9
    functionLinenumber: 1026
    functionLinenumberEnd: 1097
    functionName: test_xreadgroup_claim_multiple_streams
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - run_test_if_version_supported
    - claim
    - StreamReadOptions::default
    - unwrap
    - count
    - connection
    - std::thread::sleep
    - Duration::from_millis
    - xread_options
    - xgroup_create_mkstream
    - xadd_keyrange
    - xpending_consumer_count
    linkageType: ''
    returnType: void
    signature: fn test_xreadgroup_claim_multiple_streams()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:1103,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1104,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1107,1
    - Dst: bool::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:1110,1
    - Dst: bool::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:1114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1100
    functionDepth: 2
    functionLinenumber: 1100
    functionLinenumberEnd: 1117
    functionName: test_xdel
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - bool::xdel
    - TestContext::new
    - Self::connection
    - xadd
    linkageType: ''
    returnType: void
    signature: fn test_xdel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1122,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1123,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1124,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1124,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1136,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1136,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1138,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1138,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1138,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1138,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1141,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1141,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1144,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1148,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1148,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1148,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1150,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1144,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1153,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1153,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1159,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1164,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1164,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:1165,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1167,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1164,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1159,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1159,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1177,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1177,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1182,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1185,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1120
    functionDepth: 9
    functionLinenumber: 1120
    functionLinenumberEnd: 1203
    functionName: test_xadd_options_deletion_policy_keepref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - Self::trim
    - xpending
    - StreamReadOptions::default
    - unwrap
    - connection
    - StreamTrimStrategy::maxlen
    - map
    - count
    - StreamAddOptions::default
    - xgroup_create_mkstream
    - xadd
    - xpending_consumer_count
    - flushdb
    - xadd_options
    - xinfo_stream
    - Self::group
    - set_deletion_policy
    - run_test_if_version_supported
    - xread_options
    - try_into
    linkageType: ''
    returnType: void
    signature: fn test_xadd_options_deletion_policy_keepref()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1208,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1209,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1210,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1210,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1222,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1222,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1224,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1224,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1227,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1227,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1230,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1234,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1234,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1234,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1236,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1230,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1239,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1245,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1250,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1250,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:1251,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1253,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1250,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1245,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1245,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1263,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1263,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1268,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1268,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1271,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1277,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1206
    functionDepth: 9
    functionLinenumber: 1206
    functionLinenumberEnd: 1289
    functionName: test_xadd_options_deletion_policy_delref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - Self::trim
    - xpending
    - StreamReadOptions::default
    - unwrap
    - connection
    - StreamTrimStrategy::maxlen
    - map
    - count
    - StreamAddOptions::default
    - xgroup_create_mkstream
    - xadd
    - xpending_consumer_count
    - flushdb
    - xadd_options
    - xinfo_stream
    - Self::group
    - set_deletion_policy
    - run_test_if_version_supported
    - xread_options
    - try_into
    linkageType: ''
    returnType: void
    signature: fn test_xadd_options_deletion_policy_delref()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1294,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1295,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1296,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1296,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1308,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1308,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1310,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1310,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1310,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1310,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1313,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1313,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1316,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1320,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1320,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1320,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1322,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1316,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1325,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1325,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1331,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1336,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1336,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:1337,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1339,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1336,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1331,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1331,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1352,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1352,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1357,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1357,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1360,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1366,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1378
      start: 1292
    functionDepth: 9
    functionLinenumber: 1292
    functionLinenumberEnd: 1378
    functionName: test_xadd_options_deletion_policy_acked
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - Self::trim
    - xpending
    - StreamReadOptions::default
    - unwrap
    - connection
    - StreamTrimStrategy::maxlen
    - map
    - count
    - StreamAddOptions::default
    - xgroup_create_mkstream
    - xadd
    - xpending_consumer_count
    - flushdb
    - xadd_options
    - xinfo_stream
    - Self::group
    - set_deletion_policy
    - run_test_if_version_supported
    - xread_options
    - try_into
    linkageType: ''
    returnType: void
    signature: fn test_xadd_options_deletion_policy_acked()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1383,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1384,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1385,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1385,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1397,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1397,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1399,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1399,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1399,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1399,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1402,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1402,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1405,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1409,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1409,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1409,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1411,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1405,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1414,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1414,1
    - Dst: xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1420,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:1423,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1423,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1423,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1420,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1428,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1428,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1432,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1438,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1381
    functionDepth: 9
    functionLinenumber: 1381
    functionLinenumberEnd: 1450
    functionName: test_xtrim_options_deletion_policy_keepref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xtrim_options
    - xpending
    - StreamReadOptions::default
    - unwrap
    - connection
    - Self::set_deletion_policy
    - StreamTrimOptions::minid
    - map
    - clone
    - count
    - xgroup_create_mkstream
    - xadd
    - xpending_consumer_count
    - flushdb
    - xinfo_stream
    - Self::group
    - run_test_if_version_supported
    - xread_options
    - try_into
    linkageType: ''
    returnType: void
    signature: fn test_xtrim_options_deletion_policy_keepref()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1455,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1456,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1457,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1457,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1469,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1469,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1471,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1471,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1471,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1471,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1474,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1474,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1477,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1481,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1481,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1481,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1483,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1477,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1486,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1486,1
    - Dst: xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1492,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:1495,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1495,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1495,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1492,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1500,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1500,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1504,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1510,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1453
    functionDepth: 9
    functionLinenumber: 1453
    functionLinenumberEnd: 1522
    functionName: test_xtrim_options_deletion_policy_delref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xtrim_options
    - xpending
    - StreamReadOptions::default
    - unwrap
    - connection
    - Self::set_deletion_policy
    - StreamTrimOptions::minid
    - map
    - clone
    - count
    - xgroup_create_mkstream
    - xadd
    - xpending_consumer_count
    - flushdb
    - xinfo_stream
    - Self::group
    - run_test_if_version_supported
    - xread_options
    - try_into
    linkageType: ''
    returnType: void
    signature: fn test_xtrim_options_deletion_policy_delref()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1527,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1528,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1529,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1529,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1541,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1541,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1543,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1543,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1543,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1543,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1546,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1546,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1549,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1553,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1553,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1553,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1555,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1549,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1558,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1558,1
    - Dst: xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1564,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:1567,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1567,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1567,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1564,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1572,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1572,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1576,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1582,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1525
    functionDepth: 9
    functionLinenumber: 1525
    functionLinenumberEnd: 1594
    functionName: test_xtrim_options_deletion_policy_acked
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - xtrim_options
    - xpending
    - StreamReadOptions::default
    - unwrap
    - connection
    - Self::set_deletion_policy
    - StreamTrimOptions::minid
    - map
    - clone
    - count
    - xgroup_create_mkstream
    - xadd
    - xpending_consumer_count
    - flushdb
    - xinfo_stream
    - Self::group
    - run_test_if_version_supported
    - xread_options
    - try_into
    linkageType: ''
    returnType: void
    signature: fn test_xtrim_options_deletion_policy_acked()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1599,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1600,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1601,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1601,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1616,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1616,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1618,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1618,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1618,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1618,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1621,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1621,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1626,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1630,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1630,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1630,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1626,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1637,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1637,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1650,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1650,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1655,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1662,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1662,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1664,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1664,1
    - Dst: xack
      Src: /src/redis-rs/redis/tests/test_streams.rs:1667,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1667,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1668,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1668,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1670,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1670,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1672,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1674,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1674,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1676,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1676,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1681,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1683,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1683,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1685,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1685,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1690,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1697,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1697,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1699,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1699,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1706,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1706,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1707,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1707,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1707,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1708,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1708,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1710,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1710,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1713,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1720,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1720,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1722,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1722,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1725,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1727,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1727,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1729,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1729,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1735,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1739,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1739,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1739,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1735,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1745,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1745,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1747,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1747,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1751,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1753,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1753,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1755,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1755,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1758,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1760,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1760,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1762,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1762,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1766,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1768,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1768,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1768,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1768,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1770,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:1772,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:1772,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1785,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 299
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1795
      start: 1597
    functionDepth: 9
    functionLinenumber: 1597
    functionLinenumberEnd: 1795
    functionName: test_xdel_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - xdel_ex
    - flushdb
    - run_test_if_version_supported
    - map
    - xadd
    - xpending
    - xinfo_stream
    - as_str
    - StreamReadOptions::default
    - unwrap
    - count
    - connection
    - xread_options
    - xgroup_create_mkstream
    - try_into
    - xack
    linkageType: ''
    returnType: void
    signature: fn test_xdel_ex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:1800,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1801,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1802,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1802,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1819,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1819,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1821,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1821,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1821,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1821,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1825,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1825,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1830,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1834,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1834,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1834,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1830,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1841,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1841,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1854,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1854,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1857,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1857,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1860,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:1871,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_streams.rs:1871,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:1871,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1872,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1872,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1876,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1876,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1878,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1878,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1883,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1883,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1884,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1884,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1884,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1885,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1885,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1891,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1901,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1905,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1905,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1905,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1901,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1911,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1911,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1912,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1912,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1918,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1918,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1923,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1930,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1930,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1932,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1932,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1934,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1934,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1939,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1946,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1946,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1948,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1948,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1953,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1953,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1955,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1955,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1955,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1955,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1958,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1962,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1962,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1962,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1958,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1969,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1969,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1971,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1971,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1973,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1973,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1976,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1989,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1989,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1991,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1991,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1993,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1993,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1996,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:2012,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2012,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:2014,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2014,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2014,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2014,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2017,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2021,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:2021,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2021,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2017,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2027,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2027,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2029,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2029,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2031,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2031,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2035,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2049,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2049,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2051,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2051,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2053,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2053,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2057,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2070,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2070,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2072,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2072,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2074,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2074,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2078,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2087,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 384
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2094
      start: 1798
    functionDepth: 9
    functionLinenumber: 1798
    functionLinenumberEnd: 2094
    functionName: test_xack_del
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - zip
    - len
    - xpending
    - StreamReadOptions::default
    - unwrap
    - RedisResult::iter
    - connection
    - xack_del
    - map
    - clone
    - count
    - iter
    - xgroup_create_mkstream
    - xadd
    - flushdb
    - xinfo_stream
    - Self::group
    - run_test_if_version_supported
    - xread_options
    - try_into
    linkageType: ''
    returnType: void
    signature: fn test_xack_del()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2100,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2101,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2104,1
    - Dst: bool::xtrim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2108,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:2108,1
    - Dst: bool::xtrim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2111,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2113
      start: 2097
    functionDepth: 3
    functionLinenumber: 2097
    functionLinenumberEnd: 2113
    functionName: test_xtrim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - bool::xtrim
    - StreamMaxlen::Equals
    - Self::connection
    - xadd_keyrange
    linkageType: ''
    returnType: void
    signature: fn test_xtrim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2119,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2120,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2123,1
    - Dst: bool::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2127,1
    - Dst: StreamTrimOptions::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2129,1
    - Dst: bool::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2134,1
    - Dst: StreamTrimOptions::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2136,1
    - Dst: bool::del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2140,1
    - Dst: bool::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2143,1
    - Dst: bool::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2147,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:2149,1
    - Dst: bool::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2154,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:2156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2116
    functionDepth: 3
    functionLinenumber: 2116
    functionLinenumberEnd: 2159
    functionName: test_xtrim_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimOptions::minid
    - bool::xadd
    - TestContext::new
    - bool::del
    - Self::connection
    - StreamTrimOptions::maxlen
    - xadd_keyrange
    - bool::xtrim_options
    linkageType: ''
    returnType: void
    signature: fn test_xtrim_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2168,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2169,1
    - Dst: bool::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2172,1
    - Dst: bool::xgroup_destroy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2176,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2180,1
    - Dst: bool::xgroup_create
      Src: /src/redis-rs/redis/tests/test_streams.rs:2183,1
    - Dst: bool::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2187,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2191,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:2191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2187,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2187,1
    - Dst: bool::xgroup_delconsumer
      Src: /src/redis-rs/redis/tests/test_streams.rs:2197,1
    - Dst: bool::xgroup_destroy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2162
    functionDepth: 9
    functionLinenumber: 2162
    functionLinenumberEnd: 2203
    functionName: test_xgroup
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - bool::xgroup_destroy
    - TestContext::new
    - bool::xgroup_delconsumer
    - StreamReadOptions::default
    - bool::xgroup_create
    - Self::connection
    - unwrap
    - bool::xgroup_create_mkstream
    - bool::xread_options
    - xadd
    linkageType: ''
    returnType: void
    signature: fn test_xgroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2212,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2213,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2215,1
    - Dst: bool::xrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:2218,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2218,1
    - Dst: bool::xrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2221,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2221,1
    - Dst: bool::xrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2224,1
    - Dst: bool::xrange_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2227,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2206
    functionDepth: 2
    functionLinenumber: 2206
    functionLinenumberEnd: 2229
    functionName: test_xrange
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - bool::xrange
    - TestContext::new
    - bool::xrange_all
    - Self::connection
    - unwrap
    - xadd
    - bool::xrange_count
    linkageType: ''
    returnType: void
    signature: fn test_xrange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2238,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2239,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2241,1
    - Dst: bool::xrevrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:2244,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2244,1
    - Dst: bool::xrevrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2247,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2247,1
    - Dst: bool::xrevrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2250,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2250,1
    - Dst: bool::xrevrange_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2253,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2255
      start: 2232
    functionDepth: 2
    functionLinenumber: 2232
    functionLinenumberEnd: 2255
    functionName: test_xrevrange
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - bool::xrevrange_count
    - bool::xrevrange
    - TestContext::new
    - unwrap
    - Self::connection
    - bool::xrevrange_all
    - xadd
    linkageType: ''
    returnType: void
    signature: fn test_xrevrange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2266,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2267,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:2275,1
    - Dst: bool::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:2283,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2283,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2283,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:2284,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:2284,1
    - Dst: bool::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2286,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2292,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2293,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2293,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2286,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_streams.rs:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2258
    functionDepth: 10
    functionLinenumber: 2258
    functionLinenumberEnd: 2307
    functionName: test_xautoclaim_invalid_pel_entries_claiming_full_entries
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - create_group_add_and_read
    - bool::xautoclaim_options
    - TestContext::new
    - bool::xdel
    - clone
    - Self::count
    - Self::connection
    - std::thread::sleep
    - Duration::from_millis
    - unwrap
    - Self::supports
    - StreamAutoClaimOptions::default
    linkageType: ''
    returnType: void
    signature: fn test_xautoclaim_invalid_pel_entries_claiming_full_entries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2318,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2319,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:2327,1
    - Dst: bool::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:2335,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2335,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2335,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:2336,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:2336,1
    - Dst: bool::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2338,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2344,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2345,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2345,1
    - Dst: with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:2345,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2338,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/tests/test_streams.rs:2349,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/tests/test_streams.rs:2350,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_streams.rs:2352,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:2360,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2363,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2364,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:2369,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2372,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2310
    functionDepth: 10
    functionLinenumber: 2310
    functionLinenumberEnd: 2381
    functionName: test_xautoclaim_invalid_pel_entries_claiming_just_ids
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - create_group_add_and_read
    - bool::xautoclaim_options
    - std::mem::take
    - TestContext::new
    - bool::xdel
    - clone
    - Default::default
    - Self::count
    - Self::connection
    - std::thread::sleep
    - Duration::from_millis
    - unwrap
    - Self::supports
    - StreamAutoClaimOptions::default
    - with_justid
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_xautoclaim_invalid_pel_entries_claiming_just_ids()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:2403,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2404,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2409,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2409,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2410,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2410,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2415,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2415,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2422,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2422,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2431,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2431,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2437,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2437,1
    - Dst: xrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:2443,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2443,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2446,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2446,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2452,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2453,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2453,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2460,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2460,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2466,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2467,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2467,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2475,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2400
    functionDepth: 9
    functionLinenumber: 2400
    functionLinenumberEnd: 2479
    functionName: idempotency_tests::test_xadd_idempotency_manual_mode
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - xadd_options
    - xinfo_stream_with_idempotency
    - unwrap
    - Self::idmp
    - connection
    - StreamAddOptions::default
    - xrange_all
    linkageType: ''
    returnType: void
    signature: fn test_xadd_idempotency_manual_mode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:2485,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2486,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2491,1
    - Dst: Self::idmpauto
      Src: /src/redis-rs/redis/tests/test_streams.rs:2491,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2492,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2492,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2497,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2497,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2504,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2504,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2518,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2518,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2524,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2524,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2531,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2531,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2537,1
    - Dst: Self::idmpauto
      Src: /src/redis-rs/redis/tests/test_streams.rs:2538,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2537,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2545,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2549
      start: 2482
    functionDepth: 9
    functionLinenumber: 2482
    functionLinenumberEnd: 2549
    functionName: idempotency_tests::test_xadd_idempotency_automatic_mode
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - xadd_options
    - xinfo_stream_with_idempotency
    - unwrap
    - Self::idmpauto
    - connection
    - StreamAddOptions::default
    linkageType: ''
    returnType: void
    signature: fn test_xadd_idempotency_automatic_mode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:2555,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2556,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2571,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2575,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2575,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2575,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2580,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:2587,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2588,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2588,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2588,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2591,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2591,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2597,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2597,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2600,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2604,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:2604,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2604,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:2606,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2600,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2609,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2609,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2614,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2619,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2619,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2619,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2621,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:2623,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2619,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2614,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2614,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2633,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2633,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2642,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2642,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2647,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2652,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2652,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2652,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2654,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:2656,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2652,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2647,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2647,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2666,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2666,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2675,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2680,1
    - Dst: Self::idmpauto
      Src: /src/redis-rs/redis/tests/test_streams.rs:2680,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2680,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2682,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:2684,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2680,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2675,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2675,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2695,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 161
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2552
    functionDepth: 10
    functionLinenumber: 2552
    functionLinenumberEnd: 2702
    functionName: idempotency_tests::test_xadd_idempotency_with_other_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - len
    - Self::trim
    - xpending
    - xinfo_stream_with_idempotency
    - StreamReadOptions::default
    - unwrap
    - connection
    - StreamTrimStrategy::maxlen
    - map
    - count
    - Self::nomkstream
    - StreamAddOptions::default
    - xgroup_create_mkstream
    - xadd
    - xadd_options
    - Self::idmpauto
    - Self::idmp
    - Self::group
    - set_deletion_policy
    - run_test_if_version_supported
    - xread_options
    linkageType: ''
    returnType: void
    signature: fn test_xadd_idempotency_with_other_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:2707,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2708,1
    - Dst: xcfgset
      Src: /src/redis-rs/redis/tests/test_streams.rs:2714,1
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/tests/test_streams.rs:2716,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2716,1
    - Dst: xcfgset
      Src: /src/redis-rs/redis/tests/test_streams.rs:2725,1
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/tests/test_streams.rs:2727,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2727,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2735,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2735,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2738,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2738,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2752,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2752,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2766,1
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/tests/test_streams.rs:2772,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2772,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/tests/test_streams.rs:2772,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2772,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2777,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2777,1
    - Dst: StreamConfigOptions::with_idempotency_maxsize
      Src: /src/redis-rs/redis/tests/test_streams.rs:2783,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2783,1
    - Dst: idempotency_seconds
      Src: /src/redis-rs/redis/tests/test_streams.rs:2783,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2783,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2788,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2792
      start: 2705
    functionDepth: 1
    functionLinenumber: 2705
    functionLinenumberEnd: 2792
    functionName: idempotency_tests::test_xcfgset
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - idempotency_seconds
    - StreamConfigOptions::with_idempotency_maxsize
    - run_test_if_version_supported
    - xinfo_stream_with_idempotency
    - unwrap
    - connection
    - xcfgset
    - idempotency_maxsize
    - StreamConfigOptions::with_idempotency_seconds
    - xgroup_create_mkstream
    linkageType: ''
    returnType: void
    signature: fn test_xcfgset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:2797,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2798,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2803,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2803,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2804,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2804,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2810,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2810,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2811,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2811,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2817,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2817,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2824,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2824,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2830,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2830,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2844,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2844,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2856,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2856,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2863,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2863,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2870,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2870,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2876,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2876,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2889,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2898
      start: 2795
    functionDepth: 9
    functionLinenumber: 2795
    functionLinenumberEnd: 2898
    functionName: idempotency_tests::test_xcfgset_with_idempotent_messages
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - xadd_options
    - xinfo_stream_with_idempotency
    - unwrap
    - Self::idmp
    - connection
    - StreamAddOptions::default
    linkageType: ''
    returnType: void
    signature: fn test_xcfgset_with_idempotent_messages()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:2903,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2904,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2914,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2914,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2925,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2925,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2929,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2929,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2930,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2930,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2935,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2935,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2936,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2936,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2941,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2941,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2948,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2948,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2949,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2949,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2955,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2955,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2960,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2960,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2966,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2966,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2971,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2971,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2977,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2977,1
    - Dst: del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2982,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2982,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2983,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2983,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2994,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2994,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2998,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2998,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2999,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2999,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:3005,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3005,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:3011,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3011,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:3016,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_streams.rs:3016,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:3021,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3021,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:3027,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 141
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 2901
    functionDepth: 9
    functionLinenumber: 2901
    functionLinenumberEnd: 3038
    functionName: idempotency_tests::test_xcfgset_idempotency_behavior
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - std::time::Duration::from_secs
    - xadd_options
    - del
    - xinfo_stream_with_idempotency
    - unwrap
    - std::thread::sleep
    - connection
    - Self::idmp
    - StreamAddOptions::default
    - xgroup_create_mkstream
    linkageType: ''
    returnType: void
    signature: fn test_xcfgset_idempotency_behavior()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::xgroup_create_mkstream'
      Src: /src/redis-rs/redis/tests/test_streams.rs:3058,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3058,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:3059,1
    - Dst: '&mut Connection::xread_options'
      Src: /src/redis-rs/redis/tests/test_streams.rs:3060,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:3064,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:3064,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:3064,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3060,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3060,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:3070,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:3070,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:3070,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:3070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 5
    argNames:
    - con
    - stream
    - group
    - consumer
    - n
    argTypes:
    - '&mut Connection'
    - '&str'
    - '&str'
    - '&str'
    - i32
    constantsTouched: []
    func_position:
      end: 3071
      start: 3051
    functionDepth: 9
    functionLinenumber: 3051
    functionLinenumberEnd: 3071
    functionName: xnack_tests::xnack_setup_pending
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - '&mut Connection::xgroup_create_mkstream'
    - map
    - clone
    - StreamReadOptions::default
    - unwrap
    - count
    - iter
    - '&mut Connection::xread_options'
    - xadd_keyrange
    - collect
    linkageType: ''
    returnType: Vec
    signature: 'fn xnack_setup_pending(con: &mut Connection,stream: &str,group: &str,consumer:
      &str,n: i32,) -> Vec<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::xpending_count'
      Src: /src/redis-rs/redis/tests/test_streams.rs:3075,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3075,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:3076,1
    - Dst: find
      Src: /src/redis-rs/redis/tests/test_streams.rs:3076,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_streams.rs:3076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - con
    - stream
    - group
    - id
    argTypes:
    - '&mut Connection'
    - '&str'
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 3082
      start: 3074
    functionDepth: 1
    functionLinenumber: 3074
    functionLinenumberEnd: 3082
    functionName: xnack_tests::pel_times_delivered
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - find
    - into_iter
    - '&mut Connection::xpending_count'
    - unwrap
    linkageType: ''
    returnType: usize
    signature: 'fn pel_times_delivered(con: &mut Connection, stream: &str, group:
      &str, id: &str) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3086,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3087,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3090,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3092,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3097,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3101
      start: 3085
    functionDepth: 10
    functionLinenumber: 3085
    functionLinenumberEnd: 3101
    functionName: xnack_tests::test_xnack_basic_returns_count_of_nacked_messages
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamNackOptions::new
    - xnack_setup_pending
    - xnack
    - run_test_if_version_supported
    - unwrap
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_xnack_basic_returns_count_of_nacked_messages()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3108,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3109,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3112,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3114,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3114,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3114,1
    - Dst: xpending_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:3118,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - mode
    argTypes:
    - StreamNackMode
    constantsTouched: []
    func_position:
      end: 3123
      start: 3107
    functionDepth: 10
    functionLinenumber: 3107
    functionLinenumberEnd: 3123
    functionName: xnack_tests::test_xnack_marks_message_as_unowned
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamNackOptions::new
    - xnack_setup_pending
    - xnack
    - run_test_if_version_supported
    - unwrap
    - connection
    - xpending_count
    linkageType: ''
    returnType: void
    signature: 'fn test_xnack_marks_message_as_unowned(#[case] mode: StreamNackMode)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3127,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3128,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3131,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3138,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3141,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3142,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3138,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:3148,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:3152,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:3152,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:3152,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3148,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3160
      start: 3126
    functionDepth: 10
    functionLinenumber: 3126
    functionLinenumberEnd: 3160
    functionName: xnack_tests::test_xnack_silent_decrements_delivery_counter
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - StreamNackOptions::new
    - xnack_setup_pending
    - xnack
    - run_test_if_version_supported
    - claim
    - as_str
    - StreamReadOptions::default
    - unwrap
    - connection
    - xread_options
    linkageType: ''
    returnType: void
    signature: fn test_xnack_silent_decrements_delivery_counter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3164,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3165,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3168,1
    - Dst: pel_times_delivered
      Src: /src/redis-rs/redis/tests/test_streams.rs:3170,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3174,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3177,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3178,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3174,1
    - Dst: pel_times_delivered
      Src: /src/redis-rs/redis/tests/test_streams.rs:3181,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:3185,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:3189,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:3189,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:3189,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3185,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3185,1
    - Dst: pel_times_delivered
      Src: /src/redis-rs/redis/tests/test_streams.rs:3197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3200
      start: 3163
    functionDepth: 10
    functionLinenumber: 3163
    functionLinenumberEnd: 3200
    functionName: xnack_tests::test_xnack_fail_keeps_delivery_counter
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - StreamNackOptions::new
    - pel_times_delivered
    - xnack_setup_pending
    - xnack
    - run_test_if_version_supported
    - claim
    - as_str
    - StreamReadOptions::default
    - unwrap
    - connection
    - xread_options
    linkageType: ''
    returnType: void
    signature: fn test_xnack_fail_keeps_delivery_counter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3204,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3205,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3208,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3213,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3216,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3217,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3213,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:3224,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:3228,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:3228,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:3228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3236
      start: 3203
    functionDepth: 10
    functionLinenumber: 3203
    functionLinenumberEnd: 3236
    functionName: xnack_tests::test_xnack_fatal_marks_delivery_counter_as_sentinel
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - StreamNackOptions::new
    - xnack_setup_pending
    - xnack
    - run_test_if_version_supported
    - claim
    - as_str
    - StreamReadOptions::default
    - unwrap
    - connection
    - xread_options
    linkageType: ''
    returnType: void
    signature: fn test_xnack_fatal_marks_delivery_counter_as_sentinel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3240,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3241,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3245,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:3249,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3250,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3253,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3254,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3250,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:3259,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:3259,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:3262,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:3266,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:3266,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:3266,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:3266,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3262,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3279
      start: 3239
    functionDepth: 10
    functionLinenumber: 3239
    functionLinenumberEnd: 3279
    functionName: xnack_tests::test_xnack_prioritized_at_pel_head_when_claiming
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - StreamNackOptions::new
    - xnack_setup_pending
    - xnack
    - run_test_if_version_supported
    - claim
    - clone
    - as_str
    - StreamReadOptions::default
    - unwrap
    - std::thread::sleep
    - connection
    - Duration::from_millis
    - count
    - xread_options
    linkageType: ''
    returnType: void
    signature: fn test_xnack_prioritized_at_pel_head_when_claiming()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3284,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3285,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3301
      start: 3282
    functionDepth: 10
    functionLinenumber: 3282
    functionLinenumberEnd: 3301
    functionName: xnack_tests::test_xnack_ignores_unknown_ids_and_returns_zero
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - xnack_setup_pending
    linkageType: ''
    returnType: void
    signature: fn test_xnack_ignores_unknown_ids_and_returns_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3306,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3307,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3319
      start: 3304
    functionDepth: 10
    functionLinenumber: 3304
    functionLinenumberEnd: 3319
    functionName: xnack_tests::test_xnack_only_affects_known_ids
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - xnack_setup_pending
    linkageType: ''
    returnType: void
    signature: fn test_xnack_only_affects_known_ids()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3323,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3324,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3326,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3337
      start: 3322
    functionDepth: 1
    functionLinenumber: 3322
    functionLinenumberEnd: 3337
    functionName: xnack_tests::test_xnack_nonexistent_stream_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xnack
    - run_test_if_version_supported
    - StreamNackOptions::new
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_xnack_nonexistent_stream_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3341,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3342,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:3345,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3345,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3346,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3356
      start: 3340
    functionDepth: 2
    functionLinenumber: 3340
    functionLinenumberEnd: 3356
    functionName: xnack_tests::test_xnack_nonexistent_group_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamNackOptions::new
    - xnack
    - run_test_if_version_supported
    - unwrap
    - connection
    - xadd
    linkageType: ''
    returnType: void
    signature: fn test_xnack_nonexistent_group_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3361,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3362,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3365,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3367,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3371,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3372,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3367,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3375,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3379,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3380,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3385
      start: 3359
    functionDepth: 10
    functionLinenumber: 3359
    functionLinenumberEnd: 3385
    functionName: xnack_tests::test_xnack_idempotent_double_nack
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamNackOptions::new
    - xnack_setup_pending
    - xnack
    - run_test_if_version_supported
    - as_str
    - unwrap
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_xnack_idempotent_double_nack()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3390,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3391,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3398,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3400,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3403,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3404,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3400,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3407,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3410,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3411,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3407,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:3416,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:3416,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:3418,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:3422,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:3422,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:3422,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:3422,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3418,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3418,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:3430,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:3430,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3430,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:3430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3440
      start: 3388
    functionDepth: 10
    functionLinenumber: 3388
    functionLinenumberEnd: 3440
    functionName: xnack_tests::test_xnack_fifo_ordering_among_multiple_nacked_messages
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - StreamNackOptions::new
    - xnack_setup_pending
    - xnack
    - map
    - run_test_if_version_supported
    - claim
    - as_str
    - StreamReadOptions::default
    - unwrap
    - std::thread::sleep
    - connection
    - Duration::from_millis
    - count
    - iter
    - xread_options
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_xnack_fifo_ordering_among_multiple_nacked_messages()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_streams.rs:3445,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:3446,1
    - Dst: xnack_setup_pending
      Src: /src/redis-rs/redis/tests/test_streams.rs:3452,1
    - Dst: xnack
      Src: /src/redis-rs/redis/tests/test_streams.rs:3453,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3456,1
    - Dst: StreamNackOptions::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:3457,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3453,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:3462,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:3462,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:3463,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3463,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3463,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:3464,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3464,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3464,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:3466,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:3470,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:3470,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:3470,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:3470,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3466,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3466,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:3478,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:3478,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:3478,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:3478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3495
      start: 3443
    functionDepth: 10
    functionLinenumber: 3443
    functionLinenumberEnd: 3495
    functionName: xnack_tests::test_xnack_three_tier_delivery_order
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::group
    - StreamNackOptions::new
    - xnack_setup_pending
    - xnack
    - map
    - run_test_if_version_supported
    - claim
    - as_str
    - StreamReadOptions::default
    - unwrap
    - std::thread::sleep
    - connection
    - Duration::from_millis
    - count
    - iter
    - xread_options
    - xadd
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_xnack_three_tier_delivery_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_once
      Src: /src/redis-rs/redis/tests/test_auth.rs:21,1
    - Dst: env_logger::builder
      Src: /src/redis-rs/redis/tests/test_auth.rs:22,1
    - Dst: is_test
      Src: /src/redis-rs/redis/tests/test_auth.rs:23,1
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_auth.rs:24,1
    - Dst: String::is_err
      Src: /src/redis-rs/redis/tests/test_auth.rs:24,1
    - Dst: filter_level
      Src: /src/redis-rs/redis/tests/test_auth.rs:25,1
    - Dst: init
      Src: /src/redis-rs/redis/tests/test_auth.rs:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 11
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: entra_id_tests::init_logger
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - init
    - env_logger::builder
    - String::is_err
    - filter_level
    - is_test
    - call_once
    linkageType: ''
    returnType: void
    signature: fn init_logger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_auth.rs:41,1
    - Dst: String::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_auth.rs:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: entra_id_tests::get_redis_url
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - String::unwrap_or_else
    linkageType: ''
    returnType: String
    signature: fn get_redis_url() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_auth.rs:46,1
    - Dst: String::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_auth.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - var_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: entra_id_tests::get_env_var
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - String::unwrap_or_else
    linkageType: ''
    returnType: String
    signature: 'fn get_env_var(var_name: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_or_init
      Src: /src/redis-rs/redis/tests/test_auth.rs:53,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:54,1
    - Dst: String::split
      Src: /src/redis-rs/redis/tests/test_auth.rs:54,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_auth.rs:54,1
    - Dst: TlsFilePaths::trim
      Src: /src/redis-rs/redis/tests/test_auth.rs:56,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_auth.rs:56,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_auth.rs:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 13
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: entra_id_tests::get_redis_scopes
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - to_string
    - map
    - String::split
    - get_env_var
    - TlsFilePaths::trim
    - get_or_init
    - collect
    linkageType: ''
    returnType: '&''static Vec'
    signature: fn get_redis_scopes() -> &'static Vec<String>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_auth.rs:62,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_auth.rs:63,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/tests/test_auth.rs:63,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_auth.rs:65,1
    - Dst: get_redis_url
      Src: /src/redis-rs/redis/tests/test_auth.rs:65,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:65,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_auth.rs:66,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_auth.rs:66,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_auth.rs:68,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:68,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_auth.rs:73,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_auth.rs:73,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_auth.rs:73,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_auth.rs:73,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:73,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_auth.rs:80,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_auth.rs:80,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_auth.rs:80,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 2
    argNames:
    - provider
    - test_key
    argTypes:
    - EntraIdCredentialsProvider
    - '&str'
    constantsTouched: []
    func_position:
      end: 87
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 87
    functionName: entra_id_tests::test_redis_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - redis::cmd
    - get_redis_url
    - redis::Cmd::arg
    - '&mut Self::arg'
    - init_logger
    - RetryConfig::default
    - Client::open
    - start
    - redis::AsyncConnectionConfig::new
    - unwrap
    - exec_async
    - '&mut Self::query_async'
    - get_multiplexed_async_connection_with_config
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'async fn test_redis_connection(mut provider: EntraIdCredentialsProvider,
      test_key: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_client_secret_with_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:92,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:93,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:94,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:95,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:96,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:96,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:92,1
    - Dst: test_redis_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 14
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: entra_id_tests::test_service_principal_client_secret
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - '&''static Vec::clone'
    - get_redis_scopes
    - EntraIdCredentialsProvider::new_client_secret_with_scopes
    - get_env_var
    - test_redis_connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_service_principal_client_secret()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:107,1
    - Dst: fs::read
      Src: /src/redis-rs/redis/tests/test_auth.rs:109,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_auth.rs:109,1
    - Dst: encode
      Src: /src/redis-rs/redis/tests/test_auth.rs:113,1
    - Dst: EntraIdCredentialsProvider::new_client_certificate_with_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:115,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:116,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:117,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:122,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:122,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 103
    functionDepth: 14
    functionLinenumber: 103
    functionLinenumberEnd: 126
    functionName: entra_id_tests::setup_provider_with_client_certificate_and_scopes
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - '&''static Vec::clone'
    - get_redis_scopes
    - fs::read
    - EntraIdCredentialsProvider::new_client_certificate_with_scopes
    - RedisResult::unwrap
    - get_env_var
    - encode
    - expect
    linkageType: ''
    returnType: EntraIdCredentialsProvider
    signature: fn setup_provider_with_client_certificate_and_scopes() -> EntraIdCredentialsProvider
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_provider_with_client_certificate_and_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:131,1
    - Dst: test_redis_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 15
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: entra_id_tests::test_service_principal_client_certificate
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - test_redis_connection
    - setup_provider_with_client_certificate_and_scopes
    linkageType: ''
    returnType: void
    signature: async fn test_service_principal_client_certificate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_system_assigned_managed_identity_with_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:139,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:140,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:140,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:139,1
    - Dst: test_redis_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 14
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: entra_id_tests::test_system_assigned_managed_identity
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - '&''static Vec::clone'
    - get_redis_scopes
    - EntraIdCredentialsProvider::new_system_assigned_managed_identity_with_scopes
    - test_redis_connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_system_assigned_managed_identity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:150,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:151,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:151,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_auth.rs:152,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_auth.rs:153,1
    - Dst: UserAssignedId::ObjectId
      Src: /src/redis-rs/redis/tests/test_auth.rs:153,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:153,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_auth.rs:156,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:150,1
    - Dst: test_redis_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 14
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: entra_id_tests::test_user_assigned_managed_identity
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - '&''static Vec::clone'
    - get_redis_scopes
    - EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
    - Default::default
    - get_env_var
    - Some
    - test_redis_connection
    - UserAssignedId::ObjectId
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_user_assigned_managed_identity()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_auth.rs:171,1
    - Dst: String::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_auth.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: entra_id_tests::get_redis_cluster_url
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - String::unwrap_or_else
    linkageType: ''
    returnType: String
    signature: fn get_redis_cluster_url() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_auth.rs:180,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_auth.rs:181,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/tests/test_auth.rs:181,1
    - Dst: redis::cluster::ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_auth.rs:183,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_auth.rs:183,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/tests/test_auth.rs:183,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:183,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:187,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:187,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_auth.rs:191,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_auth.rs:191,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_auth.rs:191,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_auth.rs:191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:191,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_auth.rs:197,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_auth.rs:197,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_auth.rs:197,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 45
    argCount: 2
    argNames:
    - provider
    - test_key
    argTypes:
    - EntraIdCredentialsProvider
    - '&str'
    constantsTouched: []
    func_position:
      end: 204
      start: 176
    functionDepth: 2
    functionLinenumber: 176
    functionLinenumberEnd: 204
    functionName: entra_id_tests::test_redis_cluster_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - Self::build
    - redis::cmd
    - redis::Cmd::arg
    - redis::cluster::ClusterClientBuilder::new
    - '&mut Self::arg'
    - get_async_connection
    - init_logger
    - RetryConfig::default
    - start
    - unwrap
    - '&mut Self::query_async'
    - exec_async
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'async fn test_redis_cluster_connection(mut provider: EntraIdCredentialsProvider,test_key:
      &str,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_client_secret_with_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:209,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:210,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:211,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:212,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:213,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:213,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:209,1
    - Dst: test_redis_cluster_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 14
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: entra_id_tests::test_service_principal_client_secret_cluster
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - '&''static Vec::clone'
    - get_redis_scopes
    - EntraIdCredentialsProvider::new_client_secret_with_scopes
    - get_env_var
    - test_redis_cluster_connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_service_principal_client_secret_cluster()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_provider_with_client_certificate_and_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:224,1
    - Dst: test_redis_cluster_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 15
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: entra_id_tests::test_service_principal_client_certificate_cluster
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - test_redis_cluster_connection
    - setup_provider_with_client_certificate_and_scopes
    linkageType: ''
    returnType: void
    signature: async fn test_service_principal_client_certificate_cluster()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_system_assigned_managed_identity_with_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:233,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:234,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:234,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:233,1
    - Dst: test_redis_cluster_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 240
      start: 231
    functionDepth: 14
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: entra_id_tests::test_system_assigned_managed_identity_cluster
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - '&''static Vec::clone'
    - get_redis_scopes
    - EntraIdCredentialsProvider::new_system_assigned_managed_identity_with_scopes
    - test_redis_cluster_connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_system_assigned_managed_identity_cluster()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:246,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:247,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:247,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_auth.rs:248,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_auth.rs:249,1
    - Dst: UserAssignedId::ObjectId
      Src: /src/redis-rs/redis/tests/test_auth.rs:249,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:249,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_auth.rs:252,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:246,1
    - Dst: test_redis_cluster_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 244
    functionDepth: 14
    functionLinenumber: 244
    functionLinenumberEnd: 257
    functionName: entra_id_tests::test_user_assigned_managed_identity_cluster
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - '&''static Vec::clone'
    - get_redis_scopes
    - test_redis_cluster_connection
    - EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
    - Default::default
    - get_env_var
    - Some
    - UserAssignedId::ObjectId
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_user_assigned_managed_identity_cluster()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::exists'
      Src: /src/redis-rs/redis/tests/test_basic.rs:64,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: basic::generate_random_testing_hash_key
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - '&mut Connection::exists'
    - unwrap
    linkageType: ''
    returnType: String
    signature: 'fn generate_random_testing_hash_key(con: &mut Connection) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_basic.rs:75,1
    - Dst: redis::parse_redis_url
      Src: /src/redis-rs/redis/tests/test_basic.rs:76,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:76,1
    - Dst: redis::parse_redis_url
      Src: /src/redis-rs/redis/tests/test_basic.rs:77,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: basic::test_parse_redis_url
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - unwrap
    - redis::parse_redis_url
    linkageType: ''
    returnType: void
    signature: fn test_parse_redis_url()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::parse'
      Src: /src/redis-rs/redis/tests/test_basic.rs:83,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: basic::test_redis_url_fromstr
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - '&str::parse'
    linkageType: ''
    returnType: void
    signature: fn test_redis_url_fromstr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:88,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:89,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:91,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:91,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:91,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:91,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:91,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:96,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:96,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:96,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 105
    functionName: basic::test_args
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - Self::connection
    - exec
    - '&mut Self::exec'
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:109,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:110,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:116,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:117,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:117,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:117,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:117,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:117,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:117,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:126,1
    - Dst: RedisConnectionInfo::set_password
      Src: /src/redis-rs/redis/tests/test_basic.rs:126,1
    - Dst: Self::set_username
      Src: /src/redis-rs/redis/tests/test_basic.rs:126,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:129,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:129,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:129,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:129,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:129,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:129,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:134,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:134,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:134,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 108
    functionDepth: 10
    functionLinenumber: 108
    functionLinenumberEnd: 136
    functionName: basic::test_can_authenticate_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::arg
    - redis::Cmd::new
    - Self::set_username
    - TestContext::new
    - arg
    - RedisConnectionInfo::set_password
    - redis::Client::open
    - RedisResult::unwrap
    - Cmd::arg
    - '&mut Self::query'
    - Self::connection
    - unwrap
    - cmd
    - connection_info
    - get_connection
    - set_redis_settings
    - redis_settings
    linkageType: ''
    returnType: void
    signature: fn test_can_authenticate_with_username_and_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:140,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:141,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:143,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:143,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:143,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:143,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:143,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:146,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:146,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:146,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:146,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: basic::test_getset
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - Self::connection
    - exec
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_getset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:160,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:161,1
    - Dst: bool::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:164,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:164,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:170,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:170,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:170,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:170,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:170,1
    - Dst: bool::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:171,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:171,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:175,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:175,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:175,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:175,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:175,1
    - Dst: bool::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:180,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:180,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:184,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:184,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:184,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:184,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:184,1
    - Dst: bool::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:189,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:189,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:193,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:193,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:193,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:193,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:193,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:193,1
    - Dst: bool::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:199,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:199,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:203,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:203,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:203,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:203,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:203,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:203,1
    - Dst: bool::key_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:209,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 211
    functionName: basic::test_key_type
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - arg
    - bool::key_type
    - RedisResult::unwrap
    - Self::connection
    - exec
    - unwrap
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_key_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:216,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:217,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:218,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:246,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:246,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:246,1
    - Dst: parse
      Src: /src/redis-rs/redis/tests/test_basic.rs:246,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 214
    functionDepth: 12
    functionLinenumber: 214
    functionLinenumberEnd: 248
    functionName: basic::test_client_tracking_doesnt_block_execution
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::Pipeline::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - arg
    - parse
    - ignore
    - Self::connection
    - unwrap
    - query
    - cmd
    - Option::unwrap
    - bool::get
    linkageType: ''
    returnType: void
    signature: fn test_client_tracking_doesnt_block_execution()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:252,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:253,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:255,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:255,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:255,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:255,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 2
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: basic::test_incr
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - Self::connection
    - exec
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_incr()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:261,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:262,1
    - Dst: bool::ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:264,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:264,1
    - Dst: bool::ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:266,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 268
    functionName: basic::test_ping
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::ping
    - TestContext::new
    - Self::connection
    - unwrap
    - bool::ping_message
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_ping()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:272,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:273,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:275,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:275,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:275,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:275,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 283
    functionName: basic::test_getdel
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - Self::connection
    - exec
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_getdel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:287,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:288,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:290,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:290,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:290,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:290,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:290,1
    - Dst: redis::Commands::get_ex::<_, usize>
      Src: /src/redis-rs/redis/tests/test_basic.rs:298,1
    - Dst: Expiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:298,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:298,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:302,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:302,1
    - Dst: bool::get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:303,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:303,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:303,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:307,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:307,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:308,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:308,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:312,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:312,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:312,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:312,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:312,1
    - Dst: bool::get_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:319,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:319,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:319,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:323,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:323,1
    - Dst: bool::get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:324,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 286
    functionDepth: 12
    functionLinenumber: 286
    functionLinenumberEnd: 326
    functionName: basic::test_getex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Commands::get_ex::<_, usize>
    - Expiry::EX
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - bool::get_int
    - Self::connection
    - exec
    - unwrap
    - sleep
    - Duration::from_millis
    - Duration::from_secs
    - bool::get_ex
    - Option::unwrap
    - bool::get
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_getex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:330,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:331,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:333,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:333,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 339
    functionName: basic::test_info
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::query
    - TestContext::new
    - Self::connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:343,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:344,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:346,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:346,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:346,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:346,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:346,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:346,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:352,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:352,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:352,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:352,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:352,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:352,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:359,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:359,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:359,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:359,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:364,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:364,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:364,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 368
    functionName: basic::test_hash_ops
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - arg
    - '&mut Self::query'
    - Self::connection
    - exec
    - unwrap
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_hash_ops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:372,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:374,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:375,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:375,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:375,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:375,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:375,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:375,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:375,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:375,1
    - Dst: hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:384,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:384,1
    - Dst: httl
      Src: /src/redis-rs/redis/tests/test_basic.rs:389,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:389,1
    - Dst: hpttl
      Src: /src/redis-rs/redis/tests/test_basic.rs:394,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:394,1
    - Dst: hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:399,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:399,1
    - Dst: hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:405,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:405,1
    - Dst: hpexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:411,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:411,1
    - Dst: hpexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:417,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:417,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:423,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:423,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:423,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:423,1
    - Dst: hexpire_at
      Src: /src/redis-rs/redis/tests/test_basic.rs:427,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:427,1
    - Dst: hexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:437,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:437,1
    - Dst: hpexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:439,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:439,1
    - Dst: hpersist
      Src: /src/redis-rs/redis/tests/test_basic.rs:445,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:445,1
    - Dst: hpttl
      Src: /src/redis-rs/redis/tests/test_basic.rs:447,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 451
    functionName: basic::test_hash_expiration
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - SystemTime::now
    - as_secs
    - exec
    - unwrap
    - connection
    - duration_since
    - '&mut Self::arg'
    - httl
    - hpexpire_time
    - hpttl
    - redis::Cmd::arg
    - arg
    - hexpire_time
    - RedisResult::unwrap
    - redis::cmd
    - run_test_if_version_supported
    - hexpire_at
    - hpersist
    - hexpire
    - hpexpire
    linkageType: ''
    returnType: void
    signature: fn test_hash_expiration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:459,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:459,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - con
    - hash_key
    - hash_fields_and_values
    argTypes:
    - '&mut Connection'
    - '&str'
    - '&[(&str, u8)]'
    constantsTouched: []
    func_position:
      end: 465
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 465
    functionName: basic::verify_exact_hash_fields_and_values
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Commands::hgetall
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'fn verify_exact_hash_fields_and_values(con: &mut Connection,hash_key:
      &str,hash_fields_and_values: &[(&str, u8)],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[&str]::iter'
      Src: /src/redis-rs/redis/tests/test_basic.rs:472,1
    - Dst: for_each
      Src: /src/redis-rs/redis/tests/test_basic.rs:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - hash_fields
    - hash_fields_to_check
    argTypes:
    - '&HashMap<String, String>'
    - '&[&str]'
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 475
    functionName: basic::verify_fields_absence_from_hash
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - '&[&str]::iter'
    - for_each
    linkageType: ''
    returnType: void
    signature: 'fn verify_fields_absence_from_hash(hash_fields: &HashMap<String, String>,hash_fields_to_check:
      &[&str],)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:486,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:487,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:497,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:500,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:500,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:505,1
    - Dst: Self::extend_from_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:527,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:530,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:530,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 549
      start: 485
    functionDepth: 2
    functionLinenumber: 485
    functionLinenumberEnd: 549
    functionName: basic::test_hget_del
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - hgetall
    - run_test_if_version_supported
    - verify_fields_absence_from_hash
    - unwrap
    - Self::extend_from_slice
    - connection
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_hget_del()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:563,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:564,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:608,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:615,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:615,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:617,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:619,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:619,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:624,1
    - Dst: redis::Commands::hget_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:642,1
    - Dst: Expiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:642,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:642,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:645,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:649,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:656,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:656,1
    - Dst: Self::extend_from_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:658,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:660,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:660,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 674
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 674
    functionName: basic::test_hget_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Expiry::EX
    - verify_exact_hash_fields_and_values
    - hgetall
    - len
    - run_test_if_version_supported
    - verify_fields_absence_from_hash
    - redis::Commands::hget_ex
    - sleep
    - Duration::from_millis
    - connection
    - unwrap
    - Self::extend_from_slice
    - Vec::from
    linkageType: ''
    returnType: void
    signature: fn test_hget_ex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:682,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:683,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:688,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:709,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:709,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:709,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:749,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:749,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 754
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 754
    functionName: basic::test_hget_ex_field_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - duration_since
    - verify_exact_hash_fields_and_values
    - run_test_if_version_supported
    - SystemTime::now
    - unwrap
    - sleep
    - connection
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: fn test_hget_ex_field_expiration_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:777,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:778,1
    - Dst: generate_random_testing_hash_key
      Src: /src/redis-rs/redis/tests/test_basic.rs:780,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:783,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:783,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:787,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:787,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:793,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:799,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:799,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:809,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:813,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:815,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:815,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:825,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:829,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:833,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:833,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:844,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:844,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:859,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:859,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:859,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:863,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:863,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:873,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:887,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:887,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:890,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:890,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:901,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:901,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:917,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:917,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:918,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:918,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:918,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:922,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:922,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:932,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:945,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:945,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:949,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:949,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 167
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 955
      start: 776
    functionDepth: 9
    functionLinenumber: 776
    functionLinenumberEnd: 955
    functionName: basic::test_hset_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - verify_exact_hash_fields_and_values
    - hgetall
    - hset_ex
    - run_test_if_version_supported
    - map
    - verify_fields_absence_from_hash
    - Self::set_existence_check
    - redis::Commands::hgetall
    - unwrap
    - Self::set_expiration
    - connection
    - iter
    - sleep
    - Duration::from_millis
    - generate_random_testing_hash_key
    - HashFieldExpirationOptions::default
    - SetExpiry::EX
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_hset_ex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:963,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:964,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:969,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:972,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:972,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:972,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:974,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:976,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:976,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:981,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:981,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:982,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:982,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:987,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:987,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:987,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:990,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:990,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:990,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:991,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:991,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:996,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:997,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:997,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:998,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:998,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1003,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1003,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1004,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1004,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1010,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1011,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1011,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1017,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 962
    functionDepth: 9
    functionLinenumber: 962
    functionLinenumberEnd: 1021
    functionName: basic::test_hsetex_field_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - duration_since
    - verify_exact_hash_fields_and_values
    - SetExpiry::EXAT
    - hset_ex
    - run_test_if_version_supported
    - SetExpiry::PXAT
    - SystemTime::now
    - SetExpiry::PX
    - as_secs
    - as_millis
    - Self::set_existence_check
    - Self::set_expiration
    - unwrap
    - sleep
    - connection
    - Duration::from_millis
    - HashFieldExpirationOptions::default
    - SetExpiry::EX
    linkageType: ''
    returnType: void
    signature: fn test_hsetex_field_expiration_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:1025,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1026,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1030,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:1030,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1030,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1032,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1035,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1035,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1041,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1041,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1042,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1042,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:1047,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1056,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1056,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:1059,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1059,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1024
    functionDepth: 9
    functionLinenumber: 1024
    functionLinenumberEnd: 1068
    functionName: basic::test_hsetex_can_update_the_expiration_of_a_field_that_has_already_been_set_to_expire
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - verify_exact_hash_fields_and_values
    - hgetall
    - hset_ex
    - run_test_if_version_supported
    - verify_fields_absence_from_hash
    - Self::set_existence_check
    - Self::set_expiration
    - unwrap
    - sleep
    - connection
    - Duration::from_millis
    - HashFieldExpirationOptions::default
    - SetExpiry::EX
    linkageType: ''
    returnType: void
    signature: fn test_hsetex_can_update_the_expiration_of_a_field_that_has_already_been_set_to_expire()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1075,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1076,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1078,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1078,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1078,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1078,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1078,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1082,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1082,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1082,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1082,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1082,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1083,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1083,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1083,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1083,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1085
    functionName: basic::test_unlink
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - Self::connection
    - exec
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_unlink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1089,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1090,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1094,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1094,1
    - Dst: TlsFilePaths::sort_unstable
      Src: /src/redis-rs/redis/tests/test_basic.rs:1095,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1099,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1099,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1105,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1110
    functionName: basic::test_set_ops
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Commands::smembers
    - Self::connection
    - unwrap
    - TlsFilePaths::sort_unstable
    linkageType: ''
    returnType: void
    signature: fn test_set_ops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1114,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1115,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1119,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1119,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1119,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1119,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1119,1
    - Dst: TlsFilePaths::sort_unstable
      Src: /src/redis-rs/redis/tests/test_basic.rs:1124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1113
    functionDepth: 2
    functionLinenumber: 1113
    functionLinenumberEnd: 1128
    functionName: basic::test_scan
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - Self::connection
    - unwrap
    - query
    - TlsFilePaths::sort_unstable
    linkageType: ''
    returnType: void
    signature: fn test_scan()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1132,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1133,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1135,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1137,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1137,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1137,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1137,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1137,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1145,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1145,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1145,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/tests/test_basic.rs:1145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1131
    functionDepth: 2
    functionLinenumber: 1131
    functionLinenumberEnd: 1150
    functionName: basic::test_optionals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - unwrap_or
    - '&mut Self::query'
    - Self::connection
    - exec
    - query
    - unwrap
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_optionals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1154,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1155,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1156,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1159,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1159,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1159,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1159,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1159,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1163,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1163,1
    - Dst: '&mut Self::cursor_arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1163,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1163,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:1163,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1163,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:1170,1
    - Dst: Self::remove
      Src: /src/redis-rs/redis/tests/test_basic.rs:1174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1153
    functionDepth: 8
    functionLinenumber: 1153
    functionLinenumberEnd: 1178
    functionName: basic::test_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - '&mut Self::clone'
    - '&mut Self::cursor_arg'
    - TestContext::new
    - Self::insert
    - map
    - Self::remove
    - Self::connection
    - HashSet::new
    - exec
    - unwrap
    - Self::iter
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_scanning()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1184,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1185,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1189,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1189,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1189,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1189,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1189,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1197,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1197,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1197,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1197,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1197,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1205,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1206,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:1206,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1205,1
    - Dst: None::is_some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1215,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1219,1
    - Dst: kind
      Src: /src/redis-rs/redis/tests/test_basic.rs:1219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1181
    functionDepth: 9
    functionLinenumber: 1181
    functionLinenumberEnd: 1231
    functionName: basic::test_checked_scanning_error
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - kind
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - None::is_some
    - TestContext::new
    - scan_options::<String>
    - ScanOptions::default
    - Self::with_count
    - Self::connection
    - exec
    - unwrap
    - Some
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_checked_scanning_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1235,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1236,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1237,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1240,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1240,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:1243,1
    - Dst: hscan_match::<&str, &str, (String, usize)>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1247,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1247,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:1251,1
    - Dst: Self::remove
      Src: /src/redis-rs/redis/tests/test_basic.rs:1254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1234
    functionDepth: 8
    functionLinenumber: 1234
    functionLinenumberEnd: 1258
    functionName: basic::test_filtered_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::insert
    - map
    - Self::remove
    - hscan_match::<&str, &str, (String, usize)>
    - unwrap
    - Self::connection
    - HashSet::new
    - bool::hset
    linkageType: ''
    returnType: void
    signature: fn test_filtered_scanning()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1262,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1263,1
    - Dst: bool::append
      Src: /src/redis-rs/redis/tests/test_basic.rs:1265,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1265,1
    - Dst: bool::append
      Src: /src/redis-rs/redis/tests/test_basic.rs:1266,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1266,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1268,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1268,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1271,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:1271,1
    - Dst: Result::with_pattern
      Src: /src/redis-rs/redis/tests/test_basic.rs:1271,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1272,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1272,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1273,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1276,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1277,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1277,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1278,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1281,1
    - Dst: Self::with_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:1281,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1282,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1282,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1283,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1286,1
    - Dst: Self::with_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:1286,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1287,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1287,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1261
    functionDepth: 9
    functionLinenumber: 1261
    functionLinenumberEnd: 1290
    functionName: basic::test_scan_with_options_works
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::with_type
    - bool::append
    - TestContext::new
    - ScanOptions::default
    - Self::with_count
    - scan_options::<String>
    - Self::collect
    - unwrap
    - Self::connection
    - bool::hset
    - Result::with_pattern
    linkageType: ''
    returnType: void
    signature: fn test_scan_with_options_works()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1294,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1295,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1313
      start: 1293
    functionDepth: 2
    functionLinenumber: 1293
    functionLinenumberEnd: 1313
    functionName: basic::test_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::Pipeline::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - arg
    - ignore
    - Self::connection
    - unwrap
    - query
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1317,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1318,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1320,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1320,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1320,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1320,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1320,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1325,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1325,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1325,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1325,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1325,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1331,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1331,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1331,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1331,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1331,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1337,1
    - Dst: redis::Pipeline::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1337,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1337,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1337,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1337,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1348,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1348,1
    - Dst: "arg(\"x\")\n            .query::<String>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1348,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1316
    functionDepth: 12
    functionLinenumber: 1316
    functionLinenumberEnd: 1353
    functionName: basic::test_pipeline_with_err
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::cmd
    - get
    - "arg(\"x\")\n            .query::<String>"
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - ignore
    - Self::connection
    - exec
    - unwrap
    - redis::Pipeline::set
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_with_err()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1357,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1358,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1359,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1360,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1360,1
    - Dst: hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1360,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1360,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1360,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1366,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1367,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_basic.rs:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1356
    functionDepth: 12
    functionLinenumber: 1356
    functionLinenumberEnd: 1372
    functionName: basic::test_pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - get
    - to_string
    - Pipeline::exec
    - TestContext::new
    - Pipeline::set
    - ignore
    - Self::connection
    - hset
    - unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_returns_server_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1376,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1377,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1379,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1379,1
    - Dst: redis::Cmd::ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1379,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1379,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1375
    functionDepth: 2
    functionLinenumber: 1375
    functionLinenumberEnd: 1380
    functionName: basic::test_empty_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::Pipeline::cmd
    - redis::Cmd::ignore
    - TestContext::new
    - Self::connection
    - exec
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_empty_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1384,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1383
    functionDepth: 2
    functionLinenumber: 1383
    functionLinenumberEnd: 1404
    functionName: basic::test_pipeline_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::Cmd::arg
    - redis::Pipeline::atomic
    - '&mut Self::arg'
    - TestContext::new
    - arg
    - '&mut Self::cmd'
    - ignore
    - Self::connection
    - unwrap
    - query
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_transaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1408,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1409,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1411,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1411,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1414,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1414,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1414,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1414,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1414,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1421,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1421,1
    - Dst: '&mut Self::ping'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1421,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1421,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1421,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1421,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1421,1
    - Dst: "atomic()\n            .ping()\n            .set(\"x\", 142)\n        \
        \    .ignore()\n            .get(\"x\")\n            .set(\"x\", 142)\n  \
        \          .query::<()>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1421,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1421,1
    - Dst: into_server_errors
      Src: /src/redis-rs/redis/tests/test_basic.rs:1432,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1432,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1439,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1407
    functionDepth: 12
    functionLinenumber: 1407
    functionLinenumberEnd: 1441
    functionName: basic::test_pipeline_transaction_with_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::Pipeline::atomic
    - bool::set
    - Self::connection
    - unwrap
    - exec
    - '&mut Self::ping'
    - Option::unwrap
    - '&mut Self::arg'
    - set
    - TestContext::new
    - into_server_errors
    - redis::Commands::get
    - get
    - redis::Cmd::arg
    - RedisResult::unwrap
    - redis::cmd
    - ignore
    - unwrap_err
    - "atomic()\n            .ping()\n            .set(\"x\", 142)\n            .ignore()\n\
      \            .get(\"x\")\n            .set(\"x\", 142)\n            .query::<()>"
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_transaction_with_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1445,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1446,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1448,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1450,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1450,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1450,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1450,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1450,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1450,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1450,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1450,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1462,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1465,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1465,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1465,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1465,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1465,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1465,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1465,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1465,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1444
    functionDepth: 2
    functionLinenumber: 1444
    functionLinenumberEnd: 1479
    functionName: basic::test_pipeline_reuse_query
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::cmd
    - redis::Cmd::arg
    - TestContext::new
    - arg
    - ignore
    - Self::connection
    - unwrap
    - query
    - '&mut Self::exec'
    - cmd
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_reuse_query()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1483,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1484,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1486,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1488,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1488,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1488,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1488,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1488,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1488,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1488,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1488,1
    - Dst: clear
      Src: /src/redis-rs/redis/tests/test_basic.rs:1497,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1501,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1503,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1503,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1503,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1503,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1503,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1503,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1503,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1503,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1503,1
    - Dst: clear
      Src: /src/redis-rs/redis/tests/test_basic.rs:1513,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1482
    functionDepth: 3
    functionLinenumber: 1482
    functionLinenumberEnd: 1517
    functionName: basic::test_pipeline_reuse_query_clear
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::cmd
    - redis::Cmd::arg
    - TestContext::new
    - arg
    - ignore
    - Self::connection
    - unwrap
    - query
    - '&mut Self::exec'
    - cmd
    - clear
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_reuse_query_clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1521,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1523,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1523,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1520
    functionDepth: 2
    functionLinenumber: 1520
    functionLinenumberEnd: 1525
    functionName: basic::test_pipeline_len
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - arg
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1529,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1532,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1532,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1534
      start: 1528
    functionDepth: 2
    functionLinenumber: 1528
    functionLinenumberEnd: 1534
    functionName: basic::test_pipeline_is_empty
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - arg
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_is_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1538,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1539,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1542,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1542,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1542,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1542,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1542,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1545,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1546,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1546,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1546,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1546,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1547,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1568
      start: 1537
    functionDepth: 3
    functionLinenumber: 1537
    functionLinenumberEnd: 1568
    functionName: basic::test_real_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - redis::Pipeline::atomic
    - TestContext::new
    - arg
    - '&mut Self::cmd'
    - '&mut Self::query'
    - ignore
    - Self::connection
    - exec
    - unwrap
    - '&mut Self::exec'
    - query
    - cmd
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_real_transaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1572,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1573,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1576,1
    - Dst: redis::transaction
      Src: /src/redis-rs/redis/tests/test_basic.rs:1578,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1579,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1579,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1579,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1579,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1580,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1580,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1580,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1580,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1580,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1580,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1580,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1571
    functionDepth: 3
    functionLinenumber: 1571
    functionLinenumberEnd: 1591
    functionName: basic::test_real_transaction_highlevel
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Pipeline::cmd
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - arg
    - '&mut Self::query'
    - ignore
    - Self::connection
    - exec
    - unwrap
    - redis::transaction
    - query
    - cmd
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_real_transaction_highlevel()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1596,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1597,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1600,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1601,1
    - Dst: bool::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:1603,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1607,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1607,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1608,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1610,1
    - Dst: bool::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1611,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1612,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1612,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1614,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1616,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1616,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1620,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1620,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1625,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1626,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1626,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1626,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1626,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1626,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1634,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1634,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1635,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1638,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1638,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1646,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1646,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1654,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1663
      start: 1594
    functionDepth: 8
    functionLinenumber: 1594
    functionLinenumberEnd: 1663
    functionName: basic::test_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::connection
    - unwrap
    - exec
    - '&mut Self::arg'
    - Barrier::new
    - TestContext::new
    - spawn
    - bool::set_push_sender
    - bool::as_pubsub
    - redis::Cmd::arg
    - Arc::new
    - try_recv
    - RedisResult::unwrap
    - expect
    - redis::cmd
    - std::sync::mpsc::channel
    - Self::wait
    - supports_resp3
    - Self::join
    - subscribe
    - Self::clone
    - get_message
    linkageType: ''
    returnType: void
    signature: fn test_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1667,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1668,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1671,1
    - Dst: bool::set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:1672,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1673,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1673,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1672,1
    - Dst: PubSub::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1675,1
    - Dst: PubSub::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1677,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1677,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1678,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1678,1
    - Dst: bool::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1681,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1681,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1683,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1686
      start: 1666
    functionDepth: 1
    functionLinenumber: 1666
    functionLinenumberEnd: 1686
    functionName: basic::test_pubsub_handles_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - PubSub::subscribe
    - TestContext::new
    - PubSub::get_message
    - Self::connection
    - Duration::from_millis
    - PubSub::as_pubsub
    - bool::set_read_timeout
    - RedisResult::unwrap_err
    - unwrap
    - Some
    - bool::publish
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_handles_timeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1691,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1692,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1695,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1699,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1699,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1700,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1703,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1703,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1704,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1706,1
    - Dst: bool::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1707,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1708,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1708,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1710,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1711,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1713,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:1714,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1714,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:1717,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1717,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1721,1
    - Dst: ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1722,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1722,1
    - Dst: ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1725,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1725,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1729,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1729,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1733,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1733,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1738,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1740,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1740,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1740,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1740,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1740,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1749,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1751,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1752
      start: 1689
    functionDepth: 8
    functionLinenumber: 1689
    functionLinenumberEnd: 1752
    functionName: basic::test_pubsub_send_ping
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::connection
    - unwrap
    - exec
    - '&mut Self::arg'
    - Barrier::new
    - TestContext::new
    - spawn
    - bool::as_pubsub
    - redis::Cmd::arg
    - Arc::new
    - ping
    - RedisResult::unwrap
    - ping_message
    - redis::cmd
    - expect
    - Self::wait
    - supports_resp3
    - Self::join
    - subscribe
    - Self::clone
    - get_message
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_send_ping()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1756,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1757,1
    - Dst: Option::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1758,1
    - Dst: PubSub::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1759,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1759,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1760,1
    - Dst: bool::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1762,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1762,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1763,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1763,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1763,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1763,1
    - Dst: bool::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1766,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1755
    functionDepth: 1
    functionLinenumber: 1755
    functionLinenumberEnd: 1769
    functionName: basic::pub_sub_subscription_to_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - PubSub::subscribe
    - TestContext::new
    - PubSub::get_message
    - Self::connection
    - unwrap
    - get_payload
    - Option::as_pubsub
    - bool::publish
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn pub_sub_subscription_to_multiple_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1773,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1774,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1776,1
    - Dst: bool::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:1778,1
    - Dst: bool::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1780,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1781,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1781,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1782,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1782,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1783,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1783,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1784,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1784,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1785,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1785,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1786,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1786,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1790,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1790,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1791,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1791,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1791,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1794,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1812,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1812,1
    - Dst: redis::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_basic.rs:1814,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_basic.rs:1814,1
    - Dst: '&''a NodeAddress::unwrap'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1814,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1814,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:1815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1821
      start: 1772
    functionDepth: 12
    functionLinenumber: 1772
    functionLinenumberEnd: 1821
    functionName: basic::test_pubsub_unsubscribe
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - bool::set
    - psubscribe
    - Self::connection
    - unwrap
    - redis::from_redis_value_ref
    - Option::unwrap
    - TestContext::new
    - bool::set_push_sender
    - bool::as_pubsub
    - '&''a NodeAddress::unwrap'
    - try_recv
    - RedisResult::unwrap
    - std::sync::mpsc::channel
    - push
    - supports_resp3
    - subscribe
    - first
    - bool::get
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_unsubscribe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1825,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1826,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1827,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1828,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1828,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1828,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1829,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1830,1
    - Dst: std::thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1832,1
    - Dst: bool::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1833,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1834,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1834,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/tests/test_basic.rs:1835,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1835,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1837,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1837,1
    - Dst: get_channel_name
      Src: /src/redis-rs/redis/tests/test_basic.rs:1838,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1839,1
    - Dst: lock
      Src: /src/redis-rs/redis/tests/test_basic.rs:1840,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1840,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:1840,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1849,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1849,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/tests/test_basic.rs:1850,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1850,1
    - Dst: "(\n        PendingRequest::recv"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1854,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1854,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1859,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1859,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1859,1
    - Dst: "arg(\"foo\")\n                .arg(index)\n                .query::<i32>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1859,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1859,1
    - Dst: "(\n        PendingRequest::recv"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1865,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1865,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1866,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1866,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1866,1
    - Dst: "arg(\"bar\")\n            .arg(-1)\n            .query::<i32>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1866,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1866,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1871,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1871,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1879
      start: 1824
    functionDepth: 8
    functionLinenumber: 1824
    functionLinenumberEnd: 1879
    functionName: basic::test_pubsub_subscribe_while_messages_are_sent
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Self::connection
    - unwrap
    - get_channel_name
    - Self::unwrap
    - std::thread::spawn
    - '&mut Self::arg'
    - "arg(\"foo\")\n                .arg(index)\n                .query::<i32>"
    - TestContext::new
    - Self::send
    - clone
    - std::sync::Arc::new
    - lock
    - bool::as_pubsub
    - redis::Cmd::arg
    - "(\n        PendingRequest::recv"
    - get_payload
    - RedisResult::unwrap
    - redis::cmd
    - std::sync::mpsc::channel
    - std::sync::Mutex::new
    - "arg(\"bar\")\n            .arg(-1)\n            .query::<i32>"
    - push
    - Self::join
    - subscribe
    - Vec::new
    - get_message
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_subscribe_while_messages_are_sent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1883,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1884,1
    - Dst: bool::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1887,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1891,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1891,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1892,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1892,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1892,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1894
      start: 1882
    functionDepth: 12
    functionLinenumber: 1882
    functionLinenumberEnd: 1894
    functionName: basic::test_pubsub_unsubscribe_no_subs
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::set
    - TestContext::new
    - Self::connection
    - unwrap
    - Option::unwrap
    - bool::get
    - bool::as_pubsub
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_unsubscribe_no_subs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1898,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1899,1
    - Dst: bool::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1902,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1903,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1903,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1907,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1907,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1908,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1908,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1897
    functionDepth: 13
    functionLinenumber: 1897
    functionLinenumberEnd: 1910
    functionName: basic::test_pubsub_unsubscribe_one_sub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::set
    - TestContext::new
    - Self::connection
    - unwrap
    - subscribe
    - Option::unwrap
    - bool::get
    - bool::as_pubsub
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_unsubscribe_one_sub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1914,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1915,1
    - Dst: bool::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1918,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1919,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1919,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1920,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1920,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1924,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1924,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1925,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1925,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1913
    functionDepth: 13
    functionLinenumber: 1913
    functionLinenumberEnd: 1927
    functionName: basic::test_pubsub_unsubscribe_one_sub_one_psub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::set
    - TestContext::new
    - RedisResult::unwrap
    - psubscribe
    - Self::connection
    - unwrap
    - subscribe
    - Option::unwrap
    - bool::get
    - bool::as_pubsub
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_unsubscribe_one_sub_one_psub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1931,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1932,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1935,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1937,1
    - Dst: bool::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1939,1
    - Dst: ControlFlow::Break
      Src: /src/redis-rs/redis/tests/test_basic.rs:1951,1
    - Dst: ControlFlow::Break
      Src: /src/redis-rs/redis/tests/test_basic.rs:1953,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1939,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1963,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1963,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1965,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1965,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1965,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1965,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1965,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1973,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1973,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1976,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1976,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1977,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1977,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1930
    functionDepth: 13
    functionLinenumber: 1930
    functionLinenumberEnd: 1979
    functionName: basic::scoped_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - bool::get
    - ControlFlow::Break
    - redis::Cmd::arg
    - '&mut Self::arg'
    - Option::unwrap
    - bool::set
    - TestContext::new
    - bool::subscribe
    - Self::connection
    - unwrap
    - sleep
    - Duration::from_millis
    - exec
    - Self::join
    - spawn
    - expect
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn scoped_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1983,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1984,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1986,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1986,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1986,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1986,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1982
    functionDepth: 2
    functionLinenumber: 1982
    functionLinenumberEnd: 2006
    functionName: basic::test_tuple_args
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - Self::connection
    - exec
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_tuple_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2010,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2011,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    - Dst: '&mut Self::set'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 2009
    functionDepth: 12
    functionLinenumber: 2009
    functionLinenumberEnd: 2029
    functionName: basic::test_nice_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - get
    - set
    - redis::Pipeline::atomic
    - TestContext::new
    - ignore
    - Self::connection
    - unwrap
    - query
    - '&mut Self::set'
    linkageType: ''
    returnType: void
    signature: fn test_nice_api()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2033,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2046
      start: 2032
    functionDepth: 1
    functionLinenumber: 2032
    functionLinenumberEnd: 2046
    functionName: basic::test_auto_m_versions
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_auto_m_versions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2050,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2051,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2058,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2058,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2065,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2065,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2072,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2072,1
    - Dst: bool::hscan
      Src: /src/redis-rs/redis/tests/test_basic.rs:2097,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2097,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2098,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2100,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:2103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2109
      start: 2049
    functionDepth: 8
    functionLinenumber: 2049
    functionLinenumberEnd: 2109
    functionName: basic::test_nice_hash_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - map
    - redis::Commands::hgetall
    - Self::connection
    - unwrap
    - HashSet::new
    - bool::hscan
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_nice_hash_api()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2113,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2114,1
    - Dst: redis::Commands::lrange
      Src: /src/redis-rs/redis/tests/test_basic.rs:2138,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2144
      start: 2112
    functionDepth: 1
    functionLinenumber: 2112
    functionLinenumberEnd: 2144
    functionName: basic::test_nice_list_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - redis::Commands::lrange
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_nice_list_api()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2148,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2149,1
    - Dst: bool::zrangebyscore_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2155,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2155,1
    - Dst: bool::zrangebyscore_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2160,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2162
    functionName: basic::test_tuple_decoding_regression
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - TestContext::new
    - Self::connection
    - bool::zrangebyscore_withscores
    linkageType: ''
    returnType: void
    signature: fn test_tuple_decoding_regression()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2167,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2168,1
    - Dst: HashMap::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:2170,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2174,1
    - Dst: hscan::<_, (String, u32)>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2178,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2178,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2196
      start: 2165
    functionDepth: 1
    functionLinenumber: 2165
    functionLinenumberEnd: 2196
    functionName: basic::test_tuple_decoding_from_iter
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - HashMap::from
    - TestContext::new
    - Self::connection
    - unwrap
    - iter
    - hscan::<_, (String, u32)>
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_tuple_decoding_from_iter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2200,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2205
      start: 2199
    functionDepth: 1
    functionLinenumber: 2199
    functionLinenumberEnd: 2205
    functionName: basic::test_setbit_and_getbit_single_offset
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_setbit_and_getbit_single_offset()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::len'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2216,1
    - Dst: max
      Src: /src/redis-rs/redis/tests/test_basic.rs:2216,1
    - Dst: '&str::len'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2216,1
    - Dst: chars
      Src: /src/redis-rs/redis/tests/test_basic.rs:2222,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_basic.rs:2222,1
    - Dst: chars
      Src: /src/redis-rs/redis/tests/test_basic.rs:2224,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2222,1
    - Dst: op
      Src: /src/redis-rs/redis/tests/test_basic.rs:2226,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - str1
    - str2
    - op
    argTypes:
    - '&str'
    - '&str'
    - F
    constantsTouched: []
    func_position:
      end: 2230
      start: 2212
    functionDepth: 3
    functionLinenumber: 2212
    functionLinenumberEnd: 2230
    functionName: b::a::s::i::c::::::::t::e::s::t::_::b::i::t::_::o::p::e::r::a::t::i::o::n::s::perform_bitwise_operation
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - zip
    - map
    - max
    - op
    - '&str::len'
    - chars
    - collect
    linkageType: ''
    returnType: String
    signature: 'fn perform_bitwise_operation<F>(str1: &str, str2: &str, op: F) ->
      StringwhereF: Fn(u8, u8) -> u8,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2209,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2210,1
    - Dst: BTreeMap::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:2255,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2257,1
    - Dst: Self::keys
      Src: /src/redis-rs/redis/tests/test_basic.rs:2261,1
    - Dst: cloned
      Src: /src/redis-rs/redis/tests/test_basic.rs:2261,1
    - Dst: keys().cloned().collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2261,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2265,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2265,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2270,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2270,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2275,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2275,1
    - Dst: choose
      Src: /src/redis-rs/redis/tests/test_basic.rs:2279,1
    - Dst: rng
      Src: /src/redis-rs/redis/tests/test_basic.rs:2279,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2279,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2281,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2281,1
    - Dst: skip_if_context_does_not_support
      Src: /src/redis-rs/redis/tests/test_basic.rs:2285,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2290,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2290,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2297,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2297,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2304,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2304,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2311,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2311,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2208
    functionDepth: 2
    functionLinenumber: 2208
    functionLinenumberEnd: 2313
    functionName: basic::test_bit_operations
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - BTreeMap::from
    - cloned
    - TestContext::new
    - Self::keys
    - skip_if_context_does_not_support
    - Self::connection
    - keys().cloned().collect::<Vec<_>>
    - unwrap
    - Self::iter
    - choose
    - rng
    - Option::unwrap
    - redis::Commands::get
    linkageType: ''
    returnType: void
    signature: fn test_bit_operations()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2317,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2318,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2320,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2320,1
    - Dst: Self::stop_server
      Src: /src/redis-rs/redis/tests/test_basic.rs:2323,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2325,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2316
    functionDepth: 2
    functionLinenumber: 2316
    functionLinenumberEnd: 2330
    functionName: basic::test_redis_server_down
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - query::<String>
    - Self::stop_server
    - TestContext::new
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_redis_server_down()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2334,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2335,1
    - Dst: bool::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2337,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2337,1
    - Dst: bool::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2339,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2374
      start: 2333
    functionDepth: 1
    functionLinenumber: 2333
    functionLinenumberEnd: 2374
    functionName: basic::test_zinterstore_weights
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - unwrap
    - bool::zadd_multiple
    linkageType: ''
    returnType: void
    signature: fn test_zinterstore_weights()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2378,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2379,1
    - Dst: bool::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2381,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2381,1
    - Dst: bool::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2383,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2439
      start: 2377
    functionDepth: 1
    functionLinenumber: 2377
    functionLinenumberEnd: 2439
    functionName: basic::test_zunionstore_weights
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - unwrap
    - bool::zadd_multiple
    linkageType: ''
    returnType: void
    signature: fn test_zunionstore_weights()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2443,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2444,1
    - Dst: bool::zrembylex
      Src: /src/redis-rs/redis/tests/test_basic.rs:2463,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2463,1
    - Dst: bool::zrange
      Src: /src/redis-rs/redis/tests/test_basic.rs:2466,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2442
    functionDepth: 1
    functionLinenumber: 2442
    functionLinenumberEnd: 2468
    functionName: basic::test_zrembylex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::zrembylex
    - bool::zrange
    - TestContext::new
    - Self::connection
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_zrembylex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2475,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2476,1
    - Dst: bool::zadd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2479,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2479,1
    - Dst: bool::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2481,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2481,1
    - Dst: bool::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2484,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2484,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2484,1
    - Dst: bool::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2488,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2488,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2488,1
    - Dst: bool::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2500,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2500,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2500,1
    - Dst: bool::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2503,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2503,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2503,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:2506,1
    - Dst: bool::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2507,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2507,1
    - Dst: bool::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2510,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2510,1
    - Dst: bool::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2514,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2514,1
    - Dst: bool::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2517,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2519
      start: 2474
    functionDepth: 1
    functionLinenumber: 2474
    functionLinenumberEnd: 2519
    functionName: basic::test_zrandmember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::zrandmember_withscores
    - TestContext::new
    - bool::zadd
    - supports_resp3
    - Self::connection
    - unwrap
    - bool::zrandmember
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_zrandmember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2523,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2524,1
    - Dst: bool::sismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2529,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2529,1
    - Dst: bool::sismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2532,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2522
    functionDepth: 1
    functionLinenumber: 2522
    functionLinenumberEnd: 2534
    functionName: basic::test_sismember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::sismember
    - TestContext::new
    - Self::connection
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_sismember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2541,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2542,1
    - Dst: bool::smismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2546,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2548
      start: 2540
    functionDepth: 1
    functionLinenumber: 2540
    functionLinenumberEnd: 2548
    functionName: basic::test_smismember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - bool::smismember
    - Self::connection
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_smismember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2552,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2553,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2556,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:2556,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2556,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:2556,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:2556,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2556,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2566,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2566,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2572,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2577
      start: 2551
    functionDepth: 12
    functionLinenumber: 2551
    functionLinenumberEnd: 2577
    functionName: basic::test_object_freq_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - bool::set
    - TestContext::new
    - arg
    - Self::connection
    - exec
    - unwrap
    - Option::unwrap
    - bool::get
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_object_freq_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2581,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2582,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2584,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2584,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2585,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2580
    functionDepth: 3
    functionLinenumber: 2580
    functionLinenumberEnd: 2599
    functionName: basic::test_object_idletime_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::set
    - TestContext::new
    - Self::connection
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_object_idletime_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2603,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2604,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2606,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2606,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2607,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2607,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2607,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2607,1
    - Dst: TlsFilePaths::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2611,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2607,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2615,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2615,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2616,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2616,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2616,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2616,1
    - Dst: TlsFilePaths::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2620,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2616,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2624,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2624,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2627,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2629
      start: 2602
    functionDepth: 3
    functionLinenumber: 2602
    functionLinenumberEnd: 2629
    functionName: basic::test_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::set
    - TestContext::new
    - map
    - TlsFilePaths::unwrap
    - bool::mget
    - into_iter
    - Self::connection
    - unwrap
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_mget()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2633,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2634,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2636,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2636,1
    - Dst: redis::Commands::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2639,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2641
      start: 2632
    functionDepth: 3
    functionLinenumber: 2632
    functionLinenumberEnd: 2641
    functionName: basic::test_variable_length_get
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::set
    - TestContext::new
    - Self::connection
    - unwrap
    - redis::Commands::mget
    linkageType: ''
    returnType: void
    signature: fn test_variable_length_get()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2645,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2646,1
    - Dst: bool::rename
      Src: /src/redis-rs/redis/tests/test_basic.rs:2650,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2652
      start: 2644
    functionDepth: 1
    functionLinenumber: 2644
    functionLinenumberEnd: 2652
    functionName: basic::test_multi_generics
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - TestContext::new
    - Self::connection
    - bool::rename
    linkageType: ''
    returnType: void
    signature: fn test_multi_generics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2656,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2657,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2659,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2659,1
    - Dst: bool::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2660,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2660,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2663,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2663,1
    - Dst: bool::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2664,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2666
      start: 2655
    functionDepth: 9
    functionLinenumber: 2655
    functionLinenumberEnd: 2666
    functionName: basic::test_set_options_with_get
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::get
    - SetOptions::default
    - Self::connection
    - bool::set_options
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_set_options_with_get()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2670,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2673,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2673,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2673,1
    - Dst: Option::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2673,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2676,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2678,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2680,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2680,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2680,1
    - Dst: Option::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2680,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2683,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2685,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2687,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2687,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2687,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2691,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2693,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2693,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2693,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:2695,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2697,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2669
    functionDepth: 9
    functionLinenumber: 2669
    functionLinenumberEnd: 2702
    functionName: basic::test_set_options_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - assert_args
    - Option::with_expiration
    - SetExpiry::EX
    - SetExpiry::EXAT
    - Self::conditional_set
    - Self::get
    - SetExpiry::PX
    - SetOptions::default
    - Self::with_expiration
    linkageType: ''
    returnType: void
    signature: fn test_set_options_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2706,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2712,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2712,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2712,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2713,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2714,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2714,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2714,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2715,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2716,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2716,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2716,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2717,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2718,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2718,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2718,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2719,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2722,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2722,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2722,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2724,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2722,1
    - Dst: Option::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2722,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2726,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2727,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2728,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2728,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2728,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2730,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2728,1
    - Dst: Option::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2728,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2732,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2733,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2734,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2734,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2734,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2736,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2734,1
    - Dst: Option::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2734,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2738,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2739,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2740,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2740,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2740,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2742,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2740,1
    - Dst: Option::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2740,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2744,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2705
    functionDepth: 9
    functionLinenumber: 2705
    functionLinenumberEnd: 2746
    functionName: basic::test_set_options_value_comparison
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - assert_args
    - get
    - Option::with_expiration
    - ValueComparison::ifne
    - ValueComparison::ifdeq
    - SetExpiry::EX
    - Self::conditional_set
    - SetExpiry::PX
    - SetOptions::default
    - ValueComparison::ifdne
    - Self::value_comparison
    - ValueComparison::ifeq
    linkageType: ''
    returnType: void
    signature: fn test_set_options_value_comparison()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:2751,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2752,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2764,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2768,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2768,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2769,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2768,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2764,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2779,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2783,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2783,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2784,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2783,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2779,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2792,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2796,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2796,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2797,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2796,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2805
      start: 2750
    functionDepth: 9
    functionLinenumber: 2750
    functionLinenumberEnd: 2805
    functionName: basic::test_set_value_comparison_value_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - get
    - run_test_if_version_supported
    - set_options
    - SetOptions::default
    - unwrap
    - connection
    - Self::value_comparison
    - ValueComparison::ifeq
    linkageType: ''
    returnType: void
    signature: fn test_set_value_comparison_value_equals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:2811,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2812,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2824,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2828,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2828,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2829,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2828,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2824,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2840,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2844,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2844,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2845,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2844,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2840,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2858,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2862,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2862,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2863,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2862,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2809
    functionDepth: 9
    functionLinenumber: 2809
    functionLinenumberEnd: 2871
    functionName: basic::test_set_value_comparison_value_not_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - get
    - ValueComparison::ifne
    - run_test_if_version_supported
    - set_options
    - SetOptions::default
    - unwrap
    - connection
    - Self::value_comparison
    linkageType: ''
    returnType: void
    signature: fn test_set_value_comparison_value_not_equals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:2877,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2878,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2884,1
    - Dst: String::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2889,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2890,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/tests/test_basic.rs:2894,1
    - Dst: fill_bytes
      Src: /src/redis-rs/redis/tests/test_basic.rs:2896,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2875
    functionDepth: 8
    functionLinenumber: 2875
    functionLinenumberEnd: 2916
    functionName: basic::test_digest_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - String::new
    - run_test_if_version_supported
    - fill_bytes
    - calculate_value_digest
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_digest_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:2922,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2923,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2935,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2938,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2942,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2942,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2943,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2942,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2938,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2953,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2957,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2957,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2958,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2957,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2953,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2966,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2967,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2971,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2971,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2972,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2971,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2980
      start: 2920
    functionDepth: 9
    functionLinenumber: 2920
    functionLinenumberEnd: 2980
    functionName: basic::test_set_value_comparison_digest_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - get
    - ValueComparison::ifdeq
    - run_test_if_version_supported
    - set_options
    - SetOptions::default
    - calculate_value_digest
    - connection
    - unwrap
    - Self::value_comparison
    linkageType: ''
    returnType: void
    signature: fn test_set_value_comparison_digest_equals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:2986,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2987,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2999,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3000,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3004,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:3004,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3005,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3004,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3000,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3015,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3019,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:3019,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3020,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3019,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3015,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3035,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3037,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3041,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:3041,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3042,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3041,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 2984
    functionDepth: 9
    functionLinenumber: 2984
    functionLinenumberEnd: 3050
    functionName: basic::test_set_value_comparison_digest_not_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - get
    - run_test_if_version_supported
    - set_options
    - SetOptions::default
    - calculate_value_digest
    - connection
    - unwrap
    - ValueComparison::ifdne
    - Self::value_comparison
    linkageType: ''
    returnType: void
    signature: fn test_set_value_comparison_digest_not_equals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3055,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3056,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3062,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3063,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:3066,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3067,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:3068,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3069,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3139
      start: 3053
    functionDepth: 1
    functionLinenumber: 3053
    functionLinenumberEnd: 3139
    functionName: basic::test_del_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - ValueComparison::ifne
    - ValueComparison::ifdeq
    - run_test_if_version_supported
    - calculate_value_digest
    - connection
    - ValueComparison::ifdne
    - ValueComparison::ifeq
    linkageType: ''
    returnType: void
    signature: fn test_del_ex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3147,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3147,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3148,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3149,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3149,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3150,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3153,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3153,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3153,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3154,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3155,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3155,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3155,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3156,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3157,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3157,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3157,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3158,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3159,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3159,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3159,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3160,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3161,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3161,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3162,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3165,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3165,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3165,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3167,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3168,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3170,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3170,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3170,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3172,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3173,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3175,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3175,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3175,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3179
      start: 3143
    functionDepth: 9
    functionLinenumber: 3143
    functionLinenumberEnd: 3179
    functionName: basic::test_mset_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - assert_args
    - SetExpiry::EX
    - SetExpiry::EXAT
    - SetExpiry::PXAT
    - Self::conditional_set
    - SetExpiry::PX
    - MSetOptions::default
    - Self::with_expiration
    linkageType: ''
    returnType: void
    signature: fn test_mset_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3184,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3185,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3198,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3183
    functionDepth: 9
    functionLinenumber: 3183
    functionLinenumberEnd: 3225
    functionName: basic::test_mset_ex_nx
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - MSetOptions::default
    - run_test_if_version_supported
    - Self::conditional_set
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_mset_ex_nx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3230,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3231,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3245,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3245,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3254,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3279
      start: 3229
    functionDepth: 9
    functionLinenumber: 3229
    functionLinenumberEnd: 3279
    functionName: basic::test_mset_ex_xx
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - MSetOptions::default
    - run_test_if_version_supported
    - Self::conditional_set
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_mset_ex_xx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3284,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3285,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:3287,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:3287,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3287,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3307,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3308,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3311,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:3311,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3315,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3315,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3317,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3323,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3324,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:3324,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3327,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3327,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3344,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3350
      start: 3283
    functionDepth: 9
    functionLinenumber: 3283
    functionLinenumberEnd: 3350
    functionName: basic::test_mset_ex_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - duration_since
    - SetExpiry::EXAT
    - run_test_if_version_supported
    - SetExpiry::PXAT
    - Self::conditional_set
    - SystemTime::now
    - SetExpiry::PX
    - as_secs
    - as_millis
    - MSetOptions::default
    - unwrap
    - sleep
    - connection
    - iter
    - Self::with_expiration
    - Duration::from_millis
    - enumerate
    - SetExpiry::EX
    linkageType: ''
    returnType: void
    signature: fn test_mset_ex_expiration_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CopyOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3354,1
    - Dst: CopyOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3357,1
    - Dst: Self::db
      Src: /src/redis-rs/redis/tests/test_basic.rs:3357,1
    - Dst: i64::replace
      Src: /src/redis-rs/redis/tests/test_basic.rs:3357,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3353
    functionDepth: 1
    functionLinenumber: 3353
    functionLinenumberEnd: 3360
    functionName: basic::test_copy_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::db
    - assert_args
    - CopyOptions::default
    - i64::replace
    linkageType: ''
    returnType: void
    signature: fn test_copy_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3364,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3365,1
    - Dst: CopyOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3367,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3368,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3368,1
    - Dst: bool::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3369,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3369,1
    - Dst: bool::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3374,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3374,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3379,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3379,1
    - Dst: bool::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3380,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3380,1
    - Dst: bool::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3385,1
    - Dst: Self::replace
      Src: /src/redis-rs/redis/tests/test_basic.rs:3385,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3388
      start: 3363
    functionDepth: 3
    functionLinenumber: 3363
    functionLinenumberEnd: 3388
    functionName: basic::test_copy
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::copy
    - CopyOptions::default
    - Self::replace
    - bool::set
    - TestContext::new
    - Self::connection
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_copy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3392,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3394,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:3396,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:3396,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3396,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:3396,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3400,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3403,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3403,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3403,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3400,1
    - Dst: expire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:3406,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3406,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3412,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3415,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3415,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3415,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3412,1
    - Dst: pexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:3418,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3423
      start: 3391
    functionDepth: 10
    functionLinenumber: 3391
    functionLinenumberEnd: 3423
    functionName: basic::test_expire_time
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - duration_since
    - SetExpiry::EXAT
    - expire_time
    - run_test_if_version_supported
    - SetExpiry::PXAT
    - SystemTime::now
    - as_secs
    - set_options
    - unwrap
    - SetOptions::default
    - connection
    - pexpire_time
    - Self::with_expiration
    linkageType: ''
    returnType: void
    signature: fn test_expire_time()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3427,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3428,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3430,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3430,1
    - Dst: bool::set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:3432,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3432,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3432,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3432,1
    - Dst: bool::blpop
      Src: /src/redis-rs/redis/tests/test_basic.rs:3437,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3442,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3442,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3446,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:3446,1
    - Dst: RedisResult::is_ok
      Src: /src/redis-rs/redis/tests/test_basic.rs:3446,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3449,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3449,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3452,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3452,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3452,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3454
      start: 3426
    functionDepth: 12
    functionLinenumber: 3426
    functionLinenumberEnd: 3454
    functionName: basic::test_timeout_leaves_usable_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::blpop
    - bool::set
    - TestContext::new
    - Cmd::exec
    - RedisResult::is_ok
    - Self::connection
    - unwrap
    - Duration::from_millis
    - bool::set_read_timeout
    - sleep
    - cmd
    - Some
    - Option::unwrap
    - bool::get
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_timeout_leaves_usable_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::net::TcpListener::incoming
      Src: /src/redis-rs/redis/tests/test_basic.rs:3461,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_basic.rs:3461,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3461,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3461,1
    - Dst: std::io::BufReader::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3463,1
    - Dst: try_clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3463,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3463,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:3467,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3468,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3468,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3468,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3468,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3473,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3473,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3473,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3473,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_basic.rs:3478,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/tests/test_basic.rs:3478,1
    - Dst: Self::read_exact
      Src: /src/redis-rs/redis/tests/test_basic.rs:3480,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3480,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3481,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3481,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3485,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3485,1
    - Dst: '&mut Self::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3485,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/tests/test_basic.rs:3485,1
    - Dst: Self::read_exact
      Src: /src/redis-rs/redis/tests/test_basic.rs:3487,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3487,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3489,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3489,1
    - Dst: '&mut Self::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3489,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3491,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3491,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3492,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3492,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3493,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3493,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3494,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3494,1
    - Dst: '&mut Self::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3494,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3495,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3495,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 98
    argCount: 1
    argNames:
    - listener
    argTypes:
    - std::net::TcpListener
    constantsTouched: []
    func_position:
      end: 3501
      start: 3460
    functionDepth: 2
    functionLinenumber: 3460
    functionLinenumberEnd: 3501
    functionName: b::a::s::i::c::::::::t::e::s::t::_::t::i::m::e::o::u::t::_::i::n::_::m::i::d::d::l::e::_::o::f::_::m::e::s::s::a::g::e::_::l::e::a::v::e::s::_::c::o::n::n::e::c::t::i::o::n::_::u::s::a::b::l::e::fake_redis
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - std::net::TcpListener::incoming
    - redis::pipe
    - '&mut Self::arg'
    - Vec::len
    - arg
    - '&mut Self::get_packed_command'
    - try_clone
    - Cmd::arg
    - get_packed_pipeline
    - next
    - unwrap
    - std::io::BufReader::new
    - Self::read_exact
    - sleep
    - cmd
    - Duration::from_millis
    - write_all
    linkageType: ''
    returnType: void
    signature: 'fn fake_redis(listener: std::net::TcpListener)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_listener_on_free_port
      Src: /src/redis-rs/redis/tests/test_basic.rs:3503,1
    - Dst: TcpListener::local_addr
      Src: /src/redis-rs/redis/tests/test_basic.rs:3504,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3504,1
    - Dst: port
      Src: /src/redis-rs/redis/tests/test_basic.rs:3504,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:3505,1
    - Dst: fake_redis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3505,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:3507,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3507,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3508,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3508,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:3509,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3509,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3509,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3509,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3512,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3516,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3516,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3518,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3518,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3518,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3457
    functionDepth: 9
    functionLinenumber: 3457
    functionLinenumberEnd: 3520
    functionName: basic::test_timeout_in_middle_of_message_leaves_connection_usable
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - get
    - fake_redis
    - redis::Client::open
    - port
    - thread::spawn
    - TcpListener::local_addr
    - unwrap
    - Duration::from_millis
    - sleep
    - get_listener_on_free_port
    - set_read_timeout
    - Some
    - get_connection
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_timeout_in_middle_of_message_leaves_connection_usable()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3524,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3525,1
    - Dst: bool::bzpopmin
      Src: /src/redis-rs/redis/tests/test_basic.rs:3536,1
    - Dst: bool::bzpopmax
      Src: /src/redis-rs/redis/tests/test_basic.rs:3537,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_basic.rs:3548,1
    - Dst: bool::bzmpop_min
      Src: /src/redis-rs/redis/tests/test_basic.rs:3549,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:3549,1
    - Dst: bool::bzmpop_max
      Src: /src/redis-rs/redis/tests/test_basic.rs:3550,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:3550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3523
    functionDepth: 1
    functionLinenumber: 3523
    functionLinenumberEnd: 3555
    functionName: basic::test_blocking_sorted_set_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::bzpopmin
    - TestContext::new
    - as_slice
    - Self::connection
    - bool::bzmpop_min
    - bool::bzmpop_max
    - Self::supports
    - bool::bzpopmax
    linkageType: ''
    returnType: void
    signature: fn test_blocking_sorted_set_api()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3559,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3560,1
    - Dst: SortedSetAddOptions::add_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3564,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3573,1
    - Dst: include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3580,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3590,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3590,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3599,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3599,1
    - Dst: SortedSetAddOptions::add_or_update
      Src: /src/redis-rs/redis/tests/test_basic.rs:3608,1
    - Dst: include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3616,1
    - Dst: SortedSetAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3622,1
    - Dst: Self::increment_score
      Src: /src/redis-rs/redis/tests/test_basic.rs:3622,1
    - Dst: Self::include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3630
      start: 3558
    functionDepth: 9
    functionLinenumber: 3558
    functionLinenumberEnd: 3630
    functionName: basic::test_sorted_set_add_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - SortedSetAddOptions::update_only
    - Self::include_changed_count
    - SortedSetAddOptions::add_or_update
    - TestContext::new
    - SortedSetAddOptions::default
    - Self::increment_score
    - Self::connection
    - include_changed_count
    - SortedSetAddOptions::add_only
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_sorted_set_add_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3636,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3637,1
    - Dst: vemb
      Src: /src/redis-rs/redis/tests/test_basic.rs:3661,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3661,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3663,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:3663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3715
      start: 3634
    functionDepth: 2
    functionLinenumber: 3634
    functionLinenumberEnd: 3715
    functionName: basic::test_vector_sets_basic_operations
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - vemb
    - unwrap
    - connection
    - iter
    - enumerate
    linkageType: ''
    returnType: void
    signature: fn test_vector_sets_basic_operations()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3721,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3722,1
    - Dst: VAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3758,1
    - Dst: Self::set_attributes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3758,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3758,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3771,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3772,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3771,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3786,1
    - Dst: VectorSimilaritySearchInput::Fp32
      Src: /src/redis-rs/redis/tests/test_basic.rs:3787,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3786,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3790,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3793,1
    - Dst: EmbeddingInput::Float32
      Src: /src/redis-rs/redis/tests/test_basic.rs:3793,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3790,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3797,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3800,1
    - Dst: EmbeddingInput::Float64
      Src: /src/redis-rs/redis/tests/test_basic.rs:3800,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3797,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3804,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3807,1
    - Dst: EmbeddingInput::String
      Src: /src/redis-rs/redis/tests/test_basic.rs:3807,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3804,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3817,1
    - Dst: Self::set_with_scores
      Src: /src/redis-rs/redis/tests/test_basic.rs:3817,1
    - Dst: Self::set_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3817,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3821,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3824,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3821,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_basic.rs:3840,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3841,1
    - Dst: find_map
      Src: /src/redis-rs/redis/tests/test_basic.rs:3841,1
    - Dst: then_some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3843,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3852,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3863,1
    - Dst: Self::set_filter_expression
      Src: /src/redis-rs/redis/tests/test_basic.rs:3863,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3864,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3867,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3864,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3882,1
    - Dst: Self::set_filter_expression
      Src: /src/redis-rs/redis/tests/test_basic.rs:3882,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3883,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3886,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3883,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 118
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3897
      start: 3719
    functionDepth: 9
    functionLinenumber: 3719
    functionLinenumberEnd: 3897
    functionName: basic::test_vector_sets_similarity_search
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis_value
    - find_map
    - Self::set_filter_expression
    - EmbeddingInput::Float64
    - unwrap
    - connection
    - then_some
    - Self::unwrap
    - vsim
    - clone
    - VAddOptions::default
    - Self::set_count
    - VectorSimilaritySearchInput::Fp32
    - iter
    - Self::set_attributes
    - Self::set_with_scores
    - EmbeddingInput::String
    - VectorSimilaritySearchInput::Element
    - VSimOptions::default
    - run_test_if_version_supported
    - EmbeddingInput::Float32
    - vsim_options
    - VectorSimilaritySearchInput::Values
    linkageType: ''
    returnType: void
    signature: fn test_vector_sets_similarity_search()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:3903,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3904,1
    - Dst: VAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3937,1
    - Dst: Self::set_reduction_dimension
      Src: /src/redis-rs/redis/tests/test_basic.rs:3937,1
    - Dst: Self::set_check_and_set_style
      Src: /src/redis-rs/redis/tests/test_basic.rs:3937,1
    - Dst: Self::set_quantization
      Src: /src/redis-rs/redis/tests/test_basic.rs:3937,1
    - Dst: Self::set_build_exploration_factor
      Src: /src/redis-rs/redis/tests/test_basic.rs:3937,1
    - Dst: Self::set_max_number_of_links
      Src: /src/redis-rs/redis/tests/test_basic.rs:3937,1
    - Dst: Self::set_attributes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3946,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3946,1
    - Dst: vemb
      Src: /src/redis-rs/redis/tests/test_basic.rs:3954,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3954,1
    - Dst: vemb_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3958,1
    - Dst: VEmbOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3962,1
    - Dst: Self::set_raw_representation
      Src: /src/redis-rs/redis/tests/test_basic.rs:3962,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3958,1
    - Dst: vinfo
      Src: /src/redis-rs/redis/tests/test_basic.rs:3978,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3978,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3978,1
    - Dst: vlinks
      Src: /src/redis-rs/redis/tests/test_basic.rs:4005,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4005,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4013,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:4013,1
    - Dst: vlinks_with_scores
      Src: /src/redis-rs/redis/tests/test_basic.rs:4024,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4024,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4039,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_basic.rs:4039,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4041,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:4039,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4089,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:4089,1
    - Dst: TlsFilePaths::to_string
      Src: /src/redis-rs/redis/tests/test_basic.rs:4091,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:4089,1
    - Dst: vrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:4094,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4094,1
    - Dst: vrandmember_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:4098,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:4099,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4098,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4103,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_basic.rs:4103,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_basic.rs:4103,1
    - Dst: vrandmember_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:4107,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:4108,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4107,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4111,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_basic.rs:4111,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_basic.rs:4111,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 164
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4129
      start: 3901
    functionDepth: 9
    functionLinenumber: 3901
    functionLinenumberEnd: 4129
    functionName: basic::test_vector_sets_auxiliary_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - zip
    - len
    - vinfo
    - unwrap
    - TlsFilePaths::to_string
    - connection
    - collect
    - Self::set_build_exploration_factor
    - map
    - Self::set_max_number_of_links
    - VAddOptions::default
    - clone
    - iter
    - all
    - Self::set_attributes
    - vlinks_with_scores
    - Self::set_check_and_set_style
    - Self::set_raw_representation
    - vrandmember
    - vemb_options
    - vrandmember_multiple
    - run_test_if_version_supported
    - Self::set_reduction_dimension
    - vlinks
    - vemb
    - Self::set_quantization
    - VEmbOptions::default
    - contains
    - enumerate
    linkageType: ''
    returnType: void
    signature: fn test_vector_sets_auxiliary_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:4135,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4136,1
    - Dst: vdim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4145,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4147,1
    - Dst: vadd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4179,1
    - Dst: VectorAddInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:4181,1
    - Dst: EmbeddingInput::Float32
      Src: /src/redis-rs/redis/tests/test_basic.rs:4181,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4188,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4231,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:4234,1
    - Dst: EmbeddingInput::Float64
      Src: /src/redis-rs/redis/tests/test_basic.rs:4234,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4231,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4239,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:4242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4239,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4248,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:4250,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4258
      start: 4133
    functionDepth: 1
    functionLinenumber: 4133
    functionLinenumberEnd: 4258
    functionName: basic::test_vector_sets_edge_cases
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - vsim
    - VectorAddInput::Values
    - run_test_if_version_supported
    - vdim
    - EmbeddingInput::Float32
    - EmbeddingInput::Float64
    - unwrap
    - connection
    - VectorSimilaritySearchInput::Element
    - unwrap_err
    - vadd
    - VectorSimilaritySearchInput::Values
    linkageType: ''
    returnType: void
    signature: fn test_vector_sets_edge_cases()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4262,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:4263,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_basic.rs:4263,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4264,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4264,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4266,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4266,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4268,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4268,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4269,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4270,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: build_simple_pipeline_for_invalidation
      Src: /src/redis-rs/redis/tests/test_basic.rs:4276,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4278,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4279,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4279,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4280,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4280,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4286,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4287,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4288,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4289,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4290,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4290,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4291,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4291,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4298,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4300,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4301,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4305
      start: 4261
    functionDepth: 9
    functionLinenumber: 4261
    functionLinenumberEnd: 4305
    functionName: basic::test_push_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - exec
    - unwrap
    - set_push_sender
    - RedisConnectionInfo::default
    - connection_info
    - get_connection
    - '&mut Self::arg'
    - TestContext::new
    - cmd
    - Self::set_protocol
    - set_redis_settings
    - drop
    - redis::Client::open
    - Cmd::arg
    - Pipeline::query
    - try_recv
    - RedisResult::unwrap
    - get_int
    - std::sync::mpsc::channel
    - build_simple_pipeline_for_invalidation
    linkageType: ''
    returnType: void
    signature: fn test_push_manager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4309,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:4310,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_basic.rs:4310,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4311,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4311,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4312,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4312,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4314,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4314,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4315,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4316,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:4318,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4318,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4323,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:4324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4327
      start: 4308
    functionDepth: 9
    functionLinenumber: 4308
    functionLinenumberEnd: 4327
    functionName: basic::test_push_manager_disconnection
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - std::sync::mpsc::channel
    - set
    - redis::Client::open
    - TestContext::new
    - drop
    - RedisConnectionInfo::default
    - unwrap
    - connection_info
    - Self::set_protocol
    - get_connection
    - set_push_sender
    - set_redis_settings
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_push_manager_disconnection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4332,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4333,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4336,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4338,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4339,1
    - Dst: bool::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4340,1
    - Dst: bool::subscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4342,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4342,1
    - Dst: bool::psubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4343,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4343,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4346,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4346,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4346,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4346,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4346,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4355,1
    - Dst: redis::Cmd::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4355,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4355,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4360,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4360,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:4361,1
    - Dst: bool::unsubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4396,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4396,1
    - Dst: bool::punsubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4397,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4397,1
    - Dst: bool::ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:4398,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4398,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4404,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4404,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4412,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4412,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4422,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4423
      start: 4330
    functionDepth: 13
    functionLinenumber: 4330
    functionLinenumberEnd: 4423
    functionName: basic::test_raw_pubsub_with_push_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - bool::subscribe_resp3
    - bool::unsubscribe_resp3
    - Self::connection
    - exec
    - unwrap
    - '&mut Self::arg'
    - TestContext::new
    - bool::psubscribe_resp3
    - bool::set_push_sender
    - redis::Cmd::arg
    - try_recv
    - RedisResult::unwrap
    - redis::cmd
    - std::sync::mpsc::channel
    - bool::ping
    - push
    - redis::Cmd::exec
    - supports_resp3
    - unwrap_err
    - bool::punsubscribe_resp3
    linkageType: ''
    returnType: void
    signature: fn test_raw_pubsub_with_push_manager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4427,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4428,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_basic.rs:4428,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4429,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4429,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4431,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4431,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4432,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4432,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4433,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4433,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4433,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4438
      start: 4426
    functionDepth: 10
    functionLinenumber: 4426
    functionLinenumberEnd: 4438
    functionName: basic::test_select_db
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - redis::Client::open
    - TestContext::new
    - RedisResult::unwrap
    - RedisConnectionInfo::set_db
    - '&mut Self::query'
    - unwrap
    - connection_info
    - get_connection
    - set_redis_settings
    - redis_settings
    linkageType: ''
    returnType: void
    signature: fn test_select_db()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4442,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4443,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4444,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4444,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4444,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4444,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4444,1
    - Dst: bool::client_getname
      Src: /src/redis-rs/redis/tests/test_basic.rs:4449,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4449,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4451
      start: 4441
    functionDepth: 2
    functionLinenumber: 4441
    functionLinenumberEnd: 4451
    functionName: basic::test_client_getname
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - TestContext::new
    - bool::client_getname
    - Self::connection
    - exec
    - unwrap
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_client_getname()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4455,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4456,1
    - Dst: bool::client_id
      Src: /src/redis-rs/redis/tests/test_basic.rs:4457,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4458
      start: 4454
    functionDepth: 1
    functionLinenumber: 4454
    functionLinenumberEnd: 4458
    functionName: basic::test_client_id
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - bool::client_id
    - Self::connection
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_client_id()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4462,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4463,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4465,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4465,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4465,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4467
      start: 4461
    functionDepth: 3
    functionLinenumber: 4461
    functionLinenumberEnd: 4467
    functionName: basic::test_client_setname
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - TestContext::new
    - '&mut Self::query'
    - Self::connection
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_client_setname()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4471,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4472,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4473,1
    - Dst: query::<Role>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4473,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4475
      start: 4470
    functionDepth: 2
    functionLinenumber: 4470
    functionLinenumberEnd: 4475
    functionName: basic::test_role_primary
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - query::<Role>
    - TestContext::new
    - Self::connection
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_role_primary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4479,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4480,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:4482,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4483,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4483,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4483,1
    - Dst: "arg(\"SLEEP\")\n                .arg(\"0.1\")\n                .query::<()>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:4483,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4483,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:4491,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:4491,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4493,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_basic.rs:4493,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4494,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4494,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4496,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4496,1
    - Dst: get_connection_with_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:4497,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:4497,1
    - Dst: join
      Src: /src/redis-rs/redis/tests/test_basic.rs:4501,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4478
    functionDepth: 10
    functionLinenumber: 4478
    functionLinenumberEnd: 4502
    functionName: basic::test_connection_timeout_on_busy_server
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - join
    - "arg(\"SLEEP\")\n                .arg(\"0.1\")\n                .query::<()>"
    - TestContext::new
    - thread::spawn
    - Cmd::arg
    - Client::open
    - RedisConnectionInfo::set_db
    - RedisResult::unwrap
    - get_connection_with_timeout
    - Self::connection
    - unwrap
    - Duration::from_millis
    - connection_info
    - cmd
    - thread::sleep
    - set_redis_settings
    - redis_settings
    linkageType: ''
    returnType: void
    signature: fn test_connection_timeout_on_busy_server()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4506,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4507,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4509,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4509,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4509,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4515,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4515,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4520
      start: 4505
    functionDepth: 4
    functionLinenumber: 4505
    functionLinenumberEnd: 4520
    functionName: basic::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - redis::Cmd::new
    - TestContext::new
    - redis::Pipeline::new
    - Self::connection
    - unwrap_err
    linkageType: ''
    returnType: void
    signature: fn fail_on_empty_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:4524,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4527,1
    - Dst: RedisConnectionInfo::set_lib_name
      Src: /src/redis-rs/redis/tests/test_basic.rs:4527,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4528,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4528,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4531,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4531,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4532,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:4532,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4537,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4537,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4537,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4537,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4538,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_basic.rs:4539,1
    - Dst: splitn
      Src: /src/redis-rs/redis/tests/test_basic.rs:4540,1
    - Dst: splitn(2, '=').collect::<Vec<&str>>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4540,1
    - Dst: HashMap::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:4541,1
    - Dst: trim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4541,1
    - Dst: trim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4553
      start: 4523
    functionDepth: 10
    functionLinenumber: 4523
    functionLinenumberEnd: 4553
    functionName: basic::test_connection_info_lib_name
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - splitn(2, '=').collect::<Vec<&str>>
    - unwrap
    - connection_info
    - get_connection
    - HashMap::new
    - HashMap::insert
    - splitn
    - Client::open
    - '&mut Self::query'
    - set_redis_settings
    - redis_settings
    - RedisConnectionInfo::set_lib_name
    - redis::Cmd::arg
    - RedisResult::expect
    - trim
    - RedisResult::unwrap
    - redis::cmd
    - run_test_if_version_supported
    - split
    linkageType: ''
    returnType: void
    signature: fn test_connection_info_lib_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:44,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:44,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:44,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:44,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:44,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:50,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:50,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:50,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:50,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl redis::aio::ConnectionLike
    constantsTouched: []
    func_position:
      end: 57
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 57
    functionName: cluster_async::smoke_test_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - '&mut Self::clone'
    - Self::query_async
    - Cmd::arg
    - cmd
    - exec_async
    - expect
    linkageType: ''
    returnType: void
    signature: 'async fn smoke_test_connection(mut connection: impl redis::aio::ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:61,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:63,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:64,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: cluster_async::test_async_cluster_basic_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - async_connection
    - TestClusterContext::new
    - smoke_test_connection
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_basic_cmd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:69,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:71,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:73,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:75,1
    - Dst: database_id
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:77,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:80,1
    - Dst: assert_all_nodes_on_db
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:82,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:85,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:86,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:87,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:85,1
    - Dst: assert_all_nodes_on_db
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 68
    functionDepth: 9
    functionLinenumber: 68
    functionLinenumberEnd: 92
    functionName: cluster_async::test_async_cluster_numbered_database
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - assert_all_nodes_on_db
    - redis::cmd
    - async_connection
    - TestClusterContext::new_with_config_and_builder
    - database_id
    - run_test_if_version_supported
    - RoutingInfo::MultiNode
    - Default::default
    - unwrap
    - Some
    - route_command
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_numbered_database()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut ClusterConnection::route_command'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:95,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:97,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:97,1
    - Dst: '&mut Self::take'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:97,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:98,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:95,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:102,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:102,1
    - Dst: redis::ConnectionInfo::split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:108,1
    - Dst: find_map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:108,1
    - Dst: Option::strip_prefix
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:110,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - con
    - expected_db
    argTypes:
    - '&mut ClusterConnection'
    - u32
    constantsTouched: []
    func_position:
      end: 118
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 118
    functionName: cluster_async::assert_all_nodes_on_db
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::ConnectionInfo::split
    - Result::unwrap
    - Option::strip_prefix
    - '&mut Self::take'
    - RoutingInfo::MultiNode
    - find_map
    - unwrap_or_else
    - '&mut ClusterConnection::route_command'
    - Cmd::arg
    - from_redis_value
    - unwrap
    - cmd
    linkageType: ''
    returnType: void
    signature: 'async fn assert_all_nodes_on_db(con: &mut ClusterConnection, expected_db:
      u32)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:122,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:124,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:125,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:125,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:125,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:125,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:125,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:125,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:134,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:134,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:134,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:134,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:134,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:134,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:134,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:143,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:143,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 148
    functionName: cluster_async::test_no_response_skips_response_even_on_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - async_connection
    - set_no_response
    - redis::Cmd::arg
    - '&mut Self::arg'
    - '&mut Self::exec_async'
    - arg
    - unwrap
    - '&mut Self::query_async'
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_no_response_skips_response_even_on_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:153,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:153,1
    - Dst: host_and_port
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:155,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:155,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:158,1
    - Dst: String::into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:159,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:155,1
    - Dst: host_and_port
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:164,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:164,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:167,1
    - Dst: String::into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:168,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:164,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:174,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:175,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:176,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:176,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:175,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:181,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:182,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:181,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:187,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:188,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:192,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:193,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 151
    functionDepth: 3
    functionLinenumber: 151
    functionLinenumberEnd: 197
    functionName: cluster_async::test_reconnect_only_the_disconnected_node_leave_other_connections_intact
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - redis::cmd
    - TestClusterContext::new_with_cluster_client_builder
    - String::into
    - map
    - clone
    - RoutingInfo::SingleNode
    - Self::async_connection
    - unwrap
    - host_and_port
    - retries
    linkageType: ''
    returnType: void
    signature: async fn test_reconnect_only_the_disconnected_node_leave_other_connections_intact()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:201,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:203,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 213
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 213
    functionName: cluster_async::test_async_cluster_basic_eval
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - async_connection
    - '&mut Self::arg'
    - arg
    - Cmd::arg
    - unwrap
    - cmd
    - query_async
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_basic_eval()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:217,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:219,1
    - Dst: Script::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    - Dst: Self::key
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    - Dst: invoke_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 229
    functionName: cluster_async::test_async_cluster_basic_script
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Self::key
    - async_connection
    - invoke_async
    - arg
    - unwrap
    - Script::new
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_basic_script()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:233,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:235,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:236,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:236,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:237,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:237,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:239,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:241,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:241,1
    - Dst: Route::with_slot
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:244,1
    - Dst: Slot::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:244,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:244,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:245,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:246,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:254,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:254,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:256,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 232
    functionDepth: 12
    functionLinenumber: 232
    functionLinenumberEnd: 258
    functionName: cluster_async::test_async_cluster_route_flush_to_specific_node
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - async_connection
    - Option::unwrap
    - bool::set
    - Route::with_slot
    - RoutingInfo::SingleNode
    - Slot::new
    - unwrap
    - SingleNodeRoutingInfo::SpecificNode
    - TestClusterContext::new
    - bool::get
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_route_flush_to_specific_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:262,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:264,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:265,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:268,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:269,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:271,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:272,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:269,1
    - Dst: from_redis_value::<HashMap<String, String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:277,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:277,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:279,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:279,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:279,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:280,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:281,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:281,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:281,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:282,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:282,1
    - Dst: parse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:282,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:282,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:284,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:286,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:287,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:284,1
    - Dst: from_redis_value::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:291,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:291,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 294
      start: 261
    functionDepth: 14
    functionLinenumber: 261
    functionLinenumberEnd: 294
    functionName: cluster_async::test_async_cluster_route_flush_to_node_by_address
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - redis::cmd
    - async_connection
    - to_string
    - from_redis_value::<String>
    - Option::unwrap
    - Cmd::clone
    - RoutingInfo::MultiNode
    - Cmd::arg
    - parse
    - RoutingInfo::SingleNode
    - into_iter
    - unwrap
    - next
    - from_redis_value::<HashMap<String, String>>
    - split
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_route_flush_to_node_by_address()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:298,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:301,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:306,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:306,1
    - Dst: redis::from_redis_value_ref::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:310,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:310,1
    - Dst: redis::from_redis_value_ref::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:311,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:311,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:306,1
    - Dst: sort_by
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:315,1
    - Dst: cmp
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:315,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:316,1
    - Dst: std::iter::Chain::unzip
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:316,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:322,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:322,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:326,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:322,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:328,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:328,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:328,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:328,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:328,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:332,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:332,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:335,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:336,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:337,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:336,1
    - Dst: split_to_addresses_and_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:340,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:342,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:342,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:344,1
    - Dst: '&ConnectionAddr::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:344,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:342,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:346,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:352,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:352,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:357,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:358,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:359,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:358,1
    - Dst: split_to_addresses_and_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:362,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:368,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:368,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 372
      start: 297
    functionDepth: 9
    functionLinenumber: 297
    functionLinenumberEnd: 372
    functionName: cluster_async::test_async_cluster_route_info_to_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - RoutingInfo::MultiNode
    - Default::default
    - ClusterClientBuilder::read_routing_strategy
    - unwrap
    - TestClusterContext::new_with_config
    - '&ConnectionAddr::to_string'
    - collect
    - map
    - clone
    - into_iter
    - redis::from_redis_value_ref::<String>
    - iter
    - Self::into_iter
    - ClusterClient::builder
    - get_async_connection
    - std::iter::Chain::map
    - split_to_addresses_and_info
    - sort
    - cmp
    - std::iter::Chain::unzip
    - RedisResult::unwrap
    - bool::route_command
    - redis::cmd
    - sort_by
    - RedisServer::connection_info
    - split
    - redis::ConnectionInfo::addr
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_route_info_to_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:376,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:376,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:380,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:382,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:384,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:384,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:385,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:385,1
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:386,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:386,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 3
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: cluster_async::test_cluster_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - async_connection
    - ProtocolVersion::supports_resp3
    - bool::hgetall
    - unwrap
    - bool::hset
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:393,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:395,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:396,1
    - Dst: Pipeline::add_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:397,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:397,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:397,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:397,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:397,1
    - Dst: Pipeline::add_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:398,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:398,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:398,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:398,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:398,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:399,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:399,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:400,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:400,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:402,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 392
    functionDepth: 12
    functionLinenumber: 392
    functionLinenumberEnd: 404
    functionName: cluster_async::test_async_cluster_basic_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - async_connection
    - '&mut Self::arg'
    - Pipeline::exec_async
    - clone
    - Cmd::arg
    - unwrap
    - cmd
    - TestClusterContext::new
    - bool::get
    - Pipeline::add_command
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_basic_pipe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:414,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:415,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:417,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:417,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:417,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:417,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:422,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:422,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:422,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:422,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:423,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:423,1
    - Dst: '&mut Self::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:423,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:424,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:424,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:433,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:434,1
    - Dst: redis::Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:434,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:434,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:434,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:434,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 407
    functionDepth: 12
    functionLinenumber: 407
    functionLinenumberEnd: 441
    functionName: cluster_async::test_pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::cmd
    - redis::Pipeline::set
    - get
    - redis::Cmd::arg
    - '&mut Self::arg'
    - Err
    - MockEnv::new
    - '&mut Self::get_packed_command'
    - ignore
    - Ok
    - get_packed_command
    - tokio::runtime::Runtime::block_on
    - parse_redis_value
    - respond_startup
    - exec_async
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_returns_server_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:445,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:447,1
    - Dst: bool::mset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:449,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:449,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:454,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 456
    functionName: cluster_async::test_async_cluster_multi_shard_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - async_connection
    - bool::mget
    - unwrap
    - TestClusterContext::new
    - bool::mset
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_multi_shard_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:460,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:462,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:464,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:464,1
    - Dst: '&mut Self::set'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:464,1
    - Dst: expire
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:464,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:464,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 459
    functionDepth: 10
    functionLinenumber: 459
    functionLinenumberEnd: 473
    functionName: cluster_async::test_async_cluster_can_run_a_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - async_connection
    - redis::Pipeline::atomic
    - unwrap
    - expire
    - '&mut Self::set'
    - query_async
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_can_run_a_transaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:480,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:485,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 477
    functionDepth: 9
    functionLinenumber: 477
    functionLinenumberEnd: 492
    functionName: cluster_async::test_async_cluster_default_reject_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_config
    - Default::default
    - ClusterType::get_intended
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_default_reject_invalid_hostnames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:499,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:504,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:508,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:510,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:513,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:514,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 496
    functionDepth: 9
    functionLinenumber: 496
    functionLinenumberEnd: 515
    functionName: cluster_async::test_async_cluster_danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - async_connection
    - danger_accept_invalid_hostnames
    - TestClusterContext::new_with_config_and_builder
    - Default::default
    - smoke_test_connection
    - ClusterType::get_intended
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_danger_accept_invalid_hostnames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:522,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:528,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:531,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:531,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:532,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:543,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:549,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:550,1
    - Dst: RedisServer::host_and_port
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:551,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:552,1
    - Dst: redis::cluster::NodeAddress::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:553,1
    - Dst: redis::cluster::NodeAddress::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:554,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:559,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:559,1
    - Dst: TlsFilePaths::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:562,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:559,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:565,1
    - Dst: ClusterClientBuilder::use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:565,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:566,1
    - Dst: Self::node_address_map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:565,1
    - Dst: certs
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:570,1
    - Dst: load_certs_from_file
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:570,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:573,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:573,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:574,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:574,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:575,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 576
      start: 519
    functionDepth: 9
    functionLinenumber: 519
    functionLinenumberEnd: 576
    functionName: cluster_async::async_cluster_node_address_map_fixes_tls_hostname_mismatch
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - to_string
    - redis::cluster::NodeAddress::new
    - '&str::to_string'
    - Self::insert
    - Default::default
    - unwrap
    - TestClusterContext::new_with_config
    - Some
    - TlsFilePaths::connection_info
    - collect
    - HashMap::new
    - map
    - iter_servers
    - certs
    - load_certs_from_file
    - ClusterType::get_intended
    - RedisServer::host_and_port
    - use_protocol
    - ClusterClient::builder
    - get_async_connection
    - build
    - Self::node_address_map
    - RedisResult::unwrap
    - ClusterClientBuilder::use_protocol
    - smoke_test_connection
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_node_address_map_fixes_tls_hostname_mismatch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_failover
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:580,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:581,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 589
      start: 579
    functionDepth: 10
    functionLinenumber: 579
    functionLinenumberEnd: 589
    functionName: cluster_async::test_async_cluster_basic_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_config
    - test_failover
    - RedisClusterConfiguration::single_replica_config
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_basic_failover()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:594,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:594,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:594,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:594,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - redis
    argTypes:
    - '&mut redis::aio::MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: cluster_async::do_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - '&mut Self::exec_async'
    - Ok
    - Cmd::arg
    linkageType: ''
    returnType: Result
    signature: 'async fn do_failover(redis: &mut redis::aio::MultiplexedConnection,)
      -> Result<(), anyhow::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:604,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:604,1
    - Dst: '&TestClusterContext::async_connection'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:606,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:607,1
    - Dst: Self::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:610,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:612,1
    - Dst: RedisServer::client_addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:613,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:615,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:616,1
    - Dst: RedisResult::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:615,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:622,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:622,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:627,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:627,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:627,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:627,1
    - Dst: redis::ConnectionInfo::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:632,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:632,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:635,1
    - Dst: flushall::<()>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:635,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:635,1
    - Dst: futures_time::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:636,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:635,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:638,1
    - Dst: anyhow::Error::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:638,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:635,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:642,1
    - Dst: Ok::<(), anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:644,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:656,1
    - Dst: bool::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:658,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:659,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:660,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:664,1
    - Dst: Self::iter_mut
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:665,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:665,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:667,1
    - Dst: do_failover
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:667,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:670,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:670,1
    - Dst: is_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:670,1
    - Dst: RedisResult::pop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:671,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:671,1
    - Dst: Ok::<_, anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:673,1
    - Dst: pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:678,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:685,1
    - Dst: Ok::<_, anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:686,1
    - Dst: ".requests + 1)\n            .map(|i| {\n                let mut connection\
        \ = connection.clone();\n                let mut node_conns = node_conns.clone();\n\
        \                let completed = completed.clone();\n                async\
        \ move {\n                    if i == requests / 2 {\n                   \
        \     // Failover all the nodes, error only if all the failover requests error\n\
        \                        let mut results = future::join_all(\n           \
        \                 node_conns\n                                .iter_mut()\n\
        \                                .map(|conn| Box::pin(do_failover(conn))),\n\
        \                        )\n                        .await;\n            \
        \            if results.iter().all(|res| res.is_err()) {\n               \
        \             results.pop().unwrap()\n                        } else {\n \
        \                           Ok::<_, anyhow::Error>(())\n                 \
        \       }\n                    } else {\n                        let key =\
        \ format!(\"test-{value}-{i}\");\n                        let res: Vec<i32>\
        \ = pipe()\n                            .set(key.clone(), i)\n           \
        \                 .ignore()\n                            .get(key)\n     \
        \                       .query_async(&mut connection)\n                  \
        \          .await\n                            .unwrap();\n              \
        \          assert_eq!(res, &[i]);\n                        completed.fetch_add(1,\
        \ Ordering::SeqCst);\n                        Ok::<_, anyhow::Error>(())\n\
        \                    }\n                }\n            })\n            .collect::<stream::FuturesUnordered<_>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:656,1
    - Dst: try_collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:656,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:656,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 146
    argCount: 4
    argNames:
    - env
    - requests
    - value
    - _mtls_enabled
    argTypes:
    - '&TestClusterContext'
    - i32
    - i32
    - bool
    constantsTouched: []
    func_position:
      end: 700
      start: 598
    functionDepth: 8
    functionLinenumber: 598
    functionLinenumberEnd: 700
    functionName: cluster_async::test_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - bool::clone
    - Err
    - unwrap
    - Ok
    - RedisResult::iter
    - future::join_all
    - Self::clear
    - anyhow::Error::from
    - Box::pin
    - Ok::<_, anyhow::Error>
    - Ok::<(), anyhow::Error>
    - try_collect
    - ".requests + 1)\n            .map(|i| {\n                let mut connection\
      \ = connection.clone();\n                let mut node_conns = node_conns.clone();\n\
      \                let completed = completed.clone();\n                async move\
      \ {\n                    if i == requests / 2 {\n                        //\
      \ Failover all the nodes, error only if all the failover requests error\n  \
      \                      let mut results = future::join_all(\n               \
      \             node_conns\n                                .iter_mut()\n    \
      \                            .map(|conn| Box::pin(do_failover(conn))),\n   \
      \                     )\n                        .await;\n                 \
      \       if results.iter().all(|res| res.is_err()) {\n                      \
      \      results.pop().unwrap()\n                        } else {\n          \
      \                  Ok::<_, anyhow::Error>(())\n                        }\n \
      \                   } else {\n                        let key = format!(\"test-{value}-{i}\"\
      );\n                        let res: Vec<i32> = pipe()\n                   \
      \         .set(key.clone(), i)\n                            .ignore()\n    \
      \                        .get(key)\n                            .query_async(&mut\
      \ connection)\n                            .await\n                        \
      \    .unwrap();\n                        assert_eq!(res, &[i]);\n          \
      \              completed.fetch_add(1, Ordering::SeqCst);\n                 \
      \       Ok::<_, anyhow::Error>(())\n                    }\n                }\n\
      \            })\n            .collect::<stream::FuturesUnordered<_>>"
    - RedisResult::pop
    - unwrap_or_else
    - map
    - iter_servers
    - clone
    - Pipeline::set
    - all
    - get_multiplexed_async_connection
    - Self::iter_mut
    - Self::fetch_add
    - get
    - do_failover
    - '&TestClusterContext::async_connection'
    - redis::Cmd::new
    - RedisServer::client_addr
    - timeout
    - redis::ConnectionInfo::get
    - is_err
    - Arc::new
    - pipe
    - Option::expect
    - expect
    - flushall::<()>
    - RedisServer::connection_info
    - Self::arg
    - futures_time::time::Duration::from_secs
    - Self::push
    - ignore
    - Self::clone
    - build_single_client
    - query_async
    - RedisResult::unwrap_or_else
    - Vec::new
    linkageType: ''
    returnType: void
    signature: 'async fn test_failover(env: &TestClusterContext,requests: i32,value:
      i32,_mtls_enabled: bool,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:756,1
    - Dst: async_generic_connection::<ErrorConnection>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:758,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:760,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:761,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:761,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:764,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:766,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 774
      start: 755
    functionDepth: 12
    functionLinenumber: 755
    functionLinenumberEnd: 774
    functionName: cluster_async::test_async_cluster_error_in_inner_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - get
    - async_generic_connection::<ErrorConnection>
    - unwrap
    - store
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_error_in_inner_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:785,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:786,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:787,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:787,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:787,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:788,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:788,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:789,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:789,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:789,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:791,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:791,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:795,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:795,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:795,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 798
      start: 777
    functionDepth: 1
    functionLinenumber: 777
    functionLinenumberEnd: 798
    functionName: cluster_async::test_cluster_async_can_connect_to_server_that_sends_cluster_slots_with_null_host_name
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - arg("test").query_async::<Value>
    - Err
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - contains_slice
    - is_connection_check
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    linkageType: ''
    returnType: void
    signature: fn test_cluster_async_can_connect_to_server_that_sends_cluster_slots_with_null_host_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:809,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:810,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:811,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:811,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:811,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:812,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:812,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:813,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:813,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:813,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:818,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:818,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:822,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:822,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:822,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 825
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 825
    functionName: cluster_async::test_cluster_async_can_connect_to_server_that_sends_cluster_slots_with_partial_nodes_with_unknown_host_name
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - arg("test").query_async::<Value>
    - Err
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - contains_slice
    - is_connection_check
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    linkageType: ''
    returnType: void
    signature: fn test_cluster_async_can_connect_to_server_that_sends_cluster_slots_with_partial_nodes_with_unknown_host_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:831,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:837,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:838,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:838,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:841,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:843,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:844,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:844,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:845,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:845,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:845,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:850,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:851,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:851,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:851,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 857
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 857
    functionName: cluster_async::test_async_cluster_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - parse_redis_value
    - Err
    - redis_value
    - Cmd::arg
    - ClusterClientBuilder::retries
    - atomic::AtomicUsize::new
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - fetch_add
    - respond_startup
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:866,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:867,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:868,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:868,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:869,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:876,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:877,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:878,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:880,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:882,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:883,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:883,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:883,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:886,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:890,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:890,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:894,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:894,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:897,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:897,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:897,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:909,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:909,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:915,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:916,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:916,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:916,1
    - Dst: "arg(\"test\")\n                .arg(\"value\")\n                .query_async::<Value>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:916,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 860
    functionDepth: 8
    functionLinenumber: 860
    functionLinenumberEnd: 927
    functionName: cluster_async::test_async_cluster_readonly_error_refreshes_slots_and_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Self::store
    - Err
    - MockEnv::new
    - redis_value
    - is_connection_check
    - Ok
    - fetch_add
    - '&mut Self::arg'
    - atomic::AtomicUsize::new
    - "arg(\"test\")\n                .arg(\"value\")\n                .query_async::<Value>"
    - cmd
    - respond_startup
    - Cmd::arg
    - Arc::new
    - atomic::AtomicBool::new
    - Self::load
    - contains_slice
    - tokio::runtime::Runtime::block_on
    - Self::clone
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_readonly_error_refreshes_slots_and_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:933,1
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:933,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:940,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:941,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:941,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:944,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:946,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:947,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:948,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:948,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:953,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:954,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:954,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:954,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 964
      start: 930
    functionDepth: 8
    functionLinenumber: 930
    functionLinenumberEnd: 964
    functionName: cluster_async::test_async_cluster_tryagain_exhaust_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - parse_redis_value
    - Err
    - clone
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - atomic::AtomicUsize::new
    - cmd
    - tokio::runtime::Runtime::block_on
    - fetch_add
    - respond_startup
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_tryagain_exhaust_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:970,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:971,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:972,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:979,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:980,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:981,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:983,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:985,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:986,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:986,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:986,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:989,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:991,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:992,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:992,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:992,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:995,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:995,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:996,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:999,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:999,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1002,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1002,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1002,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1015,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1016,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1016,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1016,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 967
    functionDepth: 2
    functionLinenumber: 967
    functionLinenumberEnd: 1022
    functionName: cluster_async::test_async_cluster_move_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Self::load
    - Self::store
    - Err
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - atomic::AtomicBool::new
    - contains_slice
    - is_connection_check
    - atomic::AtomicUsize::new
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - fetch_add
    - as_bytes
    - respond_startup
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_move_error_when_new_node_is_added()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1028,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1035,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1036,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1036,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1039,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1040,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1043,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1044,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1044,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1044,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1047,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1047,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1048,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1048,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1048,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1054,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1055,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1055,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1055,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1062,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1062,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1063,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1073,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1073,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1073,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1073,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1085,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1086,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1086,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1086,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1025
    functionDepth: 2
    functionLinenumber: 1025
    functionLinenumberEnd: 1092
    functionName: cluster_async::test_async_cluster_refresh_topology_even_with_zero_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - arg("test").query_async::<Value>
    - MockEnv::with_client_builder
    - Self::load
    - Err
    - redis_value
    - Cmd::arg
    - atomic::AtomicBool::new
    - ClusterClientBuilder::retries
    - is_connection_check
    - contains_slice
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - parse_redis_value
    - as_bytes
    - respond_startup
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_refresh_topology_even_with_zero_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1098,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1099,1
    - Dst: atomic::AtomicU16::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1099,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1100,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1107,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1108,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1108,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1111,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1114,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1115,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1119,1
    - Dst: Self::swap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1121,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1122,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1122,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1122,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1124,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1124,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1124,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1137,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1137,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1138,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1139,1
    - Dst: TlsFilePaths::to_string
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1140,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1151,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1151,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1152,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1153,1
    - Dst: TlsFilePaths::to_string
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1154,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1095
    functionDepth: 8
    functionLinenumber: 1095
    functionLinenumberEnd: 1162
    functionName: cluster_async::test_async_cluster_reconnect_even_with_zero_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Err
    - redis_value
    - RoutingInfo::SingleNode
    - Ok
    - TlsFilePaths::to_string
    - cmd
    - respond_startup
    - Self::fetch_add
    - ClusterClient::builder
    - Self::swap
    - atomic::AtomicU16::new
    - broken_pipe_error
    - Arc::new
    - atomic::AtomicBool::new
    - ClusterClientBuilder::retries
    - bool::route_command
    - MockEnv::with_client_builder
    - contains_slice
    - tokio::runtime::Runtime::block_on
    - Self::clone
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_reconnect_even_with_zero_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1167,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1167,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1173,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1174,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1178,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1181,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1184,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1184,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1192,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1192,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1196,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1196,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1196,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1206,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1207,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1207,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1207,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1165
    functionDepth: 8
    functionLinenumber: 1165
    functionLinenumberEnd: 1213
    functionName: cluster_async::test_async_cluster_ask_redirect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - ClusterClient::builder
    - Self::fetch_add
    - MockEnv::with_client_builder
    - Err
    - redis_value
    - respond_startup_two_nodes
    - Cmd::arg
    - Arc::new
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - parse_redis_value
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_ask_redirect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1218,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1218,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1219,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1225,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1226,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1231,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1232,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1232,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1237,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1238,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1240,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1241,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1241,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1247,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1248,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1248,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1247,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1216
    functionDepth: 8
    functionLinenumber: 1216
    functionLinenumberEnd: 1253
    functionName: cluster_async::test_async_cluster_ask_save_new_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - ClusterClient::builder
    - Self::fetch_add
    - MockEnv::with_client_builder
    - arg("test").query_async::<Value>
    - Err
    - respond_startup_two_nodes
    - Cmd::arg
    - Arc::new
    - is_connection_check
    - unwrap
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - Self::clone
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_ask_save_new_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1258,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1258,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1264,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1266,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1266,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1266,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1268,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1269,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1272,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1272,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1273,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1278,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1278,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1278,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1284,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1285,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1285,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1285,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1256
    functionDepth: 8
    functionLinenumber: 1256
    functionLinenumberEnd: 1291
    functionName: cluster_async::test_async_cluster_reset_routing_if_redirect_fails
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - Self::fetch_add
    - Err
    - MockEnv::new
    - respond_startup_two_nodes
    - redis_value
    - broken_pipe_error
    - Cmd::arg
    - Arc::new
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - parse_redis_value
    - as_bytes
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_reset_routing_if_redirect_fails()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1296,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1296,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1302,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1303,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1307,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1310,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1312,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1312,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1322,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1322,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1326,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1326,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1336,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1337,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1342
      start: 1294
    functionDepth: 8
    functionLinenumber: 1294
    functionLinenumberEnd: 1342
    functionName: cluster_async::test_async_cluster_ask_redirect_even_if_original_call_had_no_route
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - ClusterClient::builder
    - Self::fetch_add
    - MockEnv::with_client_builder
    - Err
    - respond_startup_two_nodes
    - query_async::<Value>
    - Arc::new
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_ask_redirect_even_if_original_call_had_no_route()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1348,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1349,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1356,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1357,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1358,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1360,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1362,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1363,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1363,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1363,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1366,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1370,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1370,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1371,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1376,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1376,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1381,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1381,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1381,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1389,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1390,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1390,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1390,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1396
      start: 1345
    functionDepth: 2
    functionLinenumber: 1345
    functionLinenumberEnd: 1396
    functionName: cluster_async::test_async_cluster_ask_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Self::load
    - Self::store
    - Err
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - atomic::AtomicBool::new
    - is_connection_check
    - atomic::AtomicUsize::new
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - fetch_add
    - as_bytes
    - respond_startup
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_ask_error_when_new_node_is_added()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1408,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1409,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1409,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1409,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1414,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1416,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1416,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1416,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1422,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1423,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1423,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1423,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1435,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1436,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1436,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1436,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1441,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1443,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1443,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1443,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1449,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1450,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1450,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1450,1
    - Dst: "arg(\"test\")\n                .arg(\"123\")\n                .query_async::<Option<Value>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1450,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1399
    functionDepth: 1
    functionLinenumber: 1399
    functionLinenumberEnd: 1456
    functionName: cluster_async::test_async_cluster_random_replica_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - '&mut Self::arg'
    - Err
    - redis_value
    - Cmd::arg
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - Ok
    - cmd
    - "arg(\"test\")\n                .arg(\"123\")\n                .query_async::<Option<Value>>"
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_random_replica_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1461,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1461,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1461,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1462,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1485,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1486,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1486,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1486,1
    - Dst: RoundRobinReplicaStrategy::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1488,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1491,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1491,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1491,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1492,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1493,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1493,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1493,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1494,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1494,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1494,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1496,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1512,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1513,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1513,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1513,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1512,1
    - Dst: Vec::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1517,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1517,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1459
    functionDepth: 8
    functionLinenumber: 1459
    functionLinenumberEnd: 1519
    functionName: cluster_async::test_async_cluster_round_robin_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - Vec::lock
    - '&mut Self::query_async'
    - Ok
    - unwrap
    - Some
    - RoundRobinReplicaStrategy::new
    - Self::lock
    - Self::unwrap
    - clone
    - cmd
    - ClusterClient::builder
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - Vec::clone
    - MockEnv::with_client_builder
    - std::sync::Mutex::new
    - push
    - contains_slice
    - Self::read_routing_strategy
    - tokio::runtime::Runtime::block_on
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_round_robin_read()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1527,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1527,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1527,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1528,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1529,1
    - Dst: RedisFuture::split_whitespace
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1530,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1531,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1533,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1540,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1541,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1541,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1541,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1546,1
    - Dst: Option<Vec<MockSlotRange>>::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1549,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1552,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1552,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1552,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1553,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1553,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1553,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1555,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1559,1
    - Dst: query_async::<Option<()>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1559,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1560,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1560,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 56
    argCount: 4
    argNames:
    - name
    - command
    - expected_ports
    - slots_config
    argTypes:
    - '&''static str'
    - '&''static str'
    - Vec<u16>
    - Option<Vec<MockSlotRange>>
    constantsTouched: []
    func_position:
      end: 1563
      start: 1521
    functionDepth: 8
    functionLinenumber: 1521
    functionLinenumberEnd: 1563
    functionName: cluster_async::test_async_cluster_fan_out
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - Ok
    - query_async::<Option<()>>
    - Self::lock
    - Self::unwrap
    - RedisFuture::split_whitespace
    - Cmd::new
    - ClusterClient::builder
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - sort
    - Option<Vec<MockSlotRange>>::clone
    - MockEnv::with_client_builder
    - std::sync::Mutex::new
    - push
    - Cmd::get_packed_command
    - Self::read_routing_strategy
    - tokio::runtime::Runtime::block_on
    - Self::clone
    - Vec::new
    linkageType: ''
    returnType: void
    signature: 'fn test_async_cluster_fan_out(name: &''static str,command: &''static
      str,expected_ports: Vec<u16>,slots_config: Option<Vec<MockSlotRange>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_async_cluster_fan_out
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1573
      start: 1566
    functionDepth: 9
    functionLinenumber: 1566
    functionLinenumberEnd: 1573
    functionName: cluster_async::test_async_cluster_fan_out_to_all_primaries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - test_async_cluster_fan_out
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_to_all_primaries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_async_cluster_fan_out
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1583
      start: 1576
    functionDepth: 9
    functionLinenumber: 1576
    functionLinenumberEnd: 1583
    functionName: cluster_async::test_async_cluster_fan_out_to_all_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - test_async_cluster_fan_out
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_to_all_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_async_cluster_fan_out
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1587,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1604
      start: 1586
    functionDepth: 9
    functionLinenumber: 1586
    functionLinenumberEnd: 1604
    functionName: cluster_async::test_async_cluster_fan_out_once_to_each_primary_when_no_replicas_are_available
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Some
    - test_async_cluster_fan_out
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_once_to_each_primary_when_no_replicas_are_available()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_async_cluster_fan_out
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1608,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1607
    functionDepth: 9
    functionLinenumber: 1607
    functionLinenumberEnd: 1635
    functionName: cluster_async::test_async_cluster_fan_out_once_even_if_primary_has_multiple_slot_ranges
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Some
    - test_async_cluster_fan_out
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_once_even_if_primary_has_multiple_slot_ranges()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1641,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1641,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1641,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1642,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1650,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1651,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1651,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1651,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1656,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1657,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1657,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1657,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1658,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1658,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1662,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1663,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1664,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1664,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1665,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1666,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1669,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1669,1
    - Dst: Self::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1670,1
    - Dst: Self::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1672,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1675,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1675,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1676,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1677,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1680,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1680,1
    - Dst: Self::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1681,1
    - Dst: Self::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1683,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1686,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1686,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1688,1
    - Dst: TlsFilePaths::to_string
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1689,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1694,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1694,1
    - Dst: Self::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1695,1
    - Dst: Self::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1697,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1699
      start: 1638
    functionDepth: 8
    functionLinenumber: 1638
    functionLinenumberEnd: 1699
    functionName: cluster_async::test_async_cluster_route_according_to_passed_argument
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Err
    - RoutingInfo::MultiNode
    - RoutingInfo::SingleNode
    - Ok
    - TlsFilePaths::to_string
    - Self::clear
    - Self::lock
    - Self::unwrap
    - cmd
    - respond_startup_with_replica
    - ClusterClient::builder
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - Self::sort
    - bool::route_command
    - MockEnv::with_client_builder
    - std::sync::Mutex::new
    - Cmd::clone
    - push
    - Self::read_routing_strategy
    - tokio::runtime::Runtime::block_on
    - Self::clone
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_route_according_to_passed_argument()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1704,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1705,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1705,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1712,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1713,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1713,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1713,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1718,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1721,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1721,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1721,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1725,1
    - Dst: query_async::<i64>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1726,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1729
      start: 1702
    functionDepth: 1
    functionLinenumber: 1702
    functionLinenumberEnd: 1729
    functionName: cluster_async::test_async_cluster_fan_out_and_aggregate_numeric_response_with_min
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - '&mut Self::arg'
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - Cmd::arg
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - unwrap
    - Ok
    - tokio::runtime::Runtime::block_on
    - Cmd::new
    - query_async::<i64>
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_aggregate_numeric_response_with_min()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1734,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1735,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1735,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1735,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1735,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1735,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1735,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1747,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1748,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1748,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1748,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1753,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1756,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1756,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1756,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1758,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1758,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1758,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1765,1
    - Dst: query_async::<Vec<i64>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1769
      start: 1732
    functionDepth: 1
    functionLinenumber: 1732
    functionLinenumberEnd: 1769
    functionName: cluster_async::test_async_cluster_fan_out_and_aggregate_logical_array_response
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - '&mut Self::arg'
    - respond_startup_with_replica_using_config
    - arg
    - Err
    - redis_value
    - Cmd::arg
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - unwrap
    - Ok
    - query_async::<Vec<i64>>
    - tokio::runtime::Runtime::block_on
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_aggregate_logical_array_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1774,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1775,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1781,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1782,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1782,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1782,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1787,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1789,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1789,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1791,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1791,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1791,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1791,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1799,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1800,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1799,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1772
    functionDepth: 1
    functionLinenumber: 1772
    functionLinenumberEnd: 1803
    functionName: cluster_async::test_async_cluster_fan_out_and_return_one_succeeded_response
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - respond_startup_with_replica_using_config
    - Err
    - query_async::<Value>
    - RedisError::from
    - Cmd::arg
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - unwrap
    - Ok
    - tokio::runtime::Runtime::block_on
    - Cmd::new
    - std::io::Error::new
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_return_one_succeeded_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1808,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1809,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1815,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1816,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1816,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1816,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1821,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1822,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1822,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1826,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1827,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1830
      start: 1806
    functionDepth: 1
    functionLinenumber: 1806
    functionLinenumberEnd: 1830
    functionName: cluster_async::test_async_cluster_fan_out_and_return_nil_if_no_other_value_was_received
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - respond_startup_with_replica_using_config
    - Err
    - query_async::<Value>
    - Cmd::arg
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - unwrap
    - Ok
    - tokio::runtime::Runtime::block_on
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_return_nil_if_no_other_value_was_received()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1835,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1836,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1836,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1842,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1843,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1843,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1843,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1848,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1850,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1850,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1851,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1850,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1858,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1859,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1858,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1862
      start: 1833
    functionDepth: 1
    functionLinenumber: 1833
    functionLinenumberEnd: 1862
    functionName: cluster_async::test_async_cluster_fan_out_and_fail_one_succeeded_if_there_are_no_successes
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - '&mut Self::arg'
    - respond_startup_with_replica_using_config
    - Err
    - into
    - query_async::<Value>
    - Cmd::arg
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - unwrap_err
    - tokio::runtime::Runtime::block_on
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_fail_one_succeeded_if_there_are_no_successes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1867,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1873,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1874,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1874,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1874,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1879,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1880,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1880,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1884,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1885,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1865
    functionDepth: 1
    functionLinenumber: 1865
    functionLinenumberEnd: 1888
    functionName: cluster_async::test_async_cluster_fan_out_and_return_all_succeeded_response
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - Err
    - query_async::<Value>
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - unwrap
    - Ok
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_return_all_succeeded_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1893,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1899,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1900,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1900,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1900,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1905,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1907,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1907,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1908,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1907,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1913,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1913,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1917,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1918,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1917,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1921
      start: 1891
    functionDepth: 1
    functionLinenumber: 1891
    functionLinenumberEnd: 1921
    functionName: cluster_async::test_async_cluster_fan_out_and_fail_all_succeeded_if_there_is_a_single_failure
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - Err
    - into
    - query_async::<Value>
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - Ok
    - unwrap_err
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_fail_all_succeeded_if_there_is_a_single_failure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1926,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1932,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1933,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1933,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1933,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1938,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1940,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1940,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1940,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1942,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1942,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1946,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1947,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1946,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1924
    functionDepth: 1
    functionLinenumber: 1924
    functionLinenumberEnd: 1950
    functionName: cluster_async::test_async_cluster_fan_out_and_return_one_succeeded_ignoring_empty_values
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - query_async::<String>
    - MockEnv::with_client_builder
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - unwrap
    - Ok
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_return_one_succeeded_ignoring_empty_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1955,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1956,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1956,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1962,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1963,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1963,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1963,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1968,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1969,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1969,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1969,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1974,1
    - Dst: query_async::<Vec<(String, String)>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1975,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1974,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1977,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1988
      start: 1953
    functionDepth: 1
    functionLinenumber: 1953
    functionLinenumberEnd: 1988
    functionName: cluster_async::test_async_cluster_fan_out_and_return_map_of_results_for_special_response_policy
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - '&mut Self::arg'
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - Cmd::arg
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - unwrap
    - Ok
    - sort
    - tokio::runtime::Runtime::block_on
    - Cmd::new
    - query_async::<Vec<(String, String)>>
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_return_map_of_results_for_special_response_policy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1993,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1999,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2000,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2000,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2000,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2005,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2006,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2006,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2006,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2010,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2011,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2010,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1991
    functionDepth: 1
    functionLinenumber: 1991
    functionLinenumberEnd: 2019
    functionName: cluster_async::test_async_cluster_fan_out_and_combine_arrays_of_values
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - query_async::<Vec<String>>
    - Ok
    - unwrap
    - sort
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_fan_out_and_combine_arrays_of_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2024,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2025,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2025,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2025,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2031,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2032,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2032,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2032,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2037,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2038,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2038,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2039,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2039,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2041,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2039,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2042,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2039,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2044,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2044,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2044,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2048,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2049,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2022
    functionDepth: 3
    functionLinenumber: 2022
    functionLinenumberEnd: 2052
    functionName: cluster_async::test_async_cluster_split_multi_shard_command_and_combine_arrays_of_values
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - respond_startup_with_replica_using_config
    - filter
    - redis_value
    - Err
    - unwrap
    - Ok
    - collect
    - '&mut Self::arg'
    - map
    - query_async::<Vec<String>>
    - iter
    - cmd
    - ClusterClient::builder
    - arg
    - std::str::from_utf8
    - Cmd::arg
    - ClusterClientBuilder::retries
    - MockEnv::with_client_builder
    - Self::read_routing_strategy
    - Value::Array
    - tokio::runtime::Runtime::block_on
    - contains
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_split_multi_shard_command_and_combine_arrays_of_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2057,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2058,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2058,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2058,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2059,1
    - Dst: AtomicU16::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2059,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2060,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2066,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2067,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2067,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2071,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2072,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2072,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2073,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2074,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2076,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2077,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2077,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2078,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2081,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2081,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2083,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2081,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2084,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2081,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2086,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2086,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2086,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2090,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2091,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2090,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2055
    functionDepth: 8
    functionLinenumber: 2055
    functionLinenumberEnd: 2095
    functionName: cluster_async::test_async_cluster_handle_asking_error_in_split_multi_shard_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicU16::new
    - respond_startup_with_replica_using_config
    - Err
    - filter
    - redis_value
    - ClusterClientBuilder::read_routing_strategy
    - unwrap
    - Ok
    - collect
    - '&mut Self::arg'
    - tokio::runtime::Runtime::block_on
    - map
    - query_async::<Vec<String>>
    - iter
    - cmd
    - Self::fetch_add
    - ClusterClient::builder
    - arg
    - std::str::from_utf8
    - Cmd::arg
    - Arc::new
    - MockEnv::with_client_builder
    - Value::Array
    - contains
    - Self::clone
    - parse_redis_value
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_handle_asking_error_in_split_multi_shard_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2099,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2100,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2101,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2100,1
    - Dst: RedisCluster::password
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2102,1
    - Dst: disable_default_user
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2104,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2106,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2107,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2107,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2107,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2107,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2107,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2113,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2113,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2113,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2113,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2120
    functionName: cluster_async::test_async_cluster_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - async_connection
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - RedisCluster::username
    - '&mut Self::arg'
    - '&mut Self::clone'
    - Self::query_async
    - disable_default_user
    - Cmd::arg
    - username
    - unwrap
    - exec_async
    - '&''static str::password'
    - cmd
    - RedisCluster::password
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_with_username_and_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2125,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2125,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2131,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2132,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2132,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2135,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2140,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2141,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2141,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2141,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2141,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2145,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2145,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2145,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2151,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2152,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2152,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2123
    functionDepth: 8
    functionLinenumber: 2123
    functionLinenumberEnd: 2158
    functionName: cluster_async::test_async_cluster_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - ClusterClient::builder
    - Self::fetch_add
    - MockEnv::with_client_builder
    - Err
    - redis_value
    - respond_startup_two_nodes
    - RedisError::from
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - std::io::Error::new
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_io_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2163,1
    - Dst: AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2163,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2164,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2170,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2171,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2171,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2174,1
    - Dst: AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2174,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2177,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2178,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2178,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2178,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2180,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2181,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2182,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2182,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2182,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2185,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2186,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2187,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2187,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2188,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2196,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2197,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2197,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2197,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2161
    functionDepth: 8
    functionLinenumber: 2161
    functionLinenumberEnd: 2211
    functionName: cluster_async::test_async_cluster_io_error_without_fallback_redirects
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - Self::load
    - Self::store
    - Err
    - respond_startup_two_nodes
    - broken_pipe_error
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - AtomicBool::new
    - cmd
    - tokio::runtime::Runtime::block_on
    - Self::clone
    - parse_redis_value
    - as_bytes
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_io_error_without_fallback_redirects()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2221,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2222,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2222,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2225,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2225,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2227,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2231,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2232,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2232,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2232,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2233,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2233,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2233,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2242,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2243,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2243,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2243,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2253,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2259
      start: 2214
    functionDepth: 8
    functionLinenumber: 2214
    functionLinenumberEnd: 2259
    functionName: cluster_async::test_async_cluster_io_error_recovers_via_repair
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - ClusterClient::builder
    - Self::fetch_add
    - MockEnv::with_client_builder
    - Err
    - redis_value
    - respond_startup_two_nodes
    - broken_pipe_error
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_io_error_recovers_via_repair()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2269,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2270,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2270,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2273,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2278,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2278,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2278,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2279,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2279,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2279,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2285,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2286,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2286,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2286,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2292,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2293,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2293,1
    - Dst: "arg(\"foo\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2293,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2293,1
    - Dst: futures_time::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2262
    functionDepth: 7
    functionLinenumber: 2262
    functionLinenumberEnd: 2302
    functionName: cluster_async::test_async_cluster_reconnect_does_not_stall_healthy_shard
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - Err
    - futures_time::time::Duration::from_secs
    - redis_value
    - respond_startup_two_nodes
    - timeout
    - broken_pipe_error
    - Cmd::arg
    - ClusterClientBuilder::retries
    - "arg(\"foo\")\n                .query_async::<Option<i32>>"
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_reconnect_does_not_stall_healthy_shard()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2312,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2313,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2313,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2313,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2321,1
    - Dst: AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2321,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2324,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2325,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2325,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2325,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2328,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2329,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2329,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2329,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2331,1
    - Dst: Self::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2332,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2333,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2333,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2333,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2338,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2345,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2346,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2346,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2351
      start: 2305
    functionDepth: 8
    functionLinenumber: 2305
    functionLinenumberEnd: 2351
    functionName: cluster_async::test_async_cluster_read_routes_around_dead_replica
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - MockEnv::with_client_builder
    - Self::load
    - Self::store
    - Err
    - redis_value
    - broken_pipe_error
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - AtomicBool::new
    - Ok
    - cmd
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_read_routes_around_dead_replica()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2356,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2356,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2362,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2363,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2365,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2368,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2369,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2369,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2369,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2369,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2373,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2374,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2374,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2374,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2381
      start: 2354
    functionDepth: 8
    functionLinenumber: 2354
    functionLinenumberEnd: 2381
    functionName: cluster_async::test_async_cluster_non_retryable_error_should_not_retry
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - Self::fetch_add
    - Err
    - into
    - MockEnv::new
    - respond_startup_two_nodes
    - Cmd::arg
    - Arc::new
    - cmd
    - tokio::runtime::Runtime::block_on
    - Self::clone
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_non_retryable_error_should_not_retry()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2386,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2404,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2405,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2405,1
    - Dst: Self::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2405,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2410,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2413,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2415,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2415,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2415,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2419,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2419,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2384
    functionDepth: 3
    functionLinenumber: 2384
    functionLinenumberEnd: 2421
    functionName: cluster_async::test_async_cluster_can_be_created_with_partial_slot_coverage
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::builder
    - redis::cmd
    - MockEnv::with_client_builder
    - respond_startup_with_replica_using_config
    - Err
    - redis_value
    - bool::req_packed_command
    - clone
    - ClusterClientBuilder::retries
    - Self::read_routing_strategy
    - Ok
    - tokio::runtime::Runtime::block_on
    - Some
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_can_be_created_with_partial_slot_coverage()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2426,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2426,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2428,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2429,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2431,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2432,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2434,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2435,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2441,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2424
    functionDepth: 3
    functionLinenumber: 2424
    functionLinenumberEnd: 2445
    functionName: cluster_async::test_async_cluster_handle_complete_server_disconnect_without_panicking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - async_connection
    - TestClusterContext::new_with_cluster_client_builder
    - Cmd::clone
    - bool::req_packed_command
    - RoutingInfo::SingleNode
    - cmd
    - retries
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_handle_complete_server_disconnect_without_panicking()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2449,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2450,1
    - Dst: get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2453,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2455,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2456,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2458,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2460,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2462,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2463,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2470,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2474,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2475,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2476,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2479,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2479,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2481
      start: 2448
    functionDepth: 12
    functionLinenumber: 2448
    functionLinenumberEnd: 2481
    functionName: cluster_async::test_async_cluster_reconnect_after_complete_server_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - get_ports
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - async_connection
    - Cmd::clone
    - RedisCluster::new
    - bool::req_packed_command
    - Default::default
    - RoutingInfo::SingleNode
    - Vec::clone
    - unwrap
    - cmd
    - retries
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_reconnect_after_complete_server_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2485,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2486,1
    - Dst: get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2489,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2491,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2492,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2495,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2496,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2497,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2501,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2503,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2504,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2506,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2501,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2512
      start: 2484
    functionDepth: 12
    functionLinenumber: 2484
    functionLinenumberEnd: 2512
    functionName: cluster_async::test_async_cluster_reconnect_after_complete_server_disconnect_route_to_many
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - get_ports
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - async_connection
    - RedisCluster::new
    - RoutingInfo::MultiNode
    - Default::default
    - Vec::clone
    - unwrap
    - cmd
    - Some
    - retries
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_reconnect_after_complete_server_disconnect_route_to_many()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2517,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2517,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2518,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2519,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2526,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2527,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2527,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2531,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2532,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2532,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2533,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2537,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2538,1
    - Dst: Self::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2539,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2548,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2553,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2553,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2553,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2555,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2556,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2561,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2561,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2561,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2563,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2563,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2563,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2570,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2571,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2571,1
    - Dst: "arg(\"test\")\n                    .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2571,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2515
    functionDepth: 8
    functionLinenumber: 2515
    functionLinenumberEnd: 2581
    functionName: cluster_async::test_async_cluster_saves_reconnected_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - "arg(\"test\")\n                    .query_async::<Option<i32>>"
    - Err
    - redis_value
    - is_connection_check
    - Ok
    - respond_startup_two_nodes
    - cmd
    - Self::fetch_add
    - ClusterClient::builder
    - broken_pipe_error
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - MockEnv::with_client_builder
    - Self::load
    - tokio::runtime::Runtime::block_on
    - Self::clone
    - parse_redis_value
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_saves_reconnected_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2586,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2586,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2587,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2594,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2595,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2595,1
    - Dst: Self::max_connection_attempts
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2595,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2597,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2597,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2601,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2602,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2602,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2603,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2610,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2611,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2614,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2619,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2619,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2619,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2621,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2622,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2622,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2622,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2627,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2628,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2628,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2628,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2634,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2634,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2634,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2637
      start: 2584
    functionDepth: 8
    functionLinenumber: 2584
    functionLinenumberEnd: 2637
    functionName: cluster_async::test_async_cluster_limit_reconnection_attempts
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - Err
    - is_connection_check
    - Self::unwrap
    - respond_startup_two_nodes
    - NonZeroUsize::new
    - sleep
    - cmd
    - Self::fetch_add
    - ClusterClient::builder
    - broken_pipe_error
    - Cmd::arg
    - Arc::new
    - ClusterClientBuilder::retries
    - Self::max_connection_attempts
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - MockEnv::with_client_builder
    - into
    - Duration::from_millis
    - tokio::runtime::Runtime::block_on
    - Self::clone
    - parse_redis_value
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_limit_reconnection_attempts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: "cmd(\"GET\")\n                .arg(\"LIST\")\n                .cmd(\"\
        CLIENT\")\n                .arg(\"LIST\")\n                .query_async::<Vec<Option<String>>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: pop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2646,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2658,1
    - Dst: RedisResult::as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2658,1
    - Dst: windows
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2658,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2658,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut impl redis::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 2663
      start: 2643
    functionDepth: 13
    functionLinenumber: 2643
    functionLinenumberEnd: 2663
    functionName: c::l::u::s::t::e::r::_::a::s::y::n::c::::::::t::e::s::t::_::k::i::l::l::_::c::o::n::n::e::c::t::i::o::n::_::o::n::_::d::r::o::p::_::e::v::e::n::_::w::h::e::n::_::b::l::o::c::k::i::n::g::count_ids
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Pipeline::cmd
    - RedisResult::as_bytes
    - redis::Cmd::arg
    - filter
    - '&mut Self::cmd'
    - pop
    - "cmd(\"GET\")\n                .arg(\"LIST\")\n                .cmd(\"CLIENT\"\
      )\n                .arg(\"LIST\")\n                .query_async::<Vec<Option<String>>>"
    - pipe
    - unwrap
    - Ok
    - count
    - windows
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn count_ids(conn: &mut impl redis::aio::ConnectionLike) ->
      RedisResult<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2641,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2641,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2665,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2666,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2670,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2671,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2672,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2672,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2672,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2672,1
    - Dst: fuse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2671,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2682,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2682,1
    - Dst: fuse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2682,1
    - Dst: futures::future::select
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2684,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2685,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2687,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2640
    functionDepth: 3
    functionLinenumber: 2640
    functionLinenumberEnd: 2690
    functionName: cluster_async::test_kill_connection_on_drop_even_when_blocking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - TestClusterContext::new_with_cluster_client_builder
    - futures_time::task::sleep
    - fuse
    - drop
    - futures_time::time::Duration::from_millis
    - Cmd::arg
    - Self::async_connection
    - unwrap
    - cmd
    - futures::future::select
    - retries
    - Box::pin
    - exec_async
    linkageType: ''
    returnType: void
    signature: async fn test_kill_connection_on_drop_even_when_blocking()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2695,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2696,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2697,1
    - Dst: AtomicU32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2697,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2698,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2703,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2704,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2704,1
    - Dst: Self::max_retry_wait
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2704,1
    - Dst: Self::min_retry_wait
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2704,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2712,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2715,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2716,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2716,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2717,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2716,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2723,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2723,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2727,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2728,1
    - Dst: RedisResult::timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2728,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2731,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2728,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2737,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2737,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2737,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2693
    functionDepth: 8
    functionLinenumber: 2693
    functionLinenumberEnd: 2741
    functionName: cluster_async::test_async_cluster_do_not_retry_when_receiver_was_dropped
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - Err
    - Ok
    - Self::min_retry_wait
    - AtomicU32::new
    - sleep
    - cmd
    - respond_startup
    - Self::fetch_add
    - ClusterClient::builder
    - futures_time::time::Duration::from_millis
    - Self::max_retry_wait
    - Arc::new
    - ClusterClientBuilder::retries
    - RedisResult::timeout
    - MockEnv::with_client_builder
    - into
    - Cmd::get_packed_command
    - Duration::from_millis
    - unwrap_err
    - tokio::runtime::Runtime::block_on
    - Self::clone
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_do_not_retry_when_receiver_was_dropped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2745,1
    - Dst: get_pending_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2747,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2749,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2751
      start: 2744
    functionDepth: 9
    functionLinenumber: 2744
    functionLinenumberEnd: 2751
    functionName: cluster_async::test_async_cluster_connect_lazily
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - get_pending_async_connection_with_config
    - TestClusterContext::new
    - smoke_test_connection
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_connect_lazily()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2755,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2756,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2758,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2758,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2758,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2765,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2765,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2765,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2771
      start: 2754
    functionDepth: 4
    functionLinenumber: 2754
    functionLinenumberEnd: 2771
    functionName: cluster_async::test_fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - query_async::<String>
    - async_connection
    - redis::Cmd::new
    - redis::Pipeline::new
    - unwrap_err
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_fail_on_empty_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut ClusterConnection::subscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2781,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2781,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2782,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2782,1
    - Dst: '&mut ClusterConnection::psubscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2791,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2791,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2792,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2792,1
    - Dst: '&mut ClusterConnection::ssubscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2802,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2802,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2803,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2803,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - pubsub_conn
    - rx
    - supports_redis_7
    argTypes:
    - '&mut ClusterConnection'
    - '&mut UnboundedReceiver<PushInfo>'
    - bool
    constantsTouched: []
    func_position:
      end: 2812
      start: 2776
    functionDepth: 13
    functionLinenumber: 2776
    functionLinenumberEnd: 2812
    functionName: cluster_async::subscribe_to_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut ClusterConnection::psubscribe'
    - get_push
    - '&mut ClusterConnection::subscribe'
    - unwrap
    - '&mut ClusterConnection::ssubscribe'
    linkageType: ''
    returnType: void
    signature: 'async fn subscribe_to_channels(pubsub_conn: &mut ClusterConnection,rx:
      &mut UnboundedReceiver<PushInfo>,supports_redis_7: bool,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2818,1
    - Dst: '&mut UnboundedReceiver<PushInfo>::recv'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2818,1
    - Dst: Result::timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2818,1
    - Dst: futures_time::time::Duration::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2820,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - rx
    - timeout
    argTypes:
    - '&mut UnboundedReceiver<PushInfo>'
    - Duration
    constantsTouched: []
    func_position:
      end: 2823
      start: 2814
    functionDepth: 7
    functionLinenumber: 2814
    functionLinenumberEnd: 2823
    functionName: cluster_async::get_push_with_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut UnboundedReceiver<PushInfo>::recv'
    - unwrap
    - Ok
    - futures_time::time::Duration::from
    - Result::timeout
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_push_with_timeout(rx: &mut UnboundedReceiver<PushInfo>,timeout:
      Duration,) -> RedisResult<PushInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_push_with_timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2826,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2826,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - rx
    argTypes:
    - '&mut UnboundedReceiver<PushInfo>'
    constantsTouched: []
    func_position:
      end: 2827
      start: 2825
    functionDepth: 8
    functionLinenumber: 2825
    functionLinenumberEnd: 2827
    functionName: cluster_async::get_push
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - get_push_with_timeout
    - Duration::from_millis
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_push(rx: &mut UnboundedReceiver<PushInfo>) -> RedisResult<PushInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut ClusterConnection::publish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2834,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2834,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2838,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2838,1
    - Dst: '&mut ClusterConnection::publish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2847,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2847,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2851,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2851,1
    - Dst: '&mut ClusterConnection::spublish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2865,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2865,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2866,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2866,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - publish_conn
    - rx
    - supports_redis_7
    argTypes:
    - '&mut ClusterConnection'
    - '&mut UnboundedReceiver<PushInfo>'
    - bool
    constantsTouched: []
    func_position:
      end: 2875
      start: 2829
    functionDepth: 9
    functionLinenumber: 2829
    functionLinenumberEnd: 2875
    functionName: cluster_async::check_publishing
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut ClusterConnection::publish'
    - unwrap
    - '&mut ClusterConnection::spublish'
    - get_push
    linkageType: ''
    returnType: void
    signature: 'async fn check_publishing(publish_conn: &mut ClusterConnection,rx:
      &mut UnboundedReceiver<PushInfo>,supports_redis_7: bool,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2879,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2879,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2883,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2884,1
    - Dst: push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2885,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2885,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2890,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2892,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2894,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2895
      start: 2878
    functionDepth: 14
    functionLinenumber: 2878
    functionLinenumberEnd: 2895
    functionName: cluster_async::test_pub_sub_subscription
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - push_sender
    - ProtocolVersion::supports_resp3
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    - clone
    - subscribe_to_channels
    - check_publishing
    - Self::supports
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_subscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2899,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2899,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2903,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2904,1
    - Dst: redis::cluster::ClusterConfig::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2905,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2905,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2905,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2911,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2913,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2915,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2916
      start: 2898
    functionDepth: 14
    functionLinenumber: 2898
    functionLinenumberEnd: 2916
    functionName: cluster_async::test_pub_sub_subscription_with_config
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - redis::cluster::ClusterConfig::new
    - ProtocolVersion::supports_resp3
    - tokio::sync::mpsc::unbounded_channel
    - clone
    - subscribe_to_channels
    - check_publishing
    - Self::supports
    - Self::set_push_sender
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_subscription_with_config()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2920,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2920,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2924,1
    - Dst: skip_if_context_does_not_support
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2925,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2927,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2928,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2928,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2930,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2930,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2930,1
    - Dst: "arg(\"SHARDNUMSUB\")\n                .arg(\"foo\")\n                .query_async::<(String,\
        \ usize)>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2930,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2930,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2919
    functionDepth: 2
    functionLinenumber: 2919
    functionLinenumberEnd: 2937
    functionName: cluster_async::test_pub_sub_shardnumsub
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - ProtocolVersion::supports_resp3
    - '&mut Self::arg'
    - Cmd::arg
    - skip_if_context_does_not_support
    - ssubscribe
    - Self::async_connection
    - unwrap
    - "arg(\"SHARDNUMSUB\")\n                .arg(\"foo\")\n                .query_async::<(String,\
      \ usize)>"
    - cmd
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_shardnumsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2941,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2941,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2945,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2946,1
    - Dst: push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2947,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2947,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2952,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2954,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2954,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2955,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2955,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2963,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2963,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2964,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2964,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2973,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2973,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2974,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2974,1
    - Dst: punsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2982,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2982,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2983,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2983,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2993,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2993,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2994,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2994,1
    - Dst: sunsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3002,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3002,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3003,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3003,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3013,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3013,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3017,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3017,1
    - Dst: spublish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3022,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3022,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 2940
    functionDepth: 13
    functionLinenumber: 2940
    functionLinenumberEnd: 3029
    functionName: cluster_async::test_pub_sub_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - push_sender
    - punsubscribe
    - ProtocolVersion::supports_resp3
    - sunsubscribe
    - TestClusterContext::new_with_cluster_client_builder
    - spublish
    - get_push
    - tokio::sync::mpsc::unbounded_channel
    - clone
    - ssubscribe
    - psubscribe
    - unwrap
    - unsubscribe
    - Self::supports
    - subscribe
    - publish
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_unsubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3033,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3033,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3037,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3038,1
    - Dst: push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3039,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3039,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3042,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3043,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3045,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3047,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3056
      start: 3032
    functionDepth: 14
    functionLinenumber: 3032
    functionLinenumberEnd: 3056
    functionName: cluster_async::test_connection_is_still_usable_if_pubsub_receiver_is_dropped
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - push_sender
    - ProtocolVersion::supports_resp3
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    - clone
    - subscribe_to_channels
    - Self::async_connection
    - Self::supports
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_connection_is_still_usable_if_pubsub_receiver_is_dropped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3060,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3060,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3065,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3066,1
    - Dst: push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3067,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3067,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3070,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3071,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3073,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3073,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3082,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3082,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3094,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3094,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3099,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3099,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3112,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3112,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3117,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3117,1
    - Dst: punsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3127,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3127,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3132,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3132,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3143,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3143,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3148,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3148,1
    - Dst: sunsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3158,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3158,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3163,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3163,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3181
      start: 3059
    functionDepth: 13
    functionLinenumber: 3059
    functionLinenumberEnd: 3181
    functionName: cluster_async::test_multiple_subscribes_and_unsubscribes_work
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - push_sender
    - punsubscribe
    - ProtocolVersion::supports_resp3
    - sunsubscribe
    - TestClusterContext::new_with_cluster_client_builder
    - get_push
    - tokio::sync::mpsc::unbounded_channel
    - clone
    - ssubscribe
    - Self::async_connection
    - psubscribe
    - unwrap
    - unsubscribe
    - Self::supports
    - subscribe
    linkageType: ''
    returnType: void
    signature: async fn test_multiple_subscribes_and_unsubscribes_work()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3185,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3185,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3192,1
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3193,1
    - Dst: push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3194,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3194,1
    - Dst: Self::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3197,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3201,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3203,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3206,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3210,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3210,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3221,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3222,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3223,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3227,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3228,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3230,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3235,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3236,1
    - Dst: get_push_with_timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3237,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3237,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3237,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3260,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3261
      start: 3184
    functionDepth: 14
    functionLinenumber: 3184
    functionLinenumberEnd: 3261
    functionName: cluster_async::test_pub_sub_reconnect_after_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - push_sender
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - len
    - get_push
    - Default::default
    - unwrap
    - RedisCluster::new
    - clone
    - Self::get_ports
    - subscribe_to_channels
    - check_publishing
    - Duration::from_secs
    - drop
    - use_protocol
    - Self::supports
    - try_recv
    - Vec::clone
    - ProtocolVersion::supports_resp3
    - tokio::sync::mpsc::unbounded_channel
    - push
    - get_push_with_timeout
    - Vec::new
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_reconnect_after_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3265,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3265,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3270,1
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3271,1
    - Dst: push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3272,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3272,1
    - Dst: Self::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3275,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3277,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3279,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3281,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3281,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3289,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3289,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3291,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3289,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3304,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3305,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3306,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3316,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3318,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3319,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3321,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3316,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3332
      start: 3264
    functionDepth: 13
    functionLinenumber: 3264
    functionLinenumberEnd: 3332
    functionName: cluster_async::test_pub_sub_should_not_reconnect_if_subscription_failed
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - push_sender
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - RoutingInfo::MultiNode
    - Default::default
    - Self::async_connection
    - unwrap
    - Some
    - RedisCluster::new
    - clone
    - Self::get_ports
    - recv
    - cmd
    - route_command
    - drop
    - use_protocol
    - futures_time::time::Duration::from_millis
    - timeout
    - Vec::clone
    - ProtocolVersion::supports_resp3
    - tokio::sync::mpsc::unbounded_channel
    - unwrap_err
    - subscribe
    linkageType: ''
    returnType: void
    signature: async fn test_pub_sub_should_not_reconnect_if_subscription_failed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3343,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3345,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3345,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3346,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3346,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3347,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3347,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3347,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3347,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3347,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3353,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3353,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3353,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3353,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3360
      start: 3342
    functionDepth: 1
    functionLinenumber: 3342
    functionLinenumberEnd: 3360
    functionName: cluster_async::test_async_cluster_basic_cmd_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - '&mut Self::arg'
    - '&mut Self::clone'
    - Self::query_async
    - get_async_connection
    - Cmd::arg
    - unwrap
    - TestClusterContext::new_with_mtls
    - cmd
    - support::mtls_test::create_cluster_client_from_cluster
    - exec_async
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_basic_cmd_with_mtls()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3364,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3366,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3366,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3367,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3368,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3368,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3368,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3368,1
    - Dst: bool::is_ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3377,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3391
      start: 3363
    functionDepth: 11
    functionLinenumber: 3363
    functionLinenumberEnd: 3391
    functionName: cluster_async::test_async_cluster_should_not_connect_without_mtls_enabled
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - addr
    - Result::unwrap
    - get_async_connection
    - unwrap
    - TestClusterContext::new_with_mtls
    - connection_info
    - bool::is_ok
    - support::mtls_test::create_cluster_client_from_cluster
    - first
    linkageType: ''
    returnType: void
    signature: async fn test_async_cluster_should_not_connect_without_mtls_enabled()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut ClusterConnection::route_command'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3403,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3405,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3405,1
    - Dst: '&mut Self::take'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3405,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3406,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3403,1
    - Dst: HashMap::<String, String>::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3410,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut ClusterConnection'
    constantsTouched: []
    func_position:
      end: 3418
      start: 3402
    functionDepth: 1
    functionLinenumber: 3402
    functionLinenumberEnd: 3418
    functionName: cluster_async::check_unwatched
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - '&mut Self::take'
    - RoutingInfo::MultiNode
    - '&mut ClusterConnection::route_command'
    - Cmd::arg
    - unwrap
    - HashMap::<String, String>::from_redis_value_ref
    - cmd
    linkageType: ''
    returnType: void
    signature: 'async fn check_unwatched(con: &mut ClusterConnection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3422,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3423,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3425,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3426,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3429,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3429,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3429,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3429,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3429,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3429,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3429,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3425,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3443,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3444
      start: 3421
    functionDepth: 12
    functionLinenumber: 3421
    functionLinenumberEnd: 3444
    functionName: cluster_async::test_simple_case_success
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - get
    - async_connection
    - set
    - redis::aio::transaction_async
    - clone
    - Pipeline::set
    - ignore
    - unwrap
    - check_unwatched
    - query_async
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_simple_case_success()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3448,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3449,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3450,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3452,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3452,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3453,1
    - Dst: tokio::sync::Notify::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3453,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3454,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3455,1
    - Dst: tokio::sync::Notify::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3455,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3456,1
    - Dst: futures::future::join
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3458,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3459,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3460,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3463,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3464,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3465,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3467,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3468,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3469,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3471,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3471,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3471,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3471,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3480,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3481,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3481,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3482,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3484,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3458,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3492,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3492,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3493
      start: 3447
    functionDepth: 8
    functionLinenumber: 3447
    functionLinenumberEnd: 3493
    functionName: cluster_async::test_transaction_should_retry_on_watch
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - tokio::sync::Notify::new
    - redis::aio::transaction_async
    - AtomicUsize::new
    - unwrap
    - fetch_add
    - set
    - clone
    - Pipeline::set
    - get
    - async_connection
    - Arc::new
    - check_unwatched
    - Self::notified
    - futures::future::join
    - Self::notify_one
    - ignore
    - Self::clone
    - query_async
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_transaction_should_retry_on_watch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3497,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3498,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3500,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3500,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3502,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3503,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3506,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3508,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3511,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3511,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3514,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3502,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3522,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3522,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3523
      start: 3496
    functionDepth: 8
    functionLinenumber: 3496
    functionLinenumberEnd: 3523
    functionName: cluster_async::test_transaction_should_retry_on_none_from_closure
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - async_connection
    - redis::aio::transaction_async
    - AtomicUsize::new
    - clone
    - Arc::new
    - unwrap
    - Ok
    - check_unwatched
    - Some
    - fetch_add
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_transaction_should_retry_on_none_from_closure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3527,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3528,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3529,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3529,1
    - Dst: redis::aio::transaction_async::<_, _, (), _, _>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3531,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3532,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3535,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3537,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3540,1
    - Dst: redis::RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3540,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3547,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3531,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3559,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3559,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3560
      start: 3526
    functionDepth: 8
    functionLinenumber: 3526
    functionLinenumberEnd: 3560
    functionName: cluster_async::test_transaction_abort_if_internal_function_returns_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - async_connection
    - Err
    - AtomicUsize::new
    - redis::RedisError::from
    - clone
    - TestClusterContext::new
    - Arc::new
    - Ok
    - check_unwatched
    - unwrap_err
    - fetch_add
    - redis::aio::transaction_async::<_, _, (), _, _>
    linkageType: ''
    returnType: void
    signature: async fn test_transaction_abort_if_internal_function_returns_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/redis-rs/redis/tests/parser.rs:22,1
    - Dst: Self
      Src: /src/redis-rs/redis/tests/parser.rs:23,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/tests/parser.rs:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - g
    argTypes:
    - '&mut Gen'
    constantsTouched: []
    func_position:
      end: 24
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 24
    functionName: ArbitraryValue::arbitrary
    functionSourceFile: /src/redis-rs/redis/tests/parser.rs
    functionUses: 0
    functionsReached:
    - size
    - arbitrary_value
    - Self
    linkageType: ''
    returnType: Self
    signature: 'fn arbitrary(g: &mut Gen) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:28,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:28,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:29,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:29,1
    - Dst: Box::map
      Src: /src/redis-rs/redis/tests/parser.rs:29,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:29,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:31,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:31,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:31,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:31,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/parser.rs:34,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:34,1
    - Dst: Self
      Src: /src/redis-rs/redis/tests/parser.rs:34,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/parser.rs:34,1
    - Dst: iter().map(|x| Self(x.clone())).collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/parser.rs:34,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:35,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:36,1
    - Dst: Box::map
      Src: /src/redis-rs/redis/tests/parser.rs:36,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:37,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:37,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/parser.rs:37,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:36,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:36,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:42,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:42,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:46,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:47,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/parser.rs:54,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:54,1
    - Dst: Self
      Src: /src/redis-rs/redis/tests/parser.rs:54,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/parser.rs:54,1
    - Dst: iter().map(|x| Self(x.clone())).collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/parser.rs:54,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/parser.rs:55,1
    - Dst: Self
      Src: /src/redis-rs/redis/tests/parser.rs:55,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/parser.rs:55,1
    - Dst: PushKind::to_string
      Src: /src/redis-rs/redis/tests/parser.rs:55,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:56,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:57,1
    - Dst: Box::map
      Src: /src/redis-rs/redis/tests/parser.rs:57,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:58,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:58,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/parser.rs:58,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:57,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:57,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:64,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:64,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:64,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:64,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:66,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:66,1
    - Dst: Box::map
      Src: /src/redis-rs/redis/tests/parser.rs:66,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:66,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:67,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:67,1
    - Dst: Box::map
      Src: /src/redis-rs/redis/tests/parser.rs:67,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:67,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:69,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:69,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:74,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:75,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:82,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 26
    functionDepth: 8
    functionLinenumber: 26
    functionLinenumberEnd: 86
    functionName: ArbitraryValue::shrink
    functionSourceFile: /src/redis-rs/redis/tests/parser.rs
    functionUses: 0
    functionsReached:
    - PushKind::to_string
    - iter().map(|x| Self(x.clone())).collect::<Vec<_>>
    - map
    - Box::map
    - clone
    - shrink
    - into_iter
    - Box::new
    - iter
    - Value::SimpleString
    - Self
    - insert
    - collect
    linkageType: ''
    returnType: Box
    signature: fn shrink(&self) -> Box<dyn Iterator<Item = Self>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: arbitrary_value
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: fn arbitrary_value() -> String
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/redis-rs/redis/tests/parser.rs:146,1
    - Dst: std::cmp::min
      Src: /src/redis-rs/redis/tests/parser.rs:148,1
    - Dst: '&mut task::Context::remaining'
      Src: /src/redis-rs/redis/tests/parser.rs:148,1
    - Dst: '&mut task::Context::initialize_unfilled'
      Src: /src/redis-rs/redis/tests/parser.rs:149,1
    - Dst: '&mut task::Context::take'
      Src: /src/redis-rs/redis/tests/parser.rs:150,1
    - Dst: Self::filled
      Src: /src/redis-rs/redis/tests/parser.rs:152,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/parser.rs:152,1
    - Dst: '&mut task::Context::advance'
      Src: /src/redis-rs/redis/tests/parser.rs:153,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/tests/parser.rs:154,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/parser.rs:154,1
    - Dst: Pin<&mut Self>::waker
      Src: /src/redis-rs/redis/tests/parser.rs:158,1
    - Dst: wake_by_ref
      Src: /src/redis-rs/redis/tests/parser.rs:158,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/parser.rs:161,1
    - Dst: io::Error::new
      Src: /src/redis-rs/redis/tests/parser.rs:161,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/parser.rs:161,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/tests/parser.rs:168,1
    - Dst: Self::poll_read
      Src: /src/redis-rs/redis/tests/parser.rs:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    - '&mut ReadBuf<''_>'
    constantsTouched: []
    func_position:
      end: 170
      start: 141
    functionDepth: 8
    functionLinenumber: 141
    functionLinenumberEnd: 170
    functionName: PartialAsyncRead::poll_read
    functionSourceFile: /src/redis-rs/redis/tests/parser.rs
    functionUses: 0
    functionsReached:
    - wake_by_ref
    - Pin::new
    - len
    - Self::filled
    - std::cmp::min
    - Poll::Ready
    - '&mut task::Context::remaining'
    - Err
    - into
    - Pin<&mut Self>::waker
    - next
    - Ok
    - '&mut task::Context::advance'
    - '&mut task::Context::take'
    - io::Error::new
    - '&mut task::Context::initialize_unfilled'
    - Self::poll_read
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_read(mut self: Pin<&mut Self>,cx: &mut task::Context,buf:
      &mut ReadBuf<''_>,) -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:17,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: test_geoadd_single_tuple
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_geoadd_single_tuple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:25,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 29
    functionName: test_geoadd_multiple_tuples
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_geoadd_multiple_tuples()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:33,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:34,1
    - Dst: bool::geo_dist
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:38,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:38,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 43
    functionName: test_geodist_existing_members
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - unwrap
    - bool::geo_dist
    linkageType: ''
    returnType: void
    signature: fn test_geodist_existing_members()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:47,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:48,1
    - Dst: bool::geo_dist
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:55,1
    - Dst: bool::geo_dist
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:58,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:61,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: test_geodist_support_option
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - unwrap
    - bool::geo_dist
    linkageType: ''
    returnType: void
    signature: fn test_geodist_support_option()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:67,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:68,1
    - Dst: bool::geo_hash
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:71,1
    - Dst: bool::geo_hash
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 82
    functionName: test_geohash
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - bool::geo_hash
    linkageType: ''
    returnType: void
    signature: fn test_geohash()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:86,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:87,1
    - Dst: bool::geo_pos
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:91,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:91,1
    - Dst: bool::geo_pos
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:98,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 106
    functionName: test_geopos
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - unwrap
    - bool::geo_pos
    linkageType: ''
    returnType: void
    signature: fn test_geopos()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:110,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:111,1
    - Dst: bool::geo_pos
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:121,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: test_use_coord_struct
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - unwrap
    - bool::geo_pos
    linkageType: ''
    returnType: void
    signature: fn test_use_coord_struct()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:130,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:131,1
    - Dst: bool::geo_radius
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:136,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:136,1
    - Dst: geo_radius
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:141,1
    - Dst: RadiusOptions::default
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:141,1
    - Dst: sort_by
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:142,1
    - Dst: Ord::cmp
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:142,1
    - Dst: geo_radius
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:155,1
    - Dst: RadiusOptions::default
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:155,1
    - Dst: Self::with_dist
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:155,1
    - Dst: Self::order
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:155,1
    - Dst: geo_radius
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:167,1
    - Dst: RadiusOptions::default
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:168,1
    - Dst: Self::with_coord
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:168,1
    - Dst: Self::order
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:168,1
    - Dst: limit
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 180
      start: 129
    functionDepth: 9
    functionLinenumber: 129
    functionLinenumberEnd: 180
    functionName: test_georadius
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - sort_by
    - RadiusOptions::default
    - bool::geo_radius
    - geo_radius
    - TestContext::new
    - Ord::cmp
    - Self::with_dist
    - Self::connection
    - unwrap
    - Self::order
    - limit
    - Self::with_coord
    linkageType: ''
    returnType: void
    signature: fn test_georadius()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:184,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:185,1
    - Dst: RadiusOptions::default
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:190,1
    - Dst: Self::order
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:190,1
    - Dst: bool::geo_radius_by_member
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:191,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:194,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:194,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:194,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 183
    functionDepth: 9
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: test_georadius_by_member
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - RadiusOptions::default
    - TestContext::new
    - map
    - bool::geo_radius_by_member
    - as_str
    - Self::connection
    - unwrap
    - iter
    - Self::order
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_georadius_by_member()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:23,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 54
    functionName: test_module_bloom_single_value_updates
    functionSourceFile: /src/redis-rs/redis/tests/test_module_bloom.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_module_bloom_single_value_updates()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:59,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:60,1
    - Dst: BloomFilterInsertOptions::default
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:78,1
    - Dst: Self::nocreate
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:78,1
    - Dst: BloomFilterInsertOptions::default
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:82,1
    - Dst: Self::capacity
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:82,1
    - Dst: Self::expansion
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 58
    functionDepth: 9
    functionLinenumber: 58
    functionLinenumberEnd: 96
    functionName: test_module_bloom_multiple_value_updates
    functionSourceFile: /src/redis-rs/redis/tests/test_module_bloom.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - Self::expansion
    - Self::capacity
    - Self::nocreate
    - Self::connection
    - BloomFilterInsertOptions::default
    linkageType: ''
    returnType: void
    signature: fn test_module_bloom_multiple_value_updates()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:101,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:102,1
    - Dst: bool::key_type
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:118,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:118,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:119,1
    - Dst: bool::bf_exists
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:198,1
    - Dst: bool::bf_mexists
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:199,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 211
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 211
    functionName: test_module_bloom_infos
    functionSourceFile: /src/redis-rs/redis/tests/test_module_bloom.rs
    functionUses: 0
    functionsReached:
    - bool::bf_mexists
    - TestContext::with_modules
    - bool::key_type
    - unwrap
    - Self::connection
    - bool::bf_exists
    - Self::supports
    linkageType: ''
    returnType: void
    signature: fn test_module_bloom_infos()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:216,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:217,1
    - Dst: BloomFilterScalingOptions::ExpansionRate
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 251
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 251
    functionName: test_module_bloom_reserving
    functionSourceFile: /src/redis-rs/redis/tests/test_module_bloom.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - Self::connection
    - BloomFilterScalingOptions::ExpansionRate
    linkageType: ''
    returnType: void
    signature: fn test_module_bloom_reserving()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:256,1
    - Dst: skip_if_context_does_not_support
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:257,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:258,1
    - Dst: BloomFilterInsertOptions::default
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:261,1
    - Dst: Self::capacity
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:261,1
    - Dst: Self::error_rate
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:261,1
    - Dst: Self::expansion
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:261,1
    - Dst: BloomFilterScalingOptions::ExpansionRate
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:264,1
    - Dst: bool::bf_info
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:271,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:271,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:275,1
    - Dst: bool::bf_scandump
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:277,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:277,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:286,1
    - Dst: bool::del
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:290,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:290,1
    - Dst: bool::bf_loadchunk
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:295,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:295,1
    - Dst: bool::bf_mexists
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:299,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:299,1
    - Dst: bool::bf_info
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:303,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:303,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 255
    functionDepth: 9
    functionLinenumber: 255
    functionLinenumberEnd: 305
    functionName: test_module_bloom_dump_and_load
    functionSourceFile: /src/redis-rs/redis/tests/test_module_bloom.rs
    functionUses: 0
    functionsReached:
    - bool::bf_mexists
    - TestContext::with_modules
    - Self::expansion
    - bool::bf_scandump
    - bool::bf_loadchunk
    - bool::bf_info
    - Self::error_rate
    - Self::push
    - BloomFilterScalingOptions::ExpansionRate
    - bool::del
    - Self::capacity
    - skip_if_context_does_not_support
    - Self::connection
    - unwrap
    - BloomFilterInsertOptions::default
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_module_bloom_dump_and_load()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:310,1
    - Dst: skip_if_context_does_not_support
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:311,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:312,1
    - Dst: BloomFilterInsertOptions::default
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:315,1
    - Dst: Self::capacity
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:315,1
    - Dst: Self::error_rate
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:315,1
    - Dst: Self::expansion
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:315,1
    - Dst: BloomFilterScalingOptions::ExpansionRate
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:318,1
    - Dst: bool::bf_info
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:325,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:325,1
    - Dst: BloomFilterDumpIterator::new
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:328,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:331,1
    - Dst: ConnectionAddr::unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:331,1
    - Dst: map(|r| r.unwrap()).collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:331,1
    - Dst: bool::del
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:334,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:334,1
    - Dst: bool::bf_loadchunk
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:339,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:339,1
    - Dst: bool::bf_mexists
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:343,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:343,1
    - Dst: bool::bf_info
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:347,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_module_bloom.rs:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 309
    functionDepth: 9
    functionLinenumber: 309
    functionLinenumberEnd: 349
    functionName: test_module_bloom_dump_iterator
    functionSourceFile: /src/redis-rs/redis/tests/test_module_bloom.rs
    functionUses: 0
    functionsReached:
    - bool::bf_mexists
    - TestContext::with_modules
    - Self::expansion
    - BloomFilterDumpIterator::new
    - ConnectionAddr::unwrap
    - bool::bf_info
    - Self::error_rate
    - map
    - bool::bf_loadchunk
    - map(|r| r.unwrap()).collect::<Vec<_>>
    - BloomFilterScalingOptions::ExpansionRate
    - bool::del
    - Self::capacity
    - skip_if_context_does_not_support
    - Self::connection
    - unwrap
    - BloomFilterInsertOptions::default
    linkageType: ''
    returnType: void
    signature: fn test_module_bloom_dump_iterator()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:12,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 1
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: test_acl_whoami
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_acl_whoami()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:19,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:20,1
    - Dst: bool::acl_help
      Src: /src/redis-rs/redis/tests/test_acl.rs:21,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: test_acl_help
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - bool::acl_help
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_help()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:29,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:30,1
    - Dst: bool::acl_getuser
      Src: /src/redis-rs/redis/tests/test_acl.rs:58,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:58,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 95
    functionName: test_acl_getsetdel_users
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - unwrap
    - bool::acl_getuser
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_getsetdel_users()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:99,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:100,1
    - Dst: bool::acl_cat
      Src: /src/redis-rs/redis/tests/test_acl.rs:101,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:101,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:125,1
    - Dst: bool::acl_cat_categoryname
      Src: /src/redis-rs/redis/tests/test_acl.rs:130,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:130,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 136
    functionName: test_acl_cat
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - bool::acl_cat_categoryname
    - Self::connection
    - iter
    - bool::acl_cat
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_cat()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:140,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:141,1
    - Dst: bool::acl_genpass
      Src: /src/redis-rs/redis/tests/test_acl.rs:142,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:142,1
    - Dst: bool::acl_genpass_bits
      Src: /src/redis-rs/redis/tests/test_acl.rs:145,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: test_acl_genpass
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - bool::acl_genpass_bits
    - TestContext::new
    - bool::acl_genpass
    - Self::connection
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_genpass()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:151,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:152,1
    - Dst: bool::acl_log
      Src: /src/redis-rs/redis/tests/test_acl.rs:153,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 156
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 156
    functionName: test_acl_log
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - Self::connection
    - bool::acl_log
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_log()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_acl.rs:161,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:163,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:165,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:165,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:165,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:165,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:165,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_acl.rs:165,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:165,1
    - Dst: acl_dryrun
      Src: /src/redis-rs/redis/tests/test_acl.rs:179,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_acl.rs:180,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 186
    functionName: test_acl_dryrun
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - acl_dryrun
    - arg
    - run_test_if_version_supported
    - exec
    - unwrap
    - connection
    - String::from
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_acl_dryrun()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_acl.rs:189,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:190,1
    - Dst: Option::acl_getuser
      Src: /src/redis-rs/redis/tests/test_acl.rs:221,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:221,1
    - Dst: redis::ConnectionInfo::expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 263
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 263
    functionName: test_acl_info
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - Option::acl_getuser
    - run_test_if_version_supported
    - redis::ConnectionInfo::expect
    - connection
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_acl.rs:266,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:267,1
    - Dst: Option::acl_setuser_rules
      Src: /src/redis-rs/redis/tests/test_acl.rs:279,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:279,1
    - Dst: Option::acl_getuser
      Src: /src/redis-rs/redis/tests/test_acl.rs:281,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:281,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 309
    functionName: test_acl_sample_info
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - Option::acl_setuser_rules
    - Option::acl_getuser
    - run_test_if_version_supported
    - connection
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_acl_sample_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_once
      Src: /src/redis-rs/redis/tests/test_acl.rs:339,1
    - Dst: env_logger::builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:340,1
    - Dst: is_test
      Src: /src/redis-rs/redis/tests/test_acl.rs:341,1
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_acl.rs:342,1
    - Dst: String::is_err
      Src: /src/redis-rs/redis/tests/test_acl.rs:342,1
    - Dst: filter_level
      Src: /src/redis-rs/redis/tests/test_acl.rs:343,1
    - Dst: init
      Src: /src/redis-rs/redis/tests/test_acl.rs:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 347
      start: 338
    functionDepth: 11
    functionLinenumber: 338
    functionLinenumberEnd: 347
    functionName: token_based_authentication_acl_tests::init_logger
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - init
    - env_logger::builder
    - String::is_err
    - filter_level
    - is_test
    - call_once
    linkageType: ''
    returnType: void
    signature: fn init_logger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:629,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:630,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:632,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:632,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:634,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:634,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:634,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/tests/test_acl.rs:638,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:638,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:638,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:638,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:638,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:638,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:638,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:638,1
    - Dst: MockStreamingCredentialsProvider::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:650,1
    - Dst: Self::start
      Src: /src/redis-rs/redis/tests/test_acl.rs:651,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:652,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:652,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:655,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:655,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:662,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:662,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_acl.rs:662,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:662,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:671,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:671,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:676,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:676,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:676,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:676,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:676,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:683,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:683,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 628
    functionDepth: 8
    functionLinenumber: 628
    functionLinenumberEnd: 689
    functionName: token_based_authentication_acl_tests::test_authentication_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - '&mut Self::clone'
    - Self::start
    - Self::query_async
    - TestContext::new
    - arg
    - req_packed_command
    - init_logger
    - Self::async_connection
    - unwrap
    - MockStreamingCredentialsProvider::new
    - redis::AsyncConnectionConfig::new
    - '&mut Self::query_async'
    - query_async
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn test_authentication_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TestContext::async_connection'
      Src: /src/redis-rs/redis/tests/test_acl.rs:693,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:693,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:694,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/tests/test_acl.rs:695,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:695,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:695,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:695,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:695,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:695,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:695,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:695,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - '&TestContext'
    constantsTouched: []
    func_position:
      end: 705
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 705
    functionName: token_based_authentication_acl_tests::add_users_with_jwt_tokens
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&TestContext::async_connection'
    - redis::Cmd::arg
    - '&mut Self::arg'
    - arg
    - req_packed_command
    - unwrap
    - iter
    linkageType: ''
    returnType: void
    signature: 'async fn add_users_with_jwt_tokens(ctx: &TestContext)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:709,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:710,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:711,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:711,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:711,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:712,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:712,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:712,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:716,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:720,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:721,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:722,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:722,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:725,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:725,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:732,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:732,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:738,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:738,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:738,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:741,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:741,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:747,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:747,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:752,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:752,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:752,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:755,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:755,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:761,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:761,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 765
      start: 708
    functionDepth: 4
    functionLinenumber: 708
    functionLinenumberEnd: 765
    functionName: token_based_authentication_acl_tests::token_rotation_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::clone'
    - MockStreamingCredentialsProvider::multiple_tokens
    - Self::query_async
    - TestContext::new
    - into
    - init_logger
    - add_users_with_jwt_tokens
    - start
    - redis::AsyncConnectionConfig::new
    - unwrap
    - sleep
    - Duration::from_millis
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn token_rotation_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:769,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:770,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:771,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:771,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:771,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:775,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens_with_errors
      Src: /src/redis-rs/redis/tests/test_acl.rs:780,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:781,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:782,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:782,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:785,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:785,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:792,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:792,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:798,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:798,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:798,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:800,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:800,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:807,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:807,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:807,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:809,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:809,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:816,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:816,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:816,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:818,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:818,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 824
      start: 768
    functionDepth: 4
    functionLinenumber: 768
    functionLinenumberEnd: 824
    functionName: token_based_authentication_acl_tests::test_authentication_error_handling_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::clone'
    - Self::query_async
    - TestContext::new
    - into
    - init_logger
    - add_users_with_jwt_tokens
    - start
    - redis::AsyncConnectionConfig::new
    - unwrap
    - sleep
    - Duration::from_millis
    - MockStreamingCredentialsProvider::multiple_tokens_with_errors
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn test_authentication_error_handling_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:828,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:829,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:830,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:830,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:830,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:836,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:840,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:841,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:844,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:844,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:848,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:848,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:853,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:853,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:858,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:858,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:865,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:865,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:867,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:867,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:873,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:873,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:873,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:878,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:878,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:880,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:880,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 891
      start: 827
    functionDepth: 4
    functionLinenumber: 827
    functionLinenumberEnd: 891
    functionName: token_based_authentication_acl_tests::test_multiple_connections_from_one_client_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::clone'
    - MockStreamingCredentialsProvider::multiple_tokens
    - Self::query_async
    - TestContext::new
    - into
    - init_logger
    - add_users_with_jwt_tokens
    - into_iter
    - start
    - redis::AsyncConnectionConfig::new
    - unwrap
    - sleep
    - Duration::from_millis
    - enumerate
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn test_multiple_connections_from_one_client_sharing_a_single_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:895,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:896,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:897,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:897,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:897,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:903,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:907,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:908,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:911,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:911,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_acl.rs:914,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_acl.rs:914,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:914,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:918,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:918,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:923,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:923,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:929,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:929,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:931,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:931,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:937,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:937,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:937,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:942,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:942,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:944,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:944,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 955
      start: 894
    functionDepth: 11
    functionLinenumber: 894
    functionLinenumberEnd: 955
    functionName: token_based_authentication_acl_tests::test_multiple_clients_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - MockStreamingCredentialsProvider::multiple_tokens
    - redis::AsyncConnectionConfig::new
    - unwrap
    - connection_info
    - '&mut Self::clone'
    - TestContext::new
    - init_logger
    - add_users_with_jwt_tokens
    - into_iter
    - start
    - sleep
    - get_multiplexed_async_connection_with_config
    - redis::Cmd::arg
    - redis::Client::open
    - RedisResult::unwrap
    - redis::cmd
    - Self::query_async
    - into
    - Duration::from_millis
    - enumerate
    linkageType: ''
    returnType: void
    signature: async fn test_multiple_clients_sharing_a_single_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:966,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:967,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:971,1
    - Dst: MockStreamingCredentialsProvider::with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:975,1
    - Dst: MockProviderConfig::valid_then_invalid_credentials
      Src: /src/redis-rs/redis/tests/test_acl.rs:976,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:978,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:981,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:981,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:984,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:984,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:991,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:991,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:991,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:992,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:992,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:998,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:998,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:998,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1002,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1002,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1007,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1007,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/tests/test_acl.rs:1008,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1009,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1009,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1009,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1016,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 965
    functionDepth: 15
    functionLinenumber: 965
    functionLinenumberEnd: 1025
    functionName: token_based_authentication_acl_tests::test_server_rejects_after_user_invalidated
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - Self::async_connection
    - redis::AsyncConnectionConfig::new
    - unwrap
    - '&mut Self::arg'
    - '&mut Self::clone'
    - TestContext::new
    - init_logger
    - add_users_with_jwt_tokens
    - start
    - sleep
    - get_multiplexed_async_connection_with_config
    - redis::Cmd::arg
    - MockProviderConfig::valid_then_invalid_credentials
    - redis::cmd
    - Self::query_async
    - into
    - req_packed_command
    - MockStreamingCredentialsProvider::with_config
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn test_server_rejects_after_user_invalidated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_acl.rs:1035,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_acl.rs:1035,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1035,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1037,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1037,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1037,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1037,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1037,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1037,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1037,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1037,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:1037,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 3
    argNames:
    - cluster
    - username
    - token
    argTypes:
    - '&TestClusterContext'
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1048
      start: 1033
    functionDepth: 11
    functionLinenumber: 1033
    functionLinenumberEnd: 1048
    functionName: token_based_authentication_acl_tests::add_user_on_all_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - RedisServer::connection_info
    - redis::Cmd::arg
    - '&mut Self::arg'
    - redis::Client::open
    - arg
    - unwrap
    - expect
    - get_multiplexed_async_connection
    - exec_async
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'async fn add_user_on_all_nodes(cluster: &TestClusterContext, username:
      &str, token: &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:1052,1
    - Dst: add_user_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - '&TestClusterContext'
    constantsTouched: []
    func_position:
      end: 1055
      start: 1051
    functionDepth: 12
    functionLinenumber: 1051
    functionLinenumberEnd: 1055
    functionName: token_based_authentication_acl_tests::add_users_with_jwt_tokens_on_all_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - add_user_on_all_nodes
    - iter
    linkageType: ''
    returnType: void
    signature: 'async fn add_users_with_jwt_tokens_on_all_nodes(cluster: &TestClusterContext)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:1059,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1060,1
    - Dst: MockStreamingCredentialsProvider::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:1062,1
    - Dst: Self::start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1063,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1064,1
    - Dst: add_user_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1068,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1070,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1072,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1072,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1072,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1072,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1079,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1079,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1079,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1079,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:1079,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1086,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1086,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1086,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:1086,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1058
    functionDepth: 8
    functionLinenumber: 1058
    functionLinenumberEnd: 1093
    functionName: token_based_authentication_acl_tests::test_cluster_authentication_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - async_connection
    - redis::Cmd::arg
    - TestClusterContext::new_with_cluster_client_builder
    - Self::start
    - '&mut Self::arg'
    - init_logger
    - set_credentials_provider
    - MockStreamingCredentialsProvider::new
    - '&mut Self::query_async'
    - unwrap
    - add_user_on_all_nodes
    - exec_async
    - expect
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_authentication_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:1097,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1098,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:1100,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1101,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1102,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1106,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1108,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1108,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1108,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1109,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1111,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1111,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1114,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1114,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1114,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1116,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1116,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1119,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1119,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1119,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1121,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1096
    functionDepth: 13
    functionLinenumber: 1096
    functionLinenumberEnd: 1123
    functionName: token_based_authentication_acl_tests::test_cluster_token_rotation_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - async_connection
    - redis::Cmd::arg
    - TestClusterContext::new_with_cluster_client_builder
    - MockStreamingCredentialsProvider::multiple_tokens
    - '&mut Self::clone'
    - add_users_with_jwt_tokens_on_all_nodes
    - Self::query_async
    - into
    - init_logger
    - set_credentials_provider
    - start
    - unwrap
    - sleep
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_token_rotation_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:1128,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1129,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens_with_errors
      Src: /src/redis-rs/redis/tests/test_acl.rs:1132,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1133,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1134,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1138,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1140,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1140,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1140,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1141,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1143,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1143,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1147,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1147,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1147,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1148,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1148,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1152,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1152,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1152,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1153,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1153,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1157,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1157,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1157,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1158,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1158,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1126
    functionDepth: 13
    functionLinenumber: 1126
    functionLinenumberEnd: 1160
    functionName: token_based_authentication_acl_tests::test_cluster_authentication_error_handling_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - async_connection
    - redis::Cmd::arg
    - TestClusterContext::new_with_cluster_client_builder
    - '&mut Self::clone'
    - add_users_with_jwt_tokens_on_all_nodes
    - Self::query_async
    - into
    - init_logger
    - set_credentials_provider
    - start
    - unwrap
    - sleep
    - Duration::from_millis
    - MockStreamingCredentialsProvider::multiple_tokens_with_errors
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_authentication_error_handling_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:1164,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1165,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:1167,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1168,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1169,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1173,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1175,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1175,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1175,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1176,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1176,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1177,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1177,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:1179,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:1179,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1180,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1180,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1182,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1182,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1182,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_acl.rs:1184,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1182,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1190,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1190,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1190,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:1192,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:1192,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1193,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1193,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1195,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1195,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1195,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1195,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1202
      start: 1163
    functionDepth: 13
    functionLinenumber: 1163
    functionLinenumberEnd: 1202
    functionName: token_based_authentication_acl_tests::test_cluster_multiple_connections_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - to_string
    - MockStreamingCredentialsProvider::multiple_tokens
    - unwrap
    - '&mut Self::query_async'
    - '&mut Self::arg'
    - '&mut Self::clone'
    - init_logger
    - into_iter
    - start
    - sleep
    - exec_async
    - redis::Cmd::arg
    - TestClusterContext::new_with_cluster_client_builder
    - get_async_connection
    - redis::cmd
    - add_users_with_jwt_tokens_on_all_nodes
    - Self::query_async
    - into
    - set_credentials_provider
    - Duration::from_millis
    - enumerate
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_multiple_connections_sharing_a_single_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:1206,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:1207,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1209,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:1211,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1212,1
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:1214,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_acl.rs:1214,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1214,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_acl.rs:1215,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/tests/test_acl.rs:1214,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1214,1
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:1218,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_acl.rs:1218,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1218,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/tests/test_acl.rs:1218,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1218,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1223,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1223,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1223,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1224,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1225,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1225,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:1227,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:1227,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1228,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1230,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1230,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1230,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_acl.rs:1232,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1230,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1230,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1238,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1238,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1238,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:1240,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:1240,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1241,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1241,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1243,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1243,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1243,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1243,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1250
      start: 1205
    functionDepth: 13
    functionLinenumber: 1205
    functionLinenumberEnd: 1250
    functionName: token_based_authentication_acl_tests::test_cluster_multiple_clients_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - Self::build
    - to_string
    - MockStreamingCredentialsProvider::multiple_tokens
    - unwrap
    - '&mut Self::query_async'
    - ClusterClientBuilder::new
    - '&mut Self::arg'
    - '&mut Self::clone'
    - init_logger
    - clone
    - into_iter
    - start
    - sleep
    - exec_async
    - redis::Cmd::arg
    - get_async_connection
    - RedisResult::unwrap
    - redis::cmd
    - add_users_with_jwt_tokens_on_all_nodes
    - Self::query_async
    - into
    - Duration::from_millis
    - enumerate
    - TestClusterContext::new
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_multiple_clients_sharing_a_single_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_acl.rs:1255,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_acl.rs:1255,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1255,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1256,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1256,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1257,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1257,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1257,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1257,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:1257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - cluster
    - username
    argTypes:
    - '&TestClusterContext'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1264
      start: 1253
    functionDepth: 11
    functionLinenumber: 1253
    functionLinenumberEnd: 1264
    functionName: token_based_authentication_acl_tests::delete_user_on_all_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - RedisServer::connection_info
    - redis::Cmd::arg
    - '&mut Self::arg'
    - redis::Client::open
    - unwrap
    - expect
    - get_multiplexed_async_connection
    - exec_async
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'async fn delete_user_on_all_nodes(cluster: &TestClusterContext, username:
      &str)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:1275,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1276,1
    - Dst: MockStreamingCredentialsProvider::with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:1278,1
    - Dst: MockProviderConfig::valid_then_invalid_credentials
      Src: /src/redis-rs/redis/tests/test_acl.rs:1279,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1281,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1282,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1286,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1288,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1288,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1288,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1289,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1292,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1292,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1296,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1296,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1296,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1299,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1299,1
    - Dst: delete_user_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1303,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1307,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1312
      start: 1274
    functionDepth: 15
    functionLinenumber: 1274
    functionLinenumberEnd: 1312
    functionName: token_based_authentication_acl_tests::test_cluster_server_rejects_after_user_invalidated
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - MockProviderConfig::valid_then_invalid_credentials
    - redis::cmd
    - async_connection
    - redis::Cmd::arg
    - TestClusterContext::new_with_cluster_client_builder
    - '&mut Self::clone'
    - add_users_with_jwt_tokens_on_all_nodes
    - Self::query_async
    - into
    - init_logger
    - MockStreamingCredentialsProvider::with_config
    - set_credentials_provider
    - start
    - unwrap
    - sleep
    - Duration::from_millis
    - delete_user_on_all_nodes
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_server_rejects_after_user_invalidated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:26,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:27,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_module_json.rs:39,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_module_json.rs:42,1
    - Dst: json_set::<_, _, _, bool>
      Src: /src/redis-rs/redis/tests/test_module_json.rs:44,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_module_json.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 53
      start: 25
    functionDepth: 8
    functionLinenumber: 25
    functionLinenumberEnd: 53
    functionName: test_module_json_serialize_error
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - TestContext::with_modules
    - json_set::<_, _, _, bool>
    - Self::connection
    - unwrap_err
    - insert
    linkageType: ''
    returnType: void
    signature: fn test_module_json_serialize_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:57,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:58,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:60,1
    - Dst: bool::json_arr_append
      Src: /src/redis-rs/redis/tests/test_module_json.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: test_module_json_arr_append
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - TestContext::with_modules
    - Self::connection
    - bool::json_arr_append
    linkageType: ''
    returnType: void
    signature: fn test_module_json_arr_append()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:75,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:76,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:78,1
    - Dst: bool::json_arr_index
      Src: /src/redis-rs/redis/tests/test_module_json.rs:86,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:90,1
    - Dst: bool::json_arr_index_ss
      Src: /src/redis-rs/redis/tests/test_module_json.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 102
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 102
    functionName: test_module_json_arr_index
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - bool::json_arr_index_ss
    - bool::json_set
    - Self::connection
    - bool::json_arr_index
    linkageType: ''
    returnType: void
    signature: fn test_module_json_arr_index()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:106,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:107,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:109,1
    - Dst: bool::json_arr_insert
      Src: /src/redis-rs/redis/tests/test_module_json.rs:117,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:121,1
    - Dst: bool::json_arr_insert
      Src: /src/redis-rs/redis/tests/test_module_json.rs:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 132
    functionName: test_module_json_arr_insert
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - bool::json_arr_insert
    - TestContext::with_modules
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_module_json_arr_insert()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:136,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:137,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:139,1
    - Dst: bool::json_arr_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:147,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:151,1
    - Dst: bool::json_arr_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 162
    functionName: test_module_json_arr_len
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - TestContext::with_modules
    - Self::connection
    - bool::json_arr_len
    linkageType: ''
    returnType: void
    signature: fn test_module_json_arr_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:166,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:167,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:169,1
    - Dst: bool::json_arr_pop
      Src: /src/redis-rs/redis/tests/test_module_json.rs:177,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:188,1
    - Dst: bool::json_arr_pop
      Src: /src/redis-rs/redis/tests/test_module_json.rs:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 206
    functionName: test_module_json_arr_pop
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - TestContext::with_modules
    - Self::connection
    - bool::json_arr_pop
    linkageType: ''
    returnType: void
    signature: fn test_module_json_arr_pop()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:210,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:211,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:213,1
    - Dst: bool::json_arr_trim
      Src: /src/redis-rs/redis/tests/test_module_json.rs:221,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:225,1
    - Dst: bool::json_arr_trim
      Src: /src/redis-rs/redis/tests/test_module_json.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 236
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 236
    functionName: test_module_json_arr_trim
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - TestContext::with_modules
    - Self::connection
    - bool::json_arr_trim
    linkageType: ''
    returnType: void
    signature: fn test_module_json_arr_trim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:240,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:241,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:243,1
    - Dst: bool::json_clear
      Src: /src/redis-rs/redis/tests/test_module_json.rs:247,1
    - Dst: bool::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 261
    functionName: test_module_json_clear
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - bool::json_clear
    - bool::json_set
    - Self::connection
    - bool::json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_clear()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:265,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:266,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:268,1
    - Dst: bool::json_del
      Src: /src/redis-rs/redis/tests/test_module_json.rs:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 279
    functionName: test_module_json_del
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - TestContext::with_modules
    - Self::connection
    - bool::json_del
    linkageType: ''
    returnType: void
    signature: fn test_module_json_del()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:283,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:284,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:286,1
    - Dst: bool::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:294,1
    - Dst: bool::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:298,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_module_json.rs:300,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_module_json.rs:300,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_module_json.rs:301,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_module_json.rs:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 305
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 305
    functionName: test_module_json_get
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - bool::json_set
    - Self::connection
    - Ok
    - bool::json_get
    - '&str::into'
    linkageType: ''
    returnType: void
    signature: fn test_module_json_get()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:309,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:310,1
    - Dst: bool::json_mset
      Src: /src/redis-rs/redis/tests/test_module_json.rs:312,1
    - Dst: bool::json_mget
      Src: /src/redis-rs/redis/tests/test_module_json.rs:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 339
    functionName: test_module_json_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - Self::connection
    - bool::json_mget
    - bool::json_mset
    linkageType: ''
    returnType: void
    signature: fn test_module_json_mget()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:343,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:344,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:346,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_module_json.rs:354,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_module_json.rs:354,1
    - Dst: bool::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:356,1
    - Dst: bool::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:359,1
    - Dst: bool::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:365,1
    - Dst: bool::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 373
    functionName: test_module_json_num_incr_by
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - bool::json_num_incr_by
    - bool::json_set
    - supports_resp3
    - Self::connection
    - Self::supports
    linkageType: ''
    returnType: void
    signature: fn test_module_json_num_incr_by()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:377,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:378,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:380,1
    - Dst: bool::json_obj_keys
      Src: /src/redis-rs/redis/tests/test_module_json.rs:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 400
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 400
    functionName: test_module_json_obj_keys
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - bool::json_obj_keys
    - TestContext::with_modules
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_module_json_obj_keys()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:404,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:405,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:407,1
    - Dst: bool::json_obj_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 418
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 418
    functionName: test_module_json_obj_len
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - TestContext::with_modules
    - Self::connection
    - bool::json_obj_len
    linkageType: ''
    returnType: void
    signature: fn test_module_json_obj_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:422,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:423,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 428
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 428
    functionName: test_module_json_set
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - TestContext::with_modules
    - Self::connection
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:432,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:433,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:435,1
    - Dst: bool::json_str_append
      Src: /src/redis-rs/redis/tests/test_module_json.rs:443,1
    - Dst: bool::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 431
    functionDepth: 2
    functionLinenumber: 431
    functionLinenumberEnd: 453
    functionName: test_module_json_str_append
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - bool::json_str_append
    - bool::json_set
    - Self::connection
    - bool::json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_str_append()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:457,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:458,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:460,1
    - Dst: bool::json_str_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 456
    functionDepth: 2
    functionLinenumber: 456
    functionLinenumberEnd: 471
    functionName: test_module_json_str_len
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - TestContext::with_modules
    - Self::connection
    - bool::json_str_len
    linkageType: ''
    returnType: void
    signature: fn test_module_json_str_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:475,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:476,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:478,1
    - Dst: bool::json_toggle
      Src: /src/redis-rs/redis/tests/test_module_json.rs:482,1
    - Dst: bool::json_toggle
      Src: /src/redis-rs/redis/tests/test_module_json.rs:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 487
    functionName: test_module_json_toggle
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - bool::json_set
    - TestContext::with_modules
    - Self::connection
    - bool::json_toggle
    linkageType: ''
    returnType: void
    signature: fn test_module_json_toggle()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:491,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:492,1
    - Dst: bool::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:494,1
    - Dst: bool::json_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:502,1
    - Dst: bool::json_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:503,1
    - Dst: bool::json_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:504,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_module_json.rs:506,1
    - Dst: Self::supports
      Src: /src/redis-rs/redis/tests/test_module_json.rs:506,1
    - Dst: bool::key_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 490
    functionDepth: 3
    functionLinenumber: 490
    functionLinenumberEnd: 542
    functionName: test_module_json_type
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - bool::key_type
    - bool::json_type
    - bool::json_set
    - supports_resp3
    - Self::connection
    - Self::supports
    linkageType: ''
    returnType: void
    signature: fn test_module_json_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:546,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:547,1
    - Dst: bool::json_set_options
      Src: /src/redis-rs/redis/tests/test_module_json.rs:549,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:553,1
    - Dst: bool::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 545
    functionDepth: 9
    functionLinenumber: 545
    functionLinenumberEnd: 559
    functionName: test_module_json_set_options_json_value
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - bool::json_set_options
    - JsonSetOptions::default
    - Self::connection
    - bool::json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_options_json_value()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:563,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:564,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:566,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:566,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:567,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:567,1
    - Dst: bool::json_set_options
      Src: /src/redis-rs/redis/tests/test_module_json.rs:571,1
    - Dst: bool::exists
      Src: /src/redis-rs/redis/tests/test_module_json.rs:572,1
    - Dst: bool::exists
      Src: /src/redis-rs/redis/tests/test_module_json.rs:580,1
    - Dst: bool::json_set_options
      Src: /src/redis-rs/redis/tests/test_module_json.rs:585,1
    - Dst: bool::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:586,1
    - Dst: bool::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 596
      start: 562
    functionDepth: 9
    functionLinenumber: 562
    functionLinenumberEnd: 596
    functionName: test_module_json_set_options_nx_xx
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::with_modules
    - bool::exists
    - Self::conditional_set
    - JsonSetOptions::default
    - bool::json_set_options
    - Self::connection
    - bool::json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_options_nx_xx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:610,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:611,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - fpha_type
    argTypes:
    - FphaType
    constantsTouched: []
    func_position:
      end: 625
      start: 608
    functionDepth: 3
    functionLinenumber: 608
    functionLinenumberEnd: 625
    functionName: test_module_json_set_fpha_roundtrip
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: 'fn test_module_json_set_fpha_roundtrip(#[case] fpha_type: FphaType)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:630,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:631,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 645
      start: 628
    functionDepth: 3
    functionLinenumber: 628
    functionLinenumberEnd: 645
    functionName: test_module_json_set_fpha_empty_payload
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_empty_payload()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:650,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:651,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:654,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/tests/test_module_json.rs:654,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:654,1
    - Dst: json_set_options
      Src: /src/redis-rs/redis/tests/test_module_json.rs:657,1
    - Dst: exists
      Src: /src/redis-rs/redis/tests/test_module_json.rs:658,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:662,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/tests/test_module_json.rs:662,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:662,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 671
      start: 648
    functionDepth: 9
    functionLinenumber: 648
    functionLinenumberEnd: 671
    functionName: test_module_json_set_fpha_with_existence_check
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - json_set_options
    - exists
    - run_test_if_version_supported
    - Self::conditional_set
    - Self::fpha
    - JsonSetOptions::default
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_with_existence_check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:678,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:679,1
    - Dst: json_set_options
      Src: /src/redis-rs/redis/tests/test_module_json.rs:681,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:685,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/tests/test_module_json.rs:685,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_module_json.rs:687,1
    - Dst: exists
      Src: /src/redis-rs/redis/tests/test_module_json.rs:693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 695
      start: 676
    functionDepth: 9
    functionLinenumber: 676
    functionLinenumberEnd: 695
    functionName: test_module_json_set_fpha_fp16_overflow
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - json_set_options
    - exists
    - run_test_if_version_supported
    - Self::fpha
    - JsonSetOptions::default
    - connection
    - unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_fp16_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:704,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:705,1
    - Dst: json_set_options
      Src: /src/redis-rs/redis/tests/test_module_json.rs:707,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:711,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/tests/test_module_json.rs:711,1
    - Dst: exists
      Src: /src/redis-rs/redis/tests/test_module_json.rs:718,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 720
      start: 702
    functionDepth: 9
    functionLinenumber: 702
    functionLinenumberEnd: 720
    functionName: test_module_json_set_fpha_fp16_partial_overflow
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - json_set_options
    - exists
    - run_test_if_version_supported
    - Self::fpha
    - JsonSetOptions::default
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_fp16_partial_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:726,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:727,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 741
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 741
    functionName: test_module_json_set_fpha_fp16_max_boundary
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_fp16_max_boundary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:747,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:748,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 762
      start: 745
    functionDepth: 3
    functionLinenumber: 745
    functionLinenumberEnd: 762
    functionName: test_module_json_set_fpha_fp32_max_boundary
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_fp32_max_boundary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:769,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:770,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 784
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 784
    functionName: test_module_json_set_fpha_bf16_above_fp16_range
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_bf16_above_fp16_range()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:791,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:792,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 806
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 806
    functionName: test_module_json_set_fpha_fp32_scientific_notation
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_fp32_scientific_notation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:816,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:817,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 831
      start: 814
    functionDepth: 3
    functionLinenumber: 814
    functionLinenumberEnd: 831
    functionName: test_module_json_set_fpha_bf16_truncation
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_bf16_truncation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:838,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:839,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 853
      start: 836
    functionDepth: 3
    functionLinenumber: 836
    functionLinenumberEnd: 853
    functionName: test_module_json_set_fpha_fp16_truncation
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_fp16_truncation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:861,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:862,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 877
      start: 859
    functionDepth: 3
    functionLinenumber: 859
    functionLinenumberEnd: 877
    functionName: test_module_json_set_fpha_matrix
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_matrix()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:883,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:884,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 903
      start: 881
    functionDepth: 3
    functionLinenumber: 881
    functionLinenumberEnd: 903
    functionName: test_module_json_set_fpha_object_with_array_fields
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_object_with_array_fields()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:912,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:913,1
    - Dst: json_set_options
      Src: /src/redis-rs/redis/tests/test_module_json.rs:916,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/tests/test_module_json.rs:920,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/tests/test_module_json.rs:920,1
    - Dst: exists
      Src: /src/redis-rs/redis/tests/test_module_json.rs:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 929
      start: 910
    functionDepth: 9
    functionLinenumber: 910
    functionLinenumberEnd: 929
    functionName: test_module_json_set_fpha_nested_partial_overflow
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - json_set_options
    - exists
    - run_test_if_version_supported
    - Self::fpha
    - JsonSetOptions::default
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_nested_partial_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_module_json.rs:935,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:936,1
    - Dst: json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 950
      start: 933
    functionDepth: 3
    functionLinenumber: 933
    functionLinenumberEnd: 950
    functionName: test_module_json_set_fpha_scalar
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - connection
    - json_get
    linkageType: ''
    returnType: void
    signature: fn test_module_json_set_fpha_scalar()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_once
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:25,1
    - Dst: env_logger::builder
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:26,1
    - Dst: is_test
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:27,1
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:28,1
    - Dst: String::is_err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:28,1
    - Dst: filter_level
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:29,1
    - Dst: init
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 11
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: init_logger
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 14
    functionsReached:
    - std::env::var
    - init
    - env_logger::builder
    - String::is_err
    - filter_level
    - is_test
    - call_once
    linkageType: ''
    returnType: void
    signature: fn init_logger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: futures_util::stream::once
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:43,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:44,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:44,1
    - Dst: boxed
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 50
    functionName: ImmediatelyFailingCredentialsProvider::subscribe
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - Err
    - RedisError::from
    - boxed
    - futures_util::stream::once
    linkageType: ''
    returnType: Pin
    signature: fn subscribe(&self) -> Pin<Box<dyn Stream<Item = RedisResult<BasicAuth>>
      + Send + 'static>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: futures_util::stream::empty
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:61,1
    - Dst: bool::boxed
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: EmptyStreamCredentialsProvider::subscribe
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - futures_util::stream::empty
    - bool::boxed
    linkageType: ''
    returnType: Pin
    signature: fn subscribe(&self) -> Pin<Box<dyn Stream<Item = RedisResult<BasicAuth>>
      + Send + 'static>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:72,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:73,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:76,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:76,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:78,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 71
    functionDepth: 12
    functionLinenumber: 71
    functionLinenumberEnd: 90
    functionName: credentials_provider_failures_tests::test_connection_fails_when_initial_credentials_request_returns_error
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - TestContext::new
    - init_logger
    - redis::AsyncConnectionConfig::new
    - unwrap_err
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn test_connection_fails_when_initial_credentials_request_returns_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:94,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:95,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:98,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:98,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:100,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 93
    functionDepth: 12
    functionLinenumber: 93
    functionLinenumberEnd: 112
    functionName: credentials_provider_failures_tests::test_connection_fails_when_credentials_stream_closes
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - Self::set_credentials_provider
    - TestContext::new
    - init_logger
    - redis::AsyncConnectionConfig::new
    - unwrap_err
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: void
    signature: async fn test_connection_fails_when_credentials_stream_closes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:121,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:122,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:124,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:128,1
    - Dst: err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:135,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 12
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: credentials_provider_failures_tests::test_cluster_connection_fails_when_credentials_provider_returns_error
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_cluster_client_builder
    - get_async_connection
    - init_logger
    - set_credentials_provider
    - unwrap
    - err
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_connection_fails_when_credentials_provider_returns_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:141,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:142,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:144,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:148,1
    - Dst: err
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:155,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 12
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: credentials_provider_failures_tests::test_cluster_connection_fails_when_credentials_stream_is_empty
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_cluster_client_builder
    - get_async_connection
    - init_logger
    - set_credentials_provider
    - unwrap
    - err
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_connection_fails_when_credentials_stream_is_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockConnection::execute_buffered_cmd
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:35,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&redis::Cmd'
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: MockConnection::execute_cmd
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - Cmd::get_packed_command
    - MockConnection::execute_buffered_cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'fn execute_cmd(&self, cmd: &redis::Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:39,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: MockConnection::execute_buffered_cmd
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 1
    functionsReached:
    - String::from_utf8_lossy
    - expect_err
    linkageType: ''
    returnType: RedisResult
    signature: 'fn execute_buffered_cmd(&self, cmd: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::ConnectionInfo::into_connection_info
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:55,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:55,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:57,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:61,1
    - Dst: future::ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:61,1
    - Dst: read
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:62,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:62,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:62,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:62,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - info
    - _config
    argTypes:
    - T
    - redis::AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 70
      start: 48
    functionDepth: 12
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: MockConnection::connect_with_config
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - read
    - get
    - redis::ConnectionInfo::into_connection_info
    - future::ok
    - unwrap_or_else
    - clone
    - unwrap
    - redis::ConnectionInfo::addr
    - Box::pin
    - RedisResult::unwrap
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn connect_with_config<''a, T>(info: T,_config: redis::AsyncConnectionConfig,)
      -> RedisFuture<''a, Self>whereT: IntoConnectionInfo + Send + ''a,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::ConnectionInfo::into_connection_info
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:78,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:78,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:80,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:84,1
    - Dst: read
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:85,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:85,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:85,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:85,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - info
    - _timeout
    argTypes:
    - T
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 93
      start: 74
    functionDepth: 12
    functionLinenumber: 74
    functionLinenumberEnd: 93
    functionName: MockConnection::connect
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - read
    - get
    - redis::ConnectionInfo::into_connection_info
    - unwrap_or_else
    - clone
    - unwrap
    - Ok
    - redis::ConnectionInfo::addr
    - RedisResult::unwrap
    linkageType: ''
    returnType: RedisResult
    signature: 'fn connect<''a, T>(info: T, _timeout: Option<Duration>) -> RedisResult<Self>whereT:
      IntoConnectionInfo,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: MockConnection::send_packed_command
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn send_packed_command(&mut self, _cmd: &[u8]) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _dur
    argTypes:
    - Option<std::time::Duration>
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: MockConnection::set_write_timeout
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn set_write_timeout(&self, _dur: Option<std::time::Duration>) ->
      RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _dur
    argTypes:
    - Option<std::time::Duration>
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: MockConnection::set_read_timeout
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn set_read_timeout(&self, _dur: Option<std::time::Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: MockConnection::recv_response
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: fn recv_response(&mut self) -> RedisResult<Value>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[u8]::len'
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:113,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - xs
    - ys
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: contains_slice
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 10
    functionsReached:
    - '&[u8]::len'
    - starts_with
    linkageType: ''
    returnType: bool
    signature: 'pub fn contains_slice(xs: &[u8], ys: &[u8]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:122,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: is_connection_check
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 13
    functionsReached:
    - contains_slice
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_connection_check(cmd: &[u8]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:126,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:127,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:127,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:127,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:127,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:128,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:128,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:129,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:129,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:129,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 140
      start: 125
    functionDepth: 5
    functionLinenumber: 125
    functionLinenumberEnd: 140
    functionName: respond_startup
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 13
    functionsReached:
    - Err
    - contains_slice
    - is_connection_check
    - Ok
    - Value::SimpleString
    - Value::Array
    - '&str::into'
    linkageType: ''
    returnType: Result
    signature: 'pub fn respond_startup(name: &str, cmd: &[u8]) -> Result<(), RedisResult<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: respond_startup_with_replica
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 4
    functionsReached:
    - respond_startup_with_replica_using_config
    linkageType: ''
    returnType: Result
    signature: 'pub fn respond_startup_with_replica(name: &str, cmd: &[u8]) -> Result<(),
      RedisResult<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:154,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 170
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 170
    functionName: respond_startup_two_nodes
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 14
    functionsReached:
    - respond_startup_with_replica_using_config
    - Some
    linkageType: ''
    returnType: Result
    signature: 'pub fn respond_startup_two_nodes(name: &str, cmd: &[u8]) -> Result<(),
      RedisResult<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option<Vec<MockSlotRange>>::unwrap_or_else
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:177,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:191,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:192,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:192,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:192,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:192,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:193,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:193,1
    - Dst: Option<Vec<MockSlotRange>>::into_iter
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:194,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:194,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:206,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:206,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:211,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:194,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:214,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:214,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:214,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 3
    argNames:
    - name
    - cmd
    - slots_config
    argTypes:
    - '&str'
    - '&[u8]'
    - Option<Vec<MockSlotRange>>
    constantsTouched: []
    func_position:
      end: 218
      start: 172
    functionDepth: 13
    functionLinenumber: 172
    functionLinenumberEnd: 218
    functionName: respond_startup_with_replica_using_config
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 23
    functionsReached:
    - Option<Vec<MockSlotRange>>::unwrap_or_else
    - Err
    - push
    - contains_slice
    - is_connection_check
    - std::iter::Chain::map
    - Ok
    - Value::SimpleString
    - Value::Array
    - '&str::into'
    - Option<Vec<MockSlotRange>>::into_iter
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub fn respond_startup_with_replica_using_config(name: &str,cmd: &[u8],slots_config:
      Option<Vec<MockSlotRange>>,) -> Result<(), RedisResult<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:221,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: broken_pipe_error
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 8
    functionsReached:
    - RedisError::from
    - std::io::Error::new
    linkageType: ''
    returnType: RedisError
    signature: pub fn broken_pipe_error() -> RedisError
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockConnection::execute_buffered_cmd
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: MockConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - MockConnection::execute_buffered_cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_command(&mut self, cmd: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockConnection::execute_buffered_cmd
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:263,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:265,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:268,1
    - Dst: std::iter::Chain::nth
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:268,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:269,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:270,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:271,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:271,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:275,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:276,1
    - Dst: String::from_redis_value
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:278,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:278,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 3
    argNames:
    - cmd
    - offset
    - _count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 284
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 284
    functionName: MockConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - Err
    - into
    - MockConnection::execute_buffered_cmd
    - Ok
    - std::iter::Chain::nth
    - RedisResult::into_iter
    - String::from_redis_value
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_commands(&mut self,cmd: &[u8],offset: usize,_count:
      usize,) -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: MockConnection::get_db
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: fn get_db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 292
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 292
    functionName: MockConnection::check_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn check_connection(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: MockConnection::is_open
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:315,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:315,1
    - Dst: remove
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 317
    functionName: RemoveHandler::drop
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - write
    - remove
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_client_builder
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:325,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - handler
    argTypes:
    - '&str'
    - impl Fn(&[u8], u16) -> Result<(), RedisResult<Value>> + Send + Sync + 'static
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: MockEnv::new
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 13
    functionsReached:
    - ClusterClient::builder
    - Self::with_client_builder
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(id: &str,handler: impl Fn(&[u8], u16) -> Result<(), RedisResult<Value>>
      + Send + Sync + ''static,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::runtime::Builder::new_current_thread
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:338,1
    - Dst: enable_io
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:338,1
    - Dst: enable_time
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:338,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:338,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:338,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:344,1
    - Dst: write
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:345,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:345,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:345,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:348,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:348,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:350,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:350,1
    - Dst: get_generic_connection
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:351,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:351,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:353,1
    - Dst: get_async_generic_connection
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:354,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:353,1
    - Dst: RemoveHandler
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 3
    argNames:
    - client_builder
    - id
    - handler
    argTypes:
    - ClusterClientBuilder
    - '&str'
    - impl Fn(&[u8], u16) -> Result<(), RedisResult<Value>> + Send + Sync + 'static
    constantsTouched: []
    func_position:
      end: 365
      start: 332
    functionDepth: 8
    functionLinenumber: 332
    functionLinenumberEnd: 365
    functionName: MockEnv::with_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 43
    functionsReached:
    - get_async_generic_connection
    - tokio::runtime::Builder::new_current_thread
    - to_string
    - enable_io
    - clone
    - write
    - RedisResult::unwrap
    - Arc::new
    - get_generic_connection
    - unwrap
    - RemoveHandler
    - tokio::runtime::Runtime::block_on
    - build
    - insert
    - enable_time
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_client_builder(client_builder: ClusterClientBuilder,id:
      &str,handler: impl Fn(&[u8], u16) -> Result<(), RedisResult<Value>> + Send +
      Sync + ''static,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::runtime::Builder::new_current_thread
      Src: /src/redis-rs/redis/tests/support/mod.rs:30,1
    - Dst: enable_io
      Src: /src/redis-rs/redis/tests/support/mod.rs:33,1
    - Dst: enable_time
      Src: /src/redis-rs/redis/tests/support/mod.rs:35,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mod.rs:37,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: current_thread_runtime
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - tokio::runtime::Builder::new_current_thread
    - enable_io
    - enable_time
    - build
    - RedisResult::unwrap
    linkageType: ''
    returnType: tokio::runtime::Runtime
    signature: pub fn current_thread_runtime() -> tokio::runtime::Runtime
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: panic::set_hook
      Src: /src/redis-rs/redis/tests/support/mod.rs:63,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:63,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/support/mod.rs:65,1
    - Dst: futures_util::FutureExt::fuse
      Src: /src/redis-rs/redis/tests/support/mod.rs:69,1
    - Dst: load
      Src: /src/redis-rs/redis/tests/support/mod.rs:71,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/support/mod.rs:74,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/support/mod.rs:74,1
    - Dst: futures_util::FutureExt::fuse
      Src: /src/redis-rs/redis/tests/support/mod.rs:77,1
    - Dst: block_on_all_using_tokio
      Src: /src/redis-rs/redis/tests/support/mod.rs:86,1
    - Dst: block_on_all_using_smol
      Src: /src/redis-rs/redis/tests/support/mod.rs:88,1
    - Dst: panic::take_hook
      Src: /src/redis-rs/redis/tests/support/mod.rs:91,1
    - Dst: swap
      Src: /src/redis-rs/redis/tests/support/mod.rs:92,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:96,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - f
    - runtime
    argTypes:
    - F
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 97
      start: 51
    functionDepth: 8
    functionLinenumber: 51
    functionLinenumberEnd: 97
    functionName: block_on_all
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 8
    functionsReached:
    - futures_util::FutureExt::fuse
    - futures_time::task::sleep
    - panic::set_hook
    - futures_time::time::Duration::from_millis
    - swap
    - block_on_all_using_smol
    - load
    - Box::new
    - panic::take_hook
    - unwrap
    - block_on_all_using_tokio
    - store
    linkageType: ''
    returnType: F::Output
    signature: 'pub fn block_on_all<F, V>(f: F, runtime: RuntimeType) -> F::OutputwhereF:
      Future<Output = V>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::aio::prefer_tokio
      Src: /src/redis-rs/redis/tests/support/mod.rs:105,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:105,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/tests/support/mod.rs:106,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/support/mod.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: block_on_all_using_tokio
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - tokio::runtime::Runtime::block_on
    - current_thread_runtime
    - redis::aio::prefer_tokio
    - Result::unwrap
    linkageType: ''
    returnType: F::Output
    signature: 'fn block_on_all_using_tokio<F>(f: F) -> F::OutputwhereF: Future,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::aio::prefer_smol
      Src: /src/redis-rs/redis/tests/support/mod.rs:115,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:115,1
    - Dst: smol::block_on
      Src: /src/redis-rs/redis/tests/support/mod.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: block_on_all_using_smol
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - redis::aio::prefer_smol
    - Result::unwrap
    - smol::block_on
    linkageType: ''
    returnType: F::Output
    signature: 'fn block_on_all_using_smol<F>(f: F) -> F::OutputwhereF: Future,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rustls::crypto::CryptoProvider::get_default
      Src: /src/redis-rs/redis/tests/support/mod.rs:150,1
    - Dst: is_none
      Src: /src/redis-rs/redis/tests/support/mod.rs:150,1
    - Dst: rustls::crypto::ring::default_provider
      Src: /src/redis-rs/redis/tests/support/mod.rs:152,1
    - Dst: install_default
      Src: /src/redis-rs/redis/tests/support/mod.rs:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 154
    functionName: start_tls_crypto_provider
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - install_default
    - is_none
    - rustls::crypto::CryptoProvider::get_default
    - rustls::crypto::ring::default_provider
    linkageType: ''
    returnType: void
    signature: pub(crate) fn start_tls_crypto_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules
      Src: /src/redis-rs/redis/tests/support/mod.rs:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 7
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: TestContext::new
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 180
    functionsReached:
    - Self::with_modules
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    functionName: TestContext::new_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - Self::with_modules_and_tls
    linkageType: ''
    returnType: Self
    signature: pub fn new_with_mtls() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_cert_auth_field
      Src: /src/redis-rs/redis/tests/support/mod.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tls_files
    argTypes:
    - TlsFilePaths
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: TestContext::new_with_cert_auth
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - Self::new_with_cert_auth_field
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_cert_auth(tls_files: TlsFilePaths) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: start_tls_crypto_provider
      Src: /src/redis-rs/redis/tests/support/mod.rs:173,1
    - Dst: redis_test::utils::get_random_available_port
      Src: /src/redis-rs/redis/tests/support/mod.rs:174,1
    - Dst: RedisServer::get_addr
      Src: /src/redis-rs/redis/tests/support/mod.rs:175,1
    - Dst: redis_test::server::get_default_host
      Src: /src/redis-rs/redis/tests/support/mod.rs:190,1
    - Dst: Self::with_modules_addr_tls_and_cert_auth
      Src: /src/redis-rs/redis/tests/support/mod.rs:201,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:205,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - tls_files
    - cert_field
    argTypes:
    - TlsFilePaths
    - '&str'
    constantsTouched: []
    func_position:
      end: 208
      start: 172
    functionDepth: 5
    functionLinenumber: 172
    functionLinenumberEnd: 208
    functionName: TestContext::new_with_cert_auth_field
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - Self::with_modules_addr_tls_and_cert_auth
    - start_tls_crypto_provider
    - redis_test::utils::get_random_available_port
    - RedisServer::get_addr
    - Some
    - redis_test::server::get_default_host
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_cert_auth_field(tls_files: TlsFilePaths, cert_field:
      &str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:211,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tls_files
    - mtls_enabled
    argTypes:
    - TlsFilePaths
    - bool
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: TestContext::with_tls
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - Some
    - Self::with_modules_and_tls
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_tls(tls_files: TlsFilePaths, mtls_enabled: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - modules
    argTypes:
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 216
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 216
    functionName: TestContext::with_modules
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 30
    functionsReached:
    - Self::with_modules_and_tls
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_modules(modules: &[Module]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules_addr_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ConnectionAddr
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: TestContext::new_with_addr
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 6
    functionsReached:
    - Self::with_modules_addr_and_tls
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_addr(addr: ConnectionAddr) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: start_tls_crypto_provider
      Src: /src/redis-rs/redis/tests/support/mod.rs:227,1
    - Dst: redis_test::utils::get_random_available_port
      Src: /src/redis-rs/redis/tests/support/mod.rs:228,1
    - Dst: RedisServer::get_addr
      Src: /src/redis-rs/redis/tests/support/mod.rs:229,1
    - Dst: Self::with_modules_addr_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - modules
    - mtls_enabled
    - tls_files
    argTypes:
    - '&[Module]'
    - bool
    - Option<TlsFilePaths>
    constantsTouched: []
    func_position:
      end: 231
      start: 222
    functionDepth: 5
    functionLinenumber: 222
    functionLinenumberEnd: 231
    functionName: TestContext::with_modules_and_tls
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - start_tls_crypto_provider
    - RedisServer::get_addr
    - Self::with_modules_addr_and_tls
    - redis_test::utils::get_random_available_port
    linkageType: ''
    returnType: Self
    signature: 'fn with_modules_and_tls(modules: &[Module],mtls_enabled: bool,tls_files:
      Option<TlsFilePaths>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules_addr_tls_and_cert_auth
      Src: /src/redis-rs/redis/tests/support/mod.rs:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - modules
    - mtls_enabled
    - addr
    - tls_files
    argTypes:
    - '&[Module]'
    - bool
    - ConnectionAddr
    - Option<TlsFilePaths>
    constantsTouched: []
    func_position:
      end: 240
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 240
    functionName: TestContext::with_modules_addr_and_tls
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - Self::with_modules_addr_tls_and_cert_auth
    linkageType: ''
    returnType: Self
    signature: 'fn with_modules_addr_and_tls(modules: &[Module],mtls_enabled: bool,addr:
      ConnectionAddr,tls_files: Option<TlsFilePaths>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis/tests/support/mod.rs:249,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis/tests/support/mod.rs:257,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/support/mod.rs:257,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/support/mod.rs:263,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/support/mod.rs:263,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:263,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/support/mod.rs:267,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:270,1
    - Dst: is_connection_refusal
      Src: /src/redis-rs/redis/tests/support/mod.rs:272,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/support/mod.rs:273,1
    - Dst: flushdb::<()>
      Src: /src/redis-rs/redis/tests/support/mod.rs:300,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/support/mod.rs:305,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/support/mod.rs:326,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 54
    argCount: 5
    argNames:
    - modules
    - mtls_enabled
    - addr
    - tls_files
    - cert_auth_field
    argTypes:
    - '&[Module]'
    - bool
    - ConnectionAddr
    - Option<TlsFilePaths>
    - Option<&str>
    constantsTouched: []
    func_position:
      end: 328
      start: 242
    functionDepth: 10
    functionLinenumber: 242
    functionLinenumberEnd: 328
    functionName: TestContext::with_modules_addr_tls_and_cert_auth
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - RedisServer::connection_info
    - flushdb::<()>
    - unwrap_or_else
    - is_connection_refusal
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - redis_test::server::use_protocol
    - Duration::from_millis
    - std::thread::sleep
    - build_single_client
    - get_connection
    - Cmd::spawn
    - RedisResult::unwrap
    linkageType: ''
    returnType: Self
    signature: 'fn with_modules_addr_tls_and_cert_auth(modules: &[Module],mtls_enabled:
      bool,addr: ConnectionAddr,tls_files: Option<TlsFilePaths>,cert_auth_field: Option<&str>,)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:331,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: TestContext::connection
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - unwrap
    linkageType: ''
    returnType: redis::Connection
    signature: pub fn connection(&self) -> redis::Connection
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 337
    functionName: TestContext::async_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - get_multiplexed_async_connection
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn async_connection(&self) -> RedisResult<redis::aio::MultiplexedConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_async_pubsub
      Src: /src/redis-rs/redis/tests/support/mod.rs:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 342
    functionName: TestContext::async_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - get_async_pubsub
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn async_pubsub(&self) -> RedisResult<redis::aio::PubSub>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stop
      Src: /src/redis-rs/redis/tests/support/mod.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: TestContext::stop_server
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - stop
    linkageType: ''
    returnType: void
    signature: pub fn stop_server(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 353
    functionName: TestContext::multiplexed_async_connection_tokio
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - get_multiplexed_async_connection
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn multiplexed_async_connection_tokio(&self,) -> RedisResult<redis::aio::MultiplexedConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/support/mod.rs:359,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/support/mod.rs:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 360
    functionName: TestContext::async_connection_with_cache
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - CacheConfig::default
    - TestContext::async_connection_with_cache_config
    linkageType: ''
    returnType: impl Future
    signature: pub fn async_connection_with_cache(&self,) -> impl Future<Output =
      redis::RedisResult<redis::aio::MultiplexedConnection>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mod.rs:369,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/support/mod.rs:371,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:373,1
    - Dst: Self::set_cache_config
      Src: /src/redis-rs/redis/tests/support/mod.rs:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 377
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 377
    functionName: TestContext::async_connection_with_cache_config
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - AsyncConnectionConfig::new
    - clone
    - get_multiplexed_async_connection_with_config
    - Self::set_cache_config
    linkageType: ''
    returnType: impl Future
    signature: 'pub fn async_connection_with_cache_config(&self,cache_config: CacheConfig,)
      -> impl Future<Output = redis::RedisResult<redis::aio::MultiplexedConnection>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:382,1
    - Dst: AvailableComponents::from
      Src: /src/redis-rs/redis/tests/support/mod.rs:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: TestContext::get_available_components
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - AvailableComponents::from
    - TestContext::connection
    linkageType: ''
    returnType: AvailableComponents
    signature: fn get_available_components(&self) -> AvailableComponents
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:391,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:392,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:393,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:393,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - values
    - writer
    - prefix
    argTypes:
    - '&[Value]'
    - '&mut W'
    - '&str'
    constantsTouched: []
    func_position:
      end: 396
      start: 387
    functionDepth: 9
    functionLinenumber: 387
    functionLinenumberEnd: 396
    functionName: encode_iter
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - io::Result::unwrap
    - encode_value
    - unwrap
    - Ok
    - Self::iter
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_iter<W>(values: &[Value], writer: &mut W, prefix: &str)
      -> io::Result<()>whereW: io::Write,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:401,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:402,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:403,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:403,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:404,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:404,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - values
    - writer
    - prefix
    argTypes:
    - '&[(Value, Value)]'
    - '&mut W'
    - '&str'
    constantsTouched: []
    func_position:
      end: 407
      start: 397
    functionDepth: 9
    functionLinenumber: 397
    functionLinenumberEnd: 407
    functionName: encode_map
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - io::Result::unwrap
    - encode_value
    - unwrap
    - Ok
    - Self::iter
    linkageType: ''
    returnType: io::Result
    signature: 'fn encode_map<W>(values: &[(Value, Value)], writer: &mut W, prefix:
      &str) -> io::Result<()>whereW: io::Write,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:417,1
    - Dst: '&mut W::write_all'
      Src: /src/redis-rs/redis/tests/support/mod.rs:418,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:418,1
    - Dst: '&mut W::write_all'
      Src: /src/redis-rs/redis/tests/support/mod.rs:419,1
    - Dst: encode_iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:421,1
    - Dst: encode_map
      Src: /src/redis-rs/redis/tests/support/mod.rs:424,1
    - Dst: encode_map
      Src: /src/redis-rs/redis/tests/support/mod.rs:429,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:429,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:430,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:430,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:431,1
    - Dst: encode_iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:433,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:454,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:456,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:462,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:463,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:464,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:464,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:466,1
    - Dst: details
      Src: /src/redis-rs/redis/tests/support/mod.rs:468,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 2
    argNames:
    - value
    - writer
    argTypes:
    - '&Value'
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 474
      start: 408
    functionDepth: 10
    functionLinenumber: 408
    functionLinenumberEnd: 474
    functionName: encode_value
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 7
    functionsReached:
    - io::Result::unwrap
    - details
    - encode_iter
    - encode_value
    - unwrap
    - encode_map
    - Ok
    - iter
    - '&mut W::write_all'
    linkageType: ''
    returnType: io::Result
    signature: 'pub fn encode_value<W>(value: &Value, writer: &mut W) -> io::Result<()>whereW:
      io::Write,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:478,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:478,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:479,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:480,1
    - Dst: Self::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:480,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:480,1
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:484,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:484,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:485,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:486,1
    - Dst: Self::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:486,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:486,1
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:490,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:490,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:491,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:492,1
    - Dst: Self::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:492,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:492,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:497,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - tls_file_paths
    argTypes:
    - '&TlsFilePaths'
    constantsTouched: []
    func_position:
      end: 503
      start: 477
    functionDepth: 8
    functionLinenumber: 477
    functionLinenumberEnd: 503
    functionName: load_certs_from_file
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - BufReader::new
    - bool::expect
    - File::open
    - Self::read_to_end
    - Some
    - Vec::new
    - expect
    linkageType: ''
    returnType: TlsCertificates
    signature: 'pub fn load_certs_from_file(tls_file_paths: &TlsFilePaths) -> TlsCertificates'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - connection_info
    - _tls_file_params
    - _mtls_enabled
    argTypes:
    - T
    - '&Option<TlsFilePaths>'
    - bool
    constantsTouched: []
    func_position:
      end: 571
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 571
    functionName: build_single_client
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 4
    functionsReached:
    - redis::Client::open
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn build_single_client<T: redis::IntoConnectionInfo>(connection_info:
      T,_tls_file_params: &Option<TlsFilePaths>,_mtls_enabled: bool,) -> RedisResult<redis::Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:532,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:532,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:533,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:534,1
    - Dst: Self::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:534,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:534,1
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:540,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:540,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:541,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:542,1
    - Dst: Self::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:542,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:542,1
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:546,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:546,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:547,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:548,1
    - Dst: Self::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:548,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:548,1
    - Dst: redis::Client::build_with_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:552,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:555,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 3
    argNames:
    - connection_info
    - tls_file_params
    - client_cert_paths
    argTypes:
    - T
    - '&TlsFilePaths'
    - '&redis_test::utils::ClientCertPaths'
    constantsTouched: []
    func_position:
      end: 562
      start: 526
    functionDepth: 8
    functionLinenumber: 526
    functionLinenumberEnd: 562
    functionName: build_single_client_with_separate_client_cert
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - BufReader::new
    - bool::expect
    - File::open
    - Self::read_to_end
    - redis::Client::build_with_tls
    - Some
    - Vec::new
    - expect
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn build_single_client_with_separate_client_cert<T: redis::IntoConnectionInfo>(connection_info:
      T,tls_file_params: &TlsFilePaths,client_cert_paths: &redis_test::utils::ClientCertPaths,)
      -> RedisResult<redis::Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:579,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/support/mod.rs:579,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/support/mod.rs:581,1
    - Dst: String::to_owned
      Src: /src/redis-rs/redis/tests/support/mod.rs:583,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/tests/support/mod.rs:582,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:582,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mod.rs:590,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/mod.rs:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - '&[ConnectionInfo]'
    constantsTouched: []
    func_position:
      end: 593
      start: 578
    functionDepth: 9
    functionLinenumber: 578
    functionLinenumberEnd: 593
    functionName: mtls_test::clean_node_info
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - addr
    - into_connection_info
    - map
    - clone
    - String::to_owned
    - unwrap
    - iter
    - collect
    linkageType: ''
    returnType: Vec
    signature: 'fn clean_node_info(nodes: &[ConnectionInfo]) -> Vec<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/redis-rs/redis/tests/support/mod.rs:599,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:599,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/tests/support/mod.rs:604,1
    - Dst: clean_node_info
      Src: /src/redis-rs/redis/tests/support/mod.rs:605,1
    - Dst: redis::cluster::ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:606,1
    - Dst: certs
      Src: /src/redis-rs/redis/tests/support/mod.rs:610,1
    - Dst: load_certs_from_file
      Src: /src/redis-rs/redis/tests/support/mod.rs:610,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mod.rs:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - cluster
    - mtls_enabled
    argTypes:
    - '&TestClusterContext'
    - bool
    constantsTouched: []
    func_position:
      end: 619
      start: 595
    functionDepth: 10
    functionLinenumber: 595
    functionLinenumberEnd: 619
    functionName: mtls_test::create_cluster_client_from_cluster
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 4
    functionsReached:
    - redis::cluster::ClusterClientBuilder::new
    - build
    - load_certs_from_file
    - clean_node_info
    - certs
    - as_ref
    - first
    - expect
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn create_cluster_client_from_cluster(cluster: &TestClusterContext,mtls_enabled:
      bool,) -> Result<ClusterClient, RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/support/mod.rs:623,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:624,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:624,1
    - Dst: '&mut Self::ignore'
      Src: /src/redis-rs/redis/tests/support/mod.rs:624,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:624,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:624,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:624,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/support/mod.rs:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 622
    functionDepth: 2
    functionLinenumber: 622
    functionLinenumberEnd: 632
    functionName: build_simple_pipeline_for_invalidation
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - redis::pipe
    - redis::cmd
    - Pipeline::cmd
    - redis::Cmd::arg
    - arg
    - ignore
    - '&mut Self::ignore'
    linkageType: ''
    returnType: Pipeline
    signature: pub fn build_simple_pipeline_for_invalidation() -> Pipeline
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:639,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:639,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/tests/support/mod.rs:639,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:639,1
    - Dst: redis::ConnectionInfo::split_once
      Src: /src/redis-rs/redis/tests/support/mod.rs:644,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:644,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/support/mod.rs:646,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:646,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:648,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:648,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:649,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:649,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/support/mod.rs:649,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:649,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/support/mod.rs:649,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:649,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 39
    argCount: 2
    argNames:
    - conn_to_kill
    - client
    argTypes:
    - '&mut impl aio::ConnectionLike'
    - '&redis::Client'
    constantsTouched: []
    func_position:
      end: 658
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 658
    functionName: kill_client_async
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - arg
    - Cmd::arg
    - query_async
    - split_once
    - '&mut Self::query_async'
    - unwrap
    - Ok
    - get_multiplexed_async_connection
    - redis::ConnectionInfo::split_once
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn kill_client_async(conn_to_kill: &mut impl aio::ConnectionLike,client:
      &redis::Client,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::runtime::Handle::try_current
      Src: /src/redis-rs/redis/tests/support/mod.rs:664,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/support/mod.rs:666,1
    - Dst: smol::spawn
      Src: /src/redis-rs/redis/tests/support/mod.rs:670,1
    - Dst: detach
      Src: /src/redis-rs/redis/tests/support/mod.rs:670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - fut
    argTypes:
    - impl std::future::Future<Output = T> + Send + Sync + 'static
    constantsTouched: []
    func_position:
      end: 675
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 675
    functionName: spawn
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 18
    functionsReached:
    - smol::spawn
    - tokio::runtime::Handle::try_current
    - detach
    - spawn
    linkageType: ''
    returnType: void
    signature: 'pub fn spawn<T>(fut: impl std::future::Future<Output = T> + Send +
      Sync + ''static)whereT: Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/tests/support/util.rs:2,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/support/util.rs:3,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/support/util.rs:3,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/support/util.rs:4,1
    - Dst: Result::as_ref
      Src: /src/redis-rs/redis/tests/support/util.rs:4,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/util.rs:4,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/util.rs:3,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10
      start: 2
    functionDepth: 10
    functionLinenumber: 2
    functionLinenumberEnd: 10
    functionName: assert_args
    functionSourceFile: /src/redis-rs/redis/tests/support/util.rs
    functionUses: 5
    functionsReached:
    - map
    - std::str::from_utf8
    - to_redis_args
    - unwrap
    - iter
    - Result::as_ref
    - collect
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - nodes
    - replicas
    - sentinels
    argTypes:
    - u16
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: TestSentinelContext::new
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 30
    functionsReached:
    - Self::new_with_cluster_client_builder
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(nodes: u16, replicas: u16, sentinels: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: support::start_tls_crypto_provider
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:25,1
    - Dst: RedisSentinelCluster::new
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:26,1
    - Dst: iter_sentinel_servers
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:27,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:27,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:27,1
    - Dst: redis::sentinel::Sentinel::build
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:31,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:31,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:32,1
    - Dst: wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - nodes
    - replicas
    - sentinels
    argTypes:
    - u16
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 42
      start: 24
    functionDepth: 9
    functionLinenumber: 24
    functionLinenumberEnd: 42
    functionName: TestSentinelContext::new_with_cluster_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - iter_sentinel_servers
    - clone
    - support::start_tls_crypto_provider
    - RedisSentinelCluster::new
    - unwrap
    - wait_for_cluster_up
    - redis::sentinel::Sentinel::build
    - collect
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_cluster_client_builder(nodes: u16, replicas: u16,
      sentinels: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: TestSentinelContext::sentinel
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&redis::sentinel::Sentinel'
    signature: pub fn sentinel(&self) -> &redis::sentinel::Sentinel
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: TestSentinelContext::sentinel_mut
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut redis::sentinel::Sentinel'
    signature: pub fn sentinel_mut(&mut self) -> &mut redis::sentinel::Sentinel
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: TestSentinelContext::sentinels_connection_info
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Vec'
    signature: pub fn sentinels_connection_info(&self) -> &Vec<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::tls_mode
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:57,1
    - Dst: SentinelNodeConnectionInfo::default
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:58,1
    - Dst: Self::set_tls_mode
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:58,1
    - Dst: SentinelNodeConnectionInfo::default
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: TestSentinelContext::sentinel_node_connection_info
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::tls_mode
    - Self::set_tls_mode
    - SentinelNodeConnectionInfo::default
    linkageType: ''
    returnType: SentinelNodeConnectionInfo
    signature: pub fn sentinel_node_connection_info(&self) -> SentinelNodeConnectionInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:65,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:67,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: TestSentinelContext::tls_mode
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 1
    functionsReached:
    - client_addr
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn tls_mode(&self) -> Option<TlsMode>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:77,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:78,1
    - Dst: redis_test::sentinel::wait_for_master_server
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:80,1
    - Dst: '&mut redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:80,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:80,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:81,1
    - Dst: redis_test::sentinel::wait_for_replica
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:85,1
    - Dst: '&mut redis::sentinel::Sentinel::replica_for'
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:85,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:85,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: TestSentinelContext::wait_for_cluster_up
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 0
    functionsReached:
    - redis_test::sentinel::wait_for_master_server
    - '&mut redis::sentinel::Sentinel::replica_for'
    - '&mut redis::sentinel::Sentinel::master_for'
    - ConnectionAddr::is_err
    - redis_test::sentinel::wait_for_replica
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_cluster_up(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config
      Src: /src/redis-rs/redis/tests/support/cluster.rs:35,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 10
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: TestClusterContext::new
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 33
    functionsReached:
    - Default::default
    - Self::new_with_config
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:42,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 10
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: TestClusterContext::new_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 4
    functionsReached:
    - Self::new_with_config_and_builder
    - Default::default
    linkageType: ''
    returnType: Self
    signature: pub fn new_with_mtls() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:53,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 10
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: TestClusterContext::new_without_ip_alts
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - Self::new_with_config_and_builder
    - Default::default
    linkageType: ''
    returnType: Self
    signature: pub fn new_without_ip_alts() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cluster_config
    argTypes:
    - RedisClusterConfiguration
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: TestClusterContext::new_with_config
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 6
    functionsReached:
    - Self::new_with_config_and_builder
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_config(cluster_config: RedisClusterConfiguration)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:71,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - initializer
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 78
      start: 67
    functionDepth: 10
    functionLinenumber: 67
    functionLinenumberEnd: 78
    functionName: TestClusterContext::new_with_cluster_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 20
    functionsReached:
    - Self::new_with_config_and_builder
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_cluster_client_builder<F>(initializer: F) -> SelfwhereF:
      FnOnce(redis::cluster::ClusterClientBuilder) -> redis::cluster::ClusterClientBuilder,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:84,1
    - Dst: RedisClusterConfiguration::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initializer
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 85
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 85
    functionName: TestClusterContext::new_insecure_with_cluster_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 7
    functionsReached:
    - RedisClusterConfiguration::default
    - Self::new_with_config_and_builder
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_insecure_with_cluster_client_builder<F>(initializer: F)
      -> SelfwhereF: FnOnce(redis::cluster::ClusterClientBuilder) -> redis::cluster::ClusterClientBuilder,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: support::start_tls_crypto_provider
      Src: /src/redis-rs/redis/tests/support/cluster.rs:94,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/support/cluster.rs:98,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/support/cluster.rs:99,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/tests/support/cluster.rs:99,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/cluster.rs:99,1
    - Dst: redis::cluster::ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/support/cluster.rs:103,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/cluster.rs:103,1
    - Dst: Self::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:103,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:104,1
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/support/cluster.rs:107,1
    - Dst: certs
      Src: /src/redis-rs/redis/tests/support/cluster.rs:110,1
    - Dst: super::load_certs_from_file
      Src: /src/redis-rs/redis/tests/support/cluster.rs:110,1
    - Dst: initializer
      Src: /src/redis-rs/redis/tests/support/cluster.rs:113,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/cluster.rs:115,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:115,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:122,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 2
    argNames:
    - cluster_config
    - initializer
    argTypes:
    - RedisClusterConfiguration
    - F
    constantsTouched: []
    func_position:
      end: 124
      start: 87
    functionDepth: 8
    functionLinenumber: 87
    functionLinenumberEnd: 124
    functionName: TestClusterContext::new_with_config_and_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 5
    functionsReached:
    - impl Iterator::map
    - super::load_certs_from_file
    - redis::cluster::ClusterClientBuilder::new
    - RedisCluster::new
    - iter_servers
    - clone
    - support::start_tls_crypto_provider
    - certs
    - RedisResult::unwrap
    - redis_test::server::use_protocol
    - initializer
    - build
    - Self::use_protocol
    - ClusterType::get_intended
    - collect
    linkageType: ''
    returnType: Self
    signature: 'pub fn new_with_config_and_builder<F>(cluster_config: RedisClusterConfiguration,initializer:
      F,) -> SelfwhereF: FnOnce(redis::cluster::ClusterClientBuilder) -> redis::cluster::ClusterClientBuilder,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cluster::ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/support/cluster.rs:132,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/cluster.rs:132,1
    - Dst: Self::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:132,1
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/support/cluster.rs:136,1
    - Dst: certs
      Src: /src/redis-rs/redis/tests/support/cluster.rs:139,1
    - Dst: super::load_certs_from_file
      Src: /src/redis-rs/redis/tests/support/cluster.rs:139,1
    - Dst: initializer
      Src: /src/redis-rs/redis/tests/support/cluster.rs:142,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/cluster.rs:142,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - initializer
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 143
      start: 127
    functionDepth: 10
    functionLinenumber: 127
    functionLinenumberEnd: 143
    functionName: TestClusterContext::new_client_with_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - super::load_certs_from_file
    - redis::cluster::ClusterClientBuilder::new
    - clone
    - certs
    - unwrap
    - initializer
    - build
    - Self::use_protocol
    - ClusterType::get_intended
    linkageType: ''
    returnType: redis::cluster::ClusterClient
    signature: 'pub fn new_client_with_builder<F>(&self, initializer: F) -> redis::cluster::ClusterClientwhereF:
      FnOnce(redis::cluster::ClusterClientBuilder) -> redis::cluster::ClusterClientBuilder,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:146,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: TestClusterContext::connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - unwrap
    linkageType: ''
    returnType: redis::cluster::ClusterConnection
    signature: pub fn connection(&self) -> redis::cluster::ClusterConnection
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:151,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: TestClusterContext::async_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 1
    functionsReached:
    - get_async_connection
    - unwrap
    linkageType: ''
    returnType: redis::cluster_async::ClusterConnection
    signature: pub async fn async_connection(&self) -> redis::cluster_async::ClusterConnection
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/support/cluster.rs:158,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - redis::cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 162
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 162
    functionName: TestClusterContext::async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - get_async_connection_with_config
    - unwrap
    linkageType: ''
    returnType: redis::cluster_async::ClusterConnection
    signature: 'pub async fn async_connection_with_config(&self,config: redis::cluster::ClusterConfig,)
      -> redis::cluster_async::ClusterConnection'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: "client\n            .get_async_generic_connection::<C>"
      Src: /src/redis-rs/redis/tests/support/cluster.rs:169,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 173
    functionName: TestClusterContext::async_generic_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - "client\n            .get_async_generic_connection::<C>"
    - unwrap
    linkageType: ''
    returnType: redis::cluster_async::ClusterConnection
    signature: 'pub async fn async_generic_connection<C: ConnectionLike + Connect
      + Clone + Send + Sync + Unpin + ''static,>(&self,) -> redis::cluster_async::ClusterConnection<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:176,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/cluster.rs:177,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/cluster.rs:178,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/support/cluster.rs:181,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:181,1
    - Dst: ConnectionAddr::starts_with
      Src: /src/redis-rs/redis/tests/support/cluster.rs:182,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/support/cluster.rs:186,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/support/cluster.rs:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 190
    functionName: TestClusterContext::wait_for_cluster_up
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - query::<String>
    - ConnectionAddr::starts_with
    - arg
    - unwrap
    - TestClusterContext::connection
    - std::thread::sleep
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: pub fn wait_for_cluster_up(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: support::build_single_client
      Src: /src/redis-rs/redis/tests/support/cluster.rs:198,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/support/cluster.rs:199,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - server
    argTypes:
    - '&RedisServer'
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 12
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: TestClusterContext::build_single_client_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - RedisServer::connection_info
    - support::build_single_client
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn build_single_client_connection(&self, server: &RedisServer)
      -> RedisResult<Connection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::build_single_client_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:209,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:209,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/cluster.rs:210,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/support/cluster.rs:210,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/tests/support/cluster.rs:210,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/cluster.rs:210,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/support/cluster.rs:210,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:210,1
    - Dst: TestClusterContext::build_single_client_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:218,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/cluster.rs:219,1
    - Dst: redis::Cmd::exec
      Src: /src/redis-rs/redis/tests/support/cluster.rs:219,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/support/cluster.rs:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 222
      start: 207
    functionDepth: 13
    functionLinenumber: 207
    functionLinenumberEnd: 222
    functionName: TestClusterContext::disable_default_user
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - arg
    - redis::Cmd::exec
    - exec
    - TestClusterContext::build_single_client_connection
    - RedisResult::unwrap_err
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: pub fn disable_default_user(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/tests/support/cluster.rs:225,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/support/cluster.rs:225,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/support/cluster.rs:227,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/cluster.rs:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 10
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: TestClusterContext::get_ports
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - map
    - redis::ConnectionInfo::addr
    - iter
    - collect
    linkageType: ''
    returnType: Vec
    signature: pub fn get_ports(&self) -> Vec<u16>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/redis-rs/redis/tests/support/cluster.rs:240,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:240,1
    - Dst: TestClusterContext::build_single_client_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:241,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:241,1
    - Dst: AvailableComponents::from
      Src: /src/redis-rs/redis/tests/support/cluster.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 13
    functionLinenumber: 239
    functionLinenumberEnd: 244
    functionName: TestClusterContext::get_available_components
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - TestClusterContext::build_single_client_connection
    - first
    - AvailableComponents::from
    - RedisResult::unwrap
    linkageType: ''
    returnType: AvailableComponents
    signature: fn get_available_components(&self) -> AvailableComponents
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/tests/support/version.rs:45,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/support/version.rs:45,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/support/version.rs:46,1
    - Dst: any
      Src: /src/redis-rs/redis/tests/support/version.rs:46,1
    - Dst: AvailableComponents::supports
      Src: /src/redis-rs/redis/tests/support/version.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - available_components
    argTypes:
    - '&AvailableComponents'
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 11
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: ComponentMatcher::matches
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 0
    functionsReached:
    - all
    - AvailableComponents::supports
    - iter
    - any
    linkageType: ''
    returnType: bool
    signature: 'pub fn matches(&self, available_components: &AvailableComponents)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from
      Src: /src/redis-rs/redis/tests/support/version.rs:100,1
    - Dst: impl combine::Parser::as_slice
      Src: /src/redis-rs/redis/tests/support/version.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - '[&[Component<''a>]; N]'
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: ComponentMatcher::from
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 0
    functionsReached:
    - Self::from
    - impl combine::Parser::as_slice
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: [&[Component<''a>]; N]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/support/version.rs:117,1
    - Dst: '&str::lines'
      Src: /src/redis-rs/redis/tests/support/version.rs:118,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/support/version.rs:120,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/support/version.rs:120,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/version.rs:120,1
    - Dst: splitn
      Src: /src/redis-rs/redis/tests/support/version.rs:123,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/support/version.rs:124,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/support/version.rs:124,1
    - Dst: Self::parse_info_kv
      Src: /src/redis-rs/redis/tests/support/version.rs:129,1
    - Dst: trim
      Src: /src/redis-rs/redis/tests/support/version.rs:129,1
    - Dst: impl combine::Parser::trim
      Src: /src/redis-rs/redis/tests/support/version.rs:129,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/support/version.rs:141,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/support/version.rs:143,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/support/version.rs:148,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 1
    argNames:
    - info_response
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 151
      start: 116
    functionDepth: 16
    functionLinenumber: 116
    functionLinenumberEnd: 151
    functionName: AvailableComponents::parse_info
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - splitn
    - Self::parse_info_kv
    - '&str::lines'
    - impl combine::Parser::trim
    - '&str::to_string'
    - next
    - unwrap
    - split
    - trim
    - insert
    linkageType: ''
    returnType: HashMap
    signature: 'fn parse_info(info_response: &str) -> HashMap<String, Version>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ends_with
      Src: /src/redis-rs/redis/tests/support/version.rs:159,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/support/version.rs:163,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/version.rs:166,1
    - Dst: TlsFilePaths::to_owned
      Src: /src/redis-rs/redis/tests/support/version.rs:166,1
    - Dst: Self::extract_version
      Src: /src/redis-rs/redis/tests/support/version.rs:166,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/support/version.rs:173,1
    - Dst: impl combine::Parser::split
      Src: /src/redis-rs/redis/tests/support/version.rs:174,1
    - Dst: splitn
      Src: /src/redis-rs/redis/tests/support/version.rs:175,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/support/version.rs:176,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/support/version.rs:176,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/support/version.rs:178,1
    - Dst: trim
      Src: /src/redis-rs/redis/tests/support/version.rs:178,1
    - Dst: impl combine::Parser::trim
      Src: /src/redis-rs/redis/tests/support/version.rs:178,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/support/version.rs:185,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/support/version.rs:186,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/version.rs:189,1
    - Dst: TlsFilePaths::to_string
      Src: /src/redis-rs/redis/tests/support/version.rs:189,1
    - Dst: Self::extract_version
      Src: /src/redis-rs/redis/tests/support/version.rs:189,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 2
    argNames:
    - key
    - value
    argTypes:
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 193
      start: 158
    functionDepth: 12
    functionLinenumber: 158
    functionLinenumberEnd: 193
    functionName: AvailableComponents::parse_info_kv
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 0
    functionsReached:
    - get
    - TlsFilePaths::to_owned
    - HashMap::new
    - len
    - splitn
    - ends_with
    - Self::extract_version
    - impl combine::Parser::trim
    - impl combine::Parser::split
    - next
    - TlsFilePaths::to_string
    - trim
    - Some
    - insert
    linkageType: ''
    returnType: Option
    signature: 'fn parse_info_kv(key: &str, value: &str) -> Option<(String, Version)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::split
      Src: /src/redis-rs/redis/tests/support/version.rs:202,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/support/version.rs:202,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/support/version.rs:202,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/support/version.rs:205,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/support/version.rs:205,1
    - Dst: parse::<u32>
      Src: /src/redis-rs/redis/tests/support/version.rs:207,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/version.rs:207,1
    - Dst: "split('.')\n            .map(|version| version.parse::<u32>().unwrap())\n\
        \            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/tests/support/version.rs:205,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/tests/support/version.rs:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 236
      start: 200
    functionDepth: 16
    functionLinenumber: 200
    functionLinenumberEnd: 236
    functionName: AvailableComponents::extract_version
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 0
    functionsReached:
    - parse::<u32>
    - map
    - "split('.')\n            .map(|version| version.parse::<u32>().unwrap())\n \
      \           .collect::<Vec<_>>"
    - impl combine::Parser::split
    - as_slice
    - next
    - unwrap
    - split
    - Option::unwrap
    linkageType: ''
    returnType: Version
    signature: 'fn extract_version(value: &str) -> Version'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/tests/support/version.rs:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - component
    argTypes:
    - Component
    constantsTouched: []
    func_position:
      end: 250
      start: 239
    functionDepth: 14
    functionLinenumber: 239
    functionLinenumberEnd: 250
    functionName: AvailableComponents::supports
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: 'pub fn supports(&self, component: Component) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/support/version.rs:264,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/support/version.rs:264,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/support/version.rs:264,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/version.rs:264,1
    - Dst: Self::parse_info
      Src: /src/redis-rs/redis/tests/support/version.rs:266,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/support/version.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 269
      start: 259
    functionDepth: 17
    functionLinenumber: 259
    functionLinenumberEnd: 269
    functionName: AvailableComponents::from
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 4
    functionsReached:
    - Self::arg
    - redis::Cmd::new
    - as_str
    - Self::parse_info
    - unwrap
    - query
    linkageType: ''
    returnType: Self
    signature: 'fn from(conn: &mut C) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Output
    constantsTouched: []
    func_position:
      end: 168
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 168
    functionName: Vec::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: Output) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::into
      Src: /src/redis-rs/redis/tests/support/version.rs:293,1
    - Dst: matches
      Src: /src/redis-rs/redis/tests/support/version.rs:293,1
    - Dst: TestContextVersioning::get_available_components
      Src: /src/redis-rs/redis/tests/support/version.rs:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - into_matcher
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 12
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: TestContextVersioning::supports
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 0
    functionsReached:
    - T::into
    - matches
    - TestContextVersioning::get_available_components
    linkageType: ''
    returnType: bool
    signature: 'fn supports<''a, T: Into<ComponentMatcher<''a>>>(&self, into_matcher:
      T) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: supports
      Src: /src/redis-rs/redis/tests/support/version.rs:2,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 318
      start: 307
    functionDepth: 15
    functionLinenumber: 307
    functionLinenumberEnd: 318
    functionName: skip_if_context_does_not_support
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 5
    functionsReached:
    - supports
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: $crate::support::TestContext::with_modules
      Src: /src/redis-rs/redis/tests/support/version.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 349
    functionName: run_test_if_version_supported
    functionSourceFile: /src/redis-rs/redis/tests/support/version.rs
    functionUses: 85
    functionsReached:
    - $crate::support::TestContext::with_modules
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: retrieve_tls_certificates
      Src: /src/redis-rs/redis/src/tls.rs:36,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/tls.rs:49,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/tls.rs:52,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/tls.rs:52,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/tls.rs:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - connection_info
    - certificates
    argTypes:
    - ConnectionInfo
    - '&TlsCertificates'
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: inner_build_with_tls
    functionSourceFile: /src/redis-rs/redis/src/tls.rs
    functionUses: 0
    functionsReached:
    - retrieve_tls_certificates
    - Err
    - RedisError::from
    - Ok
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn inner_build_with_tls(mut connection_info: ConnectionInfo,certificates:
      &TlsCertificates,) -> RedisResult<Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CertificateDer::pem_slice_iter
      Src: /src/redis-rs/redis/src/tls.rs:74,1
    - Dst: collect::<Result<Vec<_>, _>>
      Src: /src/redis-rs/redis/src/tls.rs:74,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/tls.rs:74,1
    - Dst: Error::other
      Src: /src/redis-rs/redis/src/tls.rs:77,1
    - Dst: PrivateKeyDer::from_pem_slice
      Src: /src/redis-rs/redis/src/tls.rs:82,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/tls.rs:82,1
    - Dst: Error::other
      Src: /src/redis-rs/redis/src/tls.rs:83,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/tls.rs:88,1
    - Dst: RootCertStore::empty
      Src: /src/redis-rs/redis/src/tls.rs:97,1
    - Dst: CertificateDer::pem_slice_iter
      Src: /src/redis-rs/redis/src/tls.rs:98,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/tls.rs:99,1
    - Dst: Error::other
      Src: /src/redis-rs/redis/src/tls.rs:100,1
    - Dst: bool::add
      Src: /src/redis-rs/redis/src/tls.rs:103,1
    - Dst: is_err
      Src: /src/redis-rs/redis/src/tls.rs:103,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/tls.rs:104,1
    - Dst: Error::other
      Src: /src/redis-rs/redis/src/tls.rs:104,1
    - Dst: into
      Src: /src/redis-rs/redis/src/tls.rs:104,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/tls.rs:108,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/tls.rs:113,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - '&TlsCertificates'
    constantsTouched: []
    func_position:
      end: 119
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 119
    functionName: retrieve_tls_certificates
    functionSourceFile: /src/redis-rs/redis/src/tls.rs
    functionUses: 1
    functionsReached:
    - map_err
    - Err
    - PrivateKeyDer::from_pem_slice
    - into
    - is_err
    - RootCertStore::empty
    - CertificateDer::pem_slice_iter
    - collect::<Result<Vec<_>, _>>
    - Ok
    - bool::add
    - Error::other
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn retrieve_tls_certificates(certificates: &TlsCertificates,)
      -> RedisResult<TlsConnParams>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/src/tls.rs:132,1
    - Dst: Pkcs1
      Src: /src/redis-rs/redis/src/tls.rs:134,1
    - Dst: secret_pkcs1_der
      Src: /src/redis-rs/redis/src/tls.rs:134,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/tls.rs:134,1
    - Dst: into
      Src: /src/redis-rs/redis/src/tls.rs:134,1
    - Dst: Pkcs8
      Src: /src/redis-rs/redis/src/tls.rs:135,1
    - Dst: secret_pkcs8_der
      Src: /src/redis-rs/redis/src/tls.rs:135,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/tls.rs:135,1
    - Dst: into
      Src: /src/redis-rs/redis/src/tls.rs:135,1
    - Dst: Sec1
      Src: /src/redis-rs/redis/src/tls.rs:136,1
    - Dst: secret_sec1_der
      Src: /src/redis-rs/redis/src/tls.rs:136,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/tls.rs:136,1
    - Dst: into
      Src: /src/redis-rs/redis/src/tls.rs:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 140
    functionName: ClientTlsParams::clone
    functionSourceFile: /src/redis-rs/redis/src/tls.rs
    functionUses: 0
    functionsReached:
    - Pkcs8
    - Sec1
    - into
    - to_vec
    - clone
    - Pkcs1
    - secret_pkcs8_der
    - secret_pkcs1_der
    - secret_sec1_der
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:55,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:58,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:59,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/types.rs:59,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:59,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:62,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:63,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/types.rs:63,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:63,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:66,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:67,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/types.rs:67,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:67,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:70,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:71,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/types.rs:71,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:71,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 77
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 77
    functionName: SetExpiry::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - as_bytes
    - Self::format
    - ::itoa::Buffer::new
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:97,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 103
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: ExistenceCheck::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:122,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 125
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 125
    functionName: FieldExistenceCheck::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::IFEQ
      Src: /src/redis-rs/redis/src/types.rs:234,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: ValueComparison::ifeq
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - Self::arg_to_string
    - Self::IFEQ
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifeq(value: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::IFNE
      Src: /src/redis-rs/redis/src/types.rs:244,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: ValueComparison::ifne
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - Self::arg_to_string
    - Self::IFNE
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifne(value: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::IFDEQ
      Src: /src/redis-rs/redis/src/types.rs:256,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digest
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: ValueComparison::ifdeq
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - Self::arg_to_string
    - Self::IFDEQ
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifdeq(digest: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::IFDNE
      Src: /src/redis-rs/redis/src/types.rs:268,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digest
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 269
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 269
    functionName: ValueComparison::ifdne
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - Self::arg_to_string
    - Self::IFDNE
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifdne(digest: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::to_redis_args
      Src: /src/redis-rs/redis/src/types.rs:272,1
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/src/types.rs:273,1
    - Dst: into_owned
      Src: /src/redis-rs/redis/src/types.rs:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: ValueComparison::arg_to_string
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - into_owned
    - impl combine::Parser::to_redis_args
    - String::from_utf8_lossy
    linkageType: ''
    returnType: String
    signature: 'fn arg_to_string(value: impl ToSingleRedisArg) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:284,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:285,1
    - Dst: impl combine::Parser::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:285,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:288,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:289,1
    - Dst: impl combine::Parser::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:289,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:292,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:293,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:293,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:296,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:297,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 300
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 300
    functionName: ValueComparison::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - impl combine::Parser::as_bytes
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 357
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 357
    functionName: PushKind::has_reply
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn has_reply(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: VerbatimFormat::fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 386
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 386
    functionName: PushKind::fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:400,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:400,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:400,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:402,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 406
    functionName: MapIter::next
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Some
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_hint
      Src: /src/redis-rs/redis/src/types.rs:410,1
    - Dst: size_hint
      Src: /src/redis-rs/redis/src/types.rs:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 413
    functionName: MapIter::size_hint
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - size_hint
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:427,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:427,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:427,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:428,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 2
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: OwnedMapIter::next
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Some
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size_hint
      Src: /src/redis-rs/redis/src/types.rs:435,1
    - Dst: map
      Src: /src/redis-rs/redis/src/types.rs:436,1
    - Dst: size_hint
      Src: /src/redis-rs/redis/src/types.rs:438,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 440
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 440
    functionName: OwnedMapIter::size_hint
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - map
    - size_hint
    linkageType: ''
    returnType: (usize, Option
    signature: fn size_hint(&self) -> (usize, Option<usize>)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 455
    functionDepth: 3
    functionLinenumber: 455
    functionLinenumberEnd: 465
    functionName: Value::looks_like_cursor
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: bool
    signature: pub fn looks_like_cursor(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:470,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 474
    functionName: Value::as_sequence
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn as_sequence(&self) -> Option<&[Self]>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:480,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:481,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 484
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 484
    functionName: Value::into_sequence
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: pub fn into_sequence(self) -> Result<Vec<Self>, Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:489,1
    - Dst: then
      Src: /src/redis-rs/redis/src/types.rs:489,1
    - Dst: MapIter::Array
      Src: /src/redis-rs/redis/src/types.rs:489,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/types.rs:489,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:490,1
    - Dst: MapIter::Map
      Src: /src/redis-rs/redis/src/types.rs:490,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/types.rs:490,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 487
    functionDepth: 10
    functionLinenumber: 487
    functionLinenumberEnd: 493
    functionName: Value::as_map_iter
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - len
    - then
    - iter
    - MapIter::Array
    - Some
    - MapIter::Map
    linkageType: ''
    returnType: Option
    signature: pub fn as_map_iter(&self) -> Option<MapIter<'_>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:500,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:501,1
    - Dst: OwnedMapIter::Array
      Src: /src/redis-rs/redis/src/types.rs:501,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/types.rs:501,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:503,1
    - Dst: Self::Array
      Src: /src/redis-rs/redis/src/types.rs:503,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:506,1
    - Dst: OwnedMapIter::Map
      Src: /src/redis-rs/redis/src/types.rs:506,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/types.rs:506,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 497
    functionDepth: 3
    functionLinenumber: 497
    functionLinenumberEnd: 509
    functionName: Value::into_map_iter
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - OwnedMapIter::Array
    - len
    - Err
    - into_iter
    - Ok
    - OwnedMapIter::Map
    - Self::Array
    linkageType: ''
    returnType: Result
    signature: pub fn into_map_iter(self) -> Result<OwnedMapIter, Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:514,1
    - Dst: Self::Array
      Src: /src/redis-rs/redis/src/types.rs:514,1
    - Dst: Self::extract_error_vec
      Src: /src/redis-rs/redis/src/types.rs:514,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:515,1
    - Dst: Self::Map
      Src: /src/redis-rs/redis/src/types.rs:515,1
    - Dst: Self::extract_error_map
      Src: /src/redis-rs/redis/src/types.rs:515,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/types.rs:517,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/types.rs:517,1
    - Dst: Self::extract_error_map
      Src: /src/redis-rs/redis/src/types.rs:518,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:519,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:521,1
    - Dst: Self::Set
      Src: /src/redis-rs/redis/src/types.rs:521,1
    - Dst: Self::extract_error_vec
      Src: /src/redis-rs/redis/src/types.rs:521,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:522,1
    - Dst: Self::extract_error_vec
      Src: /src/redis-rs/redis/src/types.rs:524,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:526,1
    - Dst: into
      Src: /src/redis-rs/redis/src/types.rs:526,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:527,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 529
      start: 512
    functionDepth: 9
    functionLinenumber: 512
    functionLinenumberEnd: 529
    functionName: Value::extract_error
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::Set
    - Self::Map
    - Err
    - Self::extract_error_vec
    - into
    - extract_error
    - Ok
    - Box::new
    - Self::extract_error_map
    - Self::Array
    linkageType: ''
    returnType: RedisResult
    signature: pub fn extract_error(self) -> RedisResult<Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/types.rs:532,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/types.rs:532,1
    - Dst: "into_iter()\n            .map(Self::extract_error)\n            .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/types.rs:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vec<Self>
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: Value::extract_error_vec
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::map
    - into_iter
    - "into_iter()\n            .map(Self::extract_error)\n            .collect::<RedisResult<Vec<_>>>"
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn extract_error_vec(vec: Vec<Self>) -> RedisResult<Vec<Self>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/types.rs:538,1
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:538,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/types.rs:539,1
    - Dst: push
      Src: /src/redis-rs/redis/src/types.rs:540,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/types.rs:540,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/types.rs:540,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:542,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - map
    argTypes:
    - Vec<(Self, Self)>
    constantsTouched: []
    func_position:
      end: 543
      start: 537
    functionDepth: 15
    functionLinenumber: 537
    functionLinenumberEnd: 543
    functionName: Value::extract_error_map
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - len
    - extract_error
    - push
    - impl combine::Parser::extract_error
    - into_iter
    - Ok
    - Vec::with_capacity
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn extract_error_map(map: Vec<(Self, Self)>) -> RedisResult<Vec<(Self,
      Self)>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/types.rs:547,1
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 551
      start: 545
    functionDepth: 3
    functionLinenumber: 545
    functionLinenumberEnd: 551
    functionName: Value::is_collection_of_len
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::len
    - len
    linkageType: ''
    returnType: bool
    signature: 'fn is_collection_of_len(&self, len: usize) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: Value::is_error_that_requires_action
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn is_error_that_requires_action(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:564,1
    - Dst: details
      Src: /src/redis-rs/redis/src/types.rs:587,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 592
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 592
    functionName: Value::fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - std::str::from_utf8
    - details
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:601,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:601,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/types.rs:601,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/types.rs:601,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:602,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:602,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 5
    functionLinenumber: 599
    functionLinenumberEnd: 604
    functionName: RedisResult::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Err
    - clone
    - Result::map
    - from_redis_value_ref
    - Ok
    - Self::into
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:608,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:608,1
    - Dst: into
      Src: /src/redis-rs/redis/src/types.rs:608,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 611
      start: 606
    functionDepth: 5
    functionLinenumber: 606
    functionLinenumberEnd: 611
    functionName: RedisResult::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Result::map
    - from_redis_value
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/src/types.rs:655,1
    - Dst: '&str::lines'
      Src: /src/redis-rs/redis/src/types.rs:656,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/types.rs:657,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/types.rs:657,1
    - Dst: splitn
      Src: /src/redis-rs/redis/src/types.rs:660,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:661,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:661,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:662,1
    - Dst: Option::to_string
      Src: /src/redis-rs/redis/src/types.rs:662,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/types.rs:665,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/src/types.rs:665,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - kvpairs
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 668
      start: 654
    functionDepth: 9
    functionLinenumber: 654
    functionLinenumberEnd: 668
    functionName: InfoDict::new
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - to_string
    - HashMap::new
    - Option::to_string
    - splitn
    - '&str::lines'
    - starts_with
    - next
    - Value::SimpleString
    - is_empty
    - insert
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(kvpairs: &str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InfoDict::find
      Src: /src/redis-rs/redis/src/types.rs:673,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:674,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/types.rs:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 677
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 677
    functionName: InfoDict::get
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Result::ok
    - InfoDict::find
    - from_redis_value_ref
    linkageType: ''
    returnType: Option
    signature: 'pub fn get<T: FromRedisValue>(&self, key: &str) -> Option<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/types.rs:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&&str'
    constantsTouched: []
    func_position:
      end: 682
      start: 680
    functionDepth: 14
    functionLinenumber: 680
    functionLinenumberEnd: 682
    functionName: InfoDict::find
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub fn find(&self, key: &&str) -> Option<&Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InfoDict::find
      Src: /src/redis-rs/redis/src/types.rs:686,1
    - Dst: Option::is_some
      Src: /src/redis-rs/redis/src/types.rs:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&&str'
    constantsTouched: []
    func_position:
      end: 687
      start: 685
    functionDepth: 15
    functionLinenumber: 685
    functionLinenumberEnd: 687
    functionName: InfoDict::contains_key
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Option::is_some
    - InfoDict::find
    linkageType: ''
    returnType: bool
    signature: 'pub fn contains_key(&self, key: &&str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 692
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 692
    functionName: InfoDict::len
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/types.rs:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 697
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 697
    functionName: InfoDict::is_empty
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - is_empty
    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: 705
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 705
    functionName: InfoDict::deref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Self::Target'
    signature: fn deref(&self) -> &Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:754,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/types.rs:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 755
      start: 753
    functionDepth: 6
    functionLinenumber: 753
    functionLinenumberEnd: 755
    functionName: ReplicaInfo::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value
    - Option::clone
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:758,1
    - Dst: Value::into_sequence
      Src: /src/redis-rs/redis/src/types.rs:758,1
    - Dst: Option::len
      Src: /src/redis-rs/redis/src/types.rs:762,1
    - Dst: Option::into_iter
      Src: /src/redis-rs/redis/src/types.rs:768,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:769,1
    - Dst: Option::next
      Src: /src/redis-rs/redis/src/types.rs:769,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:769,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:770,1
    - Dst: Option::next
      Src: /src/redis-rs/redis/src/types.rs:770,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:770,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:771,1
    - Dst: Option::next
      Src: /src/redis-rs/redis/src/types.rs:771,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:771,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:772,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 777
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 777
    functionName: ReplicaInfo::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Value::into_sequence
    - Option::into_iter
    - from_redis_value
    - Option::expect
    - Option::len
    - get_owned_inner_value
    - Ok
    - Option::next
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:782,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/types.rs:782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 783
      start: 781
    functionDepth: 6
    functionLinenumber: 781
    functionLinenumberEnd: 783
    functionName: Role::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value
    - Option::clone
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:786,1
    - Dst: Value::into_sequence
      Src: /src/redis-rs/redis/src/types.rs:786,1
    - Dst: Option::len
      Src: /src/redis-rs/redis/src/types.rs:790,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/src/types.rs:797,1
    - Dst: Self::new_primary
      Src: /src/redis-rs/redis/src/types.rs:798,1
    - Dst: Self::new_replica
      Src: /src/redis-rs/redis/src/types.rs:799,1
    - Dst: Self::new_sentinel
      Src: /src/redis-rs/redis/src/types.rs:800,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 808
      start: 785
    functionDepth: 3
    functionLinenumber: 785
    functionLinenumberEnd: 808
    functionName: Role::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::new_sentinel
    - Value::into_sequence
    - as_slice
    - Self::new_primary
    - Option::len
    - get_owned_inner_value
    - Self::new_replica
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/types.rs:813,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/types.rs:820,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:821,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:823,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:823,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:823,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:824,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:824,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:824,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:826,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 830
      start: 812
    functionDepth: 3
    functionLinenumber: 812
    functionLinenumberEnd: 830
    functionName: Role::new_primary
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::len
    - Self::next
    - from_redis_value
    - Option::expect
    - Ok
    - Self::into_iter
    linkageType: ''
    returnType: Result
    signature: 'fn new_primary(values: Vec<Value>) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/types.rs:833,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/types.rs:840,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:841,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:843,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:843,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:843,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:844,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:844,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:844,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:845,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:845,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:845,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:846,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:846,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:846,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:848,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 854
      start: 832
    functionDepth: 3
    functionLinenumber: 832
    functionLinenumberEnd: 854
    functionName: Role::new_replica
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::len
    - Self::next
    - from_redis_value
    - Option::expect
    - Ok
    - Self::into_iter
    linkageType: ''
    returnType: Result
    signature: 'fn new_replica(values: Vec<Value>) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/types.rs:857,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/types.rs:863,1
    - Dst: std::iter::Chain::nth
      Src: /src/redis-rs/redis/src/types.rs:863,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/types.rs:863,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:864,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:865,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 866
      start: 856
    functionDepth: 3
    functionLinenumber: 856
    functionLinenumberEnd: 866
    functionName: Role::new_sentinel
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::len
    - from_redis_value
    - Ok
    - Self::into_iter
    - std::iter::Chain::nth
    - expect
    linkageType: ''
    returnType: Result
    signature: 'fn new_sentinel(values: Vec<Value>) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisWrite::write_arg
      Src: /src/redis-rs/redis/src/types.rs:876,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:876,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - impl fmt::Display
    constantsTouched: []
    func_position:
      end: 877
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 877
    functionName: RedisWrite::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - to_string
    - RedisWrite::write_arg
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_arg_fmt(&mut self, arg: impl fmt::Display)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - additional
    argTypes:
    - impl IntoIterator<Item = usize>
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: RedisWrite::reserve_space_for_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn reserve_space_for_args(&mut self, additional: impl IntoIterator<Item
      = usize>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/types.rs:991,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/types.rs:992,1
    - Dst: RedisWrite::writer_for_next_arg
      Src: /src/redis-rs/redis/src/types.rs:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 994
      start: 939
    functionDepth: 9
    functionLinenumber: 939
    functionLinenumberEnd: 994
    functionName: RedisWrite::bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - RedisWrite::writer_for_next_arg
    - Vec::with_capacity
    linkageType: ''
    returnType: impl bytes::BufMut + '_
    signature: 'fn bufmut_for_next_arg(&mut self, capacity: usize) -> impl bytes::BufMut
      + ''_'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::push
      Src: /src/redis-rs/redis/src/types.rs:999,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/types.rs:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 15
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: Vec::write_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - to_owned
    - Vec::push
    linkageType: ''
    returnType: void
    signature: 'fn write_arg(&mut self, arg: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::push
      Src: /src/redis-rs/redis/src/types.rs:1003,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1003,1
    - Dst: String::into_bytes
      Src: /src/redis-rs/redis/src/types.rs:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - impl fmt::Display
    constantsTouched: []
    func_position:
      end: 1004
      start: 1002
    functionDepth: 15
    functionLinenumber: 1002
    functionLinenumberEnd: 1004
    functionName: Vec::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - to_string
    - String::into_bytes
    - Vec::push
    linkageType: ''
    returnType: void
    signature: 'fn write_arg_fmt(&mut self, arg: impl fmt::Display)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::push
      Src: /src/redis-rs/redis/src/types.rs:1007,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/types.rs:1007,1
    - Dst: Vec::last_mut
      Src: /src/redis-rs/redis/src/types.rs:1008,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/types.rs:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1006
    functionDepth: 15
    functionLinenumber: 1006
    functionLinenumberEnd: 1009
    functionName: Vec::writer_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::last_mut
    - unwrap
    - Vec::new
    - Vec::push
    linkageType: ''
    returnType: impl io::Write + '_
    signature: fn writer_for_next_arg(&mut self) -> impl io::Write + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::reserve
      Src: /src/redis-rs/redis/src/types.rs:1016,1
    - Dst: impl IntoIterator<Item = usize>::into_iter
      Src: /src/redis-rs/redis/src/types.rs:1016,1
    - Dst: std::iter::Chain::count
      Src: /src/redis-rs/redis/src/types.rs:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - additional
    argTypes:
    - impl IntoIterator<Item = usize>
    constantsTouched: []
    func_position:
      end: 1017
      start: 1011
    functionDepth: 1
    functionLinenumber: 1011
    functionLinenumberEnd: 1017
    functionName: Vec::reserve_space_for_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::count
    - Vec::reserve
    - impl IntoIterator<Item = usize>::into_iter
    linkageType: ''
    returnType: void
    signature: 'fn reserve_space_for_args(&mut self, additional: impl IntoIterator<Item
      = usize>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::push
      Src: /src/redis-rs/redis/src/types.rs:1021,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/types.rs:1021,1
    - Dst: Vec::last_mut
      Src: /src/redis-rs/redis/src/types.rs:1022,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/types.rs:1022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1023
      start: 1020
    functionDepth: 15
    functionLinenumber: 1020
    functionLinenumberEnd: 1023
    functionName: Vec::bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::last_mut
    - unwrap
    - Vec::with_capacity
    - Vec::push
    linkageType: ''
    returnType: impl bytes::BufMut + '_
    signature: 'fn bufmut_for_next_arg(&mut self, capacity: usize) -> impl bytes::BufMut
      + ''_'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/types.rs:1042,1
    - Dst: ToRedisArgs::write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1041
    functionDepth: 17
    functionLinenumber: 1041
    functionLinenumberEnd: 1045
    functionName: ToRedisArgs::to_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - ToRedisArgs::write_redis_args
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: fn to_redis_args(&self) -> Vec<Vec<u8>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1061
    functionName: ToRedisArgs::describe_numeric_behavior
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NumericBehavior
    signature: fn describe_numeric_behavior(&self) -> NumericBehavior
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1071
    functionName: ToRedisArgs::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::make_arg_iter_ref
      Src: /src/redis-rs/redis/src/types.rs:1080,1
    - Dst: '&[Self]::iter'
      Src: /src/redis-rs/redis/src/types.rs:1080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - items
    - out
    argTypes:
    - '&[Self]'
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1081
      start: 1076
    functionDepth: 10
    functionLinenumber: 1076
    functionLinenumberEnd: 1081
    functionName: ToRedisArgs::write_args_from_slice
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::make_arg_iter_ref
    - '&[Self]::iter'
    linkageType: ''
    returnType: void
    signature: 'fn write_args_from_slice<W>(items: &[Self], out: &mut W)whereW: ?Sized
      + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:1093,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - items
    - out
    argTypes:
    - I
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1095
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1095
    functionName: ToRedisArgs::make_arg_iter_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Option::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn make_arg_iter_ref<''a, I, W>(items: I, out: &mut W)whereW: ?Sized
      + RedisWrite,I: Iterator<Item = &''a Self>,Self: ''a,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[Self]::len'
      Src: /src/redis-rs/redis/src/types.rs:1099,1
    - Dst: num_of_args
      Src: /src/redis-rs/redis/src/types.rs:1099,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - items
    argTypes:
    - '&[Self]'
    constantsTouched: []
    func_position:
      end: 1100
      start: 1098
    functionDepth: 3
    functionLinenumber: 1098
    functionLinenumberEnd: 1100
    functionName: ToRedisArgs::is_single_vec_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - '&[Self]::len'
    - num_of_args
    linkageType: ''
    returnType: bool
    signature: 'fn is_single_vec_arg(items: &[Self]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:9,1
    - Dst: TlsFilePaths::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1103
    functionDepth: 16
    functionLinenumber: 1103
    functionLinenumberEnd: 1122
    functionName: itoa_based_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - TlsFilePaths::as_bytes
    - Self::format
    - ::itoa::Buffer::new
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: non_zero_itoa_based_to_redis_impl::get
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:9,1
    - Dst: TlsFilePaths::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1124
    functionDepth: 14
    functionLinenumber: 1124
    functionLinenumberEnd: 1143
    functionName: non_zero_itoa_based_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::as_bytes
    - Self::format
    - ::itoa::Buffer::new
    - write_arg
    - non_zero_itoa_based_to_redis_impl::get
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::ryu::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:9,1
    - Dst: TlsFilePaths::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:9,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1145
    functionDepth: 16
    functionLinenumber: 1145
    functionLinenumberEnd: 1164
    functionName: ryu_based_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - TlsFilePaths::as_bytes
    - ::ryu::Buffer::new
    - Self::format
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:1171,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/types.rs:1172,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:1173,1
    - Dst: TlsFilePaths::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:1173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1174
      start: 1167
    functionDepth: 16
    functionLinenumber: 1167
    functionLinenumberEnd: 1174
    functionName: u8::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - TlsFilePaths::as_bytes
    - Self::format
    - ::itoa::Buffer::new
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:1180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - items
    - out
    argTypes:
    - '&[Self]'
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1181
      start: 1176
    functionDepth: 16
    functionLinenumber: 1176
    functionLinenumberEnd: 1181
    functionName: u8::write_args_from_slice
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_args_from_slice<W>(items: &[Self], out: &mut W)whereW: ?Sized
      + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _items
    argTypes:
    - '&[Self]'
    constantsTouched: []
    func_position:
      end: 1185
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1185
    functionName: u8::is_single_vec_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn is_single_vec_arg(_items: &[Self]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: bignum_to_redis_impl::to_string
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: String::into_bytes
      Src: /src/redis-rs/redis/src/types.rs:7,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1223
    functionDepth: 16
    functionLinenumber: 1223
    functionLinenumberEnd: 1236
    functionName: bignum_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - bignum_to_redis_impl::to_string
    - String::into_bytes
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:1252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1253
      start: 1248
    functionDepth: 16
    functionLinenumber: 1248
    functionLinenumberEnd: 1253
    functionName: bool::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:1263,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:1263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1264
      start: 1259
    functionDepth: 16
    functionLinenumber: 1259
    functionLinenumberEnd: 1264
    functionName: String::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:1273,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis/src/types.rs:1273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1274
      start: 1269
    functionDepth: 16
    functionLinenumber: 1269
    functionLinenumberEnd: 1274
    functionName: '&str::write_redis_args'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - '&str::as_bytes'
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:1290,1
    - Dst: RedisResult::write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:1291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1293
      start: 1285
    functionDepth: 17
    functionLinenumber: 1285
    functionLinenumberEnd: 1293
    functionName: Cow::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - RedisResult::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:1310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1312
      start: 1305
    functionDepth: 17
    functionLinenumber: 1305
    functionLinenumberEnd: 1312
    functionName: Option::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: describe_numeric_behavior
      Src: /src/redis-rs/redis/src/types.rs:1316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1314
    functionDepth: 1
    functionLinenumber: 1314
    functionLinenumberEnd: 1319
    functionName: Option::describe_numeric_behavior
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - describe_numeric_behavior
    linkageType: ''
    returnType: NumericBehavior
    signature: fn describe_numeric_behavior(&self) -> NumericBehavior
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: num_of_args
      Src: /src/redis-rs/redis/src/types.rs:1323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1321
    functionDepth: 1
    functionLinenumber: 1321
    functionLinenumberEnd: 1326
    functionName: Option::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - num_of_args
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToRedisArgs::write_args_from_slice
      Src: /src/redis-rs/redis/src/types.rs:11,1
    - Dst: ToRedisArgs::is_single_vec_arg
      Src: /src/redis-rs/redis/src/types.rs:15,1
    - Dst: impl_write_redis_args_for_collection::len
      Src: /src/redis-rs/redis/src/types.rs:18,1
    - Dst: num_of_args
      Src: /src/redis-rs/redis/src/types.rs:19,1
    - Dst: impl_write_redis_args_for_collection::len
      Src: /src/redis-rs/redis/src/types.rs:21,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1329
    functionDepth: 20
    functionLinenumber: 1329
    functionLinenumberEnd: 1359
    functionName: impl_write_redis_args_for_collection
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - ToRedisArgs::write_args_from_slice
    - ToRedisArgs::is_single_vec_arg
    - num_of_args
    - impl_write_redis_args_for_collection::len
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:11,1
    - Dst: num_of_args
      Src: /src/redis-rs/redis/src/types.rs:15,1
    - Dst: describe_numeric_behavior
      Src: /src/redis-rs/redis/src/types.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1361
    functionDepth: 17
    functionLinenumber: 1361
    functionLinenumberEnd: 1386
    functionName: deref_to_write_redis_args_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - num_of_args
    - describe_numeric_behavior
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1427
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1427
    functionName: impl_to_redis_args_for_set
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: impl combine::Parser::write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:15,1
    - Dst: impl_to_redis_args_for_map::len
      Src: /src/redis-rs/redis/src/types.rs:20,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1454
    functionDepth: 17
    functionLinenumber: 1454
    functionLinenumberEnd: 1482
    functionName: impl_to_redis_args_for_map
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - impl_to_redis_args_for_map::len
    - impl combine::Parser::write_redis_args
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1528
    functionName: to_redis_args_for_tuple
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToRedisArgs::write_args_from_slice
      Src: /src/redis-rs/redis/src/types.rs:1548,1
    - Dst: '&[T; N]::as_slice'
      Src: /src/redis-rs/redis/src/types.rs:1548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1549
      start: 1544
    functionDepth: 20
    functionLinenumber: 1544
    functionLinenumberEnd: 1549
    functionName: '&[T; N]::write_redis_args'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - ToRedisArgs::write_args_from_slice
    - '&[T; N]::as_slice'
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToRedisArgs::is_single_vec_arg
      Src: /src/redis-rs/redis/src/types.rs:1552,1
    - Dst: '&[T; N]::len'
      Src: /src/redis-rs/redis/src/types.rs:1555,1
    - Dst: num_of_args
      Src: /src/redis-rs/redis/src/types.rs:1556,1
    - Dst: '&[T; N]::len'
      Src: /src/redis-rs/redis/src/types.rs:1558,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1551
    functionDepth: 4
    functionLinenumber: 1551
    functionLinenumberEnd: 1560
    functionName: '&[T; N]::num_of_args'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - ToRedisArgs::is_single_vec_arg
    - num_of_args
    - '&[T; N]::len'
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<T>::try_into
      Src: /src/redis-rs/redis/src/types.rs:1568,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1569,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - items
    - original_value
    argTypes:
    - Vec<T>
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1578
      start: 1564
    functionDepth: 0
    functionLinenumber: 1564
    functionLinenumberEnd: 1578
    functionName: vec_to_array
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec<T>::try_into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn vec_to_array<T, const N: usize>(items: Vec<T>,original_value: &Value,)
      -> Result<[T; N], ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_byte_slice
      Src: /src/redis-rs/redis/src/types.rs:1583,1
    - Dst: vec_to_array
      Src: /src/redis-rs/redis/src/types.rs:1584,1
    - Dst: FromRedisValue::from_redis_value_refs
      Src: /src/redis-rs/redis/src/types.rs:1594,1
    - Dst: vec_to_array
      Src: /src/redis-rs/redis/src/types.rs:1595,1
    - Dst: vec_to_array
      Src: /src/redis-rs/redis/src/types.rs:1597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1600
      start: 1581
    functionDepth: 1
    functionLinenumber: 1581
    functionLinenumberEnd: 1600
    functionName: '[T; N]::from_redis_value_ref'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_refs
    - FromRedisValue::from_byte_slice
    - vec_to_array
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<[T; N], ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:1603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1604
      start: 1602
    functionDepth: 6
    functionLinenumber: 1602
    functionLinenumberEnd: 1604
    functionName: '[T; N]::from_redis_value'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:1628,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/types.rs:1628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1629
      start: 1624
    functionDepth: 6
    functionLinenumber: 1624
    functionLinenumberEnd: 1629
    functionName: FromRedisValue::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 7
    functionsReached:
    - Self::from_redis_value
    - Option::clone
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&[Value]::iter'
      Src: /src/redis-rs/redis/src/types.rs:1640,1
    - Dst: map
      Src: /src/redis-rs/redis/src/types.rs:1640,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:1640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - '&[Value]'
    constantsTouched: []
    func_position:
      end: 1644
      start: 1639
    functionDepth: 10
    functionLinenumber: 1639
    functionLinenumberEnd: 1644
    functionName: FromRedisValue::from_redis_value_refs
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - map
    - '&[Value]::iter'
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_refs(items: &[Value]) -> Result<Vec<Self>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<Value>::into_iter
      Src: /src/redis-rs/redis/src/types.rs:1649,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/types.rs:1649,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:1649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 1653
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1653
    functionName: FromRedisValue::from_redis_values
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::map
    - Vec<Value>::into_iter
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_values(items: Vec<Value>) -> Result<Vec<Self>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<Value>::into_iter
      Src: /src/redis-rs/redis/src/types.rs:1658,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/types.rs:1658,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:1658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 1662
      start: 1657
    functionDepth: 1
    functionLinenumber: 1657
    functionLinenumberEnd: 1662
    functionName: FromRedisValue::from_each_redis_values
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::map
    - Vec<Value>::into_iter
    - collect
    linkageType: ''
    returnType: Vec
    signature: 'fn from_each_redis_values(items: Vec<Value>) -> Vec<Result<Self, ParsingError>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:1666,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/types.rs:1666,1
    - Dst: into
      Src: /src/redis-rs/redis/src/types.rs:1666,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:1666,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/types.rs:1666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - _vec
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1669
      start: 1665
    functionDepth: 6
    functionLinenumber: 1665
    functionLinenumberEnd: 1669
    functionName: FromRedisValue::from_byte_slice
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - Self::from_redis_value
    - into
    - Result::map
    - Value::BulkString
    - ok
    linkageType: ''
    returnType: Option
    signature: 'fn from_byte_slice(_vec: &[u8]) -> Option<Vec<Self>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:1673,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/types.rs:1673,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:1673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _vec
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 1674
      start: 1672
    functionDepth: 6
    functionLinenumber: 1672
    functionLinenumberEnd: 1674
    functionName: FromRedisValue::from_byte_vec
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value
    - Result::map
    - Value::BulkString
    linkageType: ''
    returnType: Result
    signature: 'fn from_byte_vec(_vec: Vec<u8>) -> Result<Vec<Self>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/types.rs:1683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1687
      start: 1677
    functionDepth: 0
    functionLinenumber: 1677
    functionLinenumberEnd: 1687
    functionName: get_inner_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: '&Value'
    signature: 'fn get_inner_value(v: &Value) -> &Value'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1699
      start: 1689
    functionDepth: 0
    functionLinenumber: 1689
    functionLinenumberEnd: 1699
    functionName: get_owned_inner_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Value
    signature: 'fn get_owned_inner_value(v: Value) -> Value'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:12,1
    - Dst: parse::<$t>
      Src: /src/redis-rs/redis/src/types.rs:13,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:17,1
    - Dst: parse::<$t>
      Src: /src/redis-rs/redis/src/types.rs:17,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:18,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:21,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1701
    functionDepth: 0
    functionLinenumber: 1701
    functionLinenumberEnd: 1726
    functionName: from_redis_value_for_num_internal
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - parse::<$t>
    - std::str::from_utf8
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value_for_num_internal
      Src: /src/redis-rs/redis/src/types.rs:4,1
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1728
    functionDepth: 6
    functionLinenumber: 1728
    functionLinenumberEnd: 1740
    functionName: from_redis_value_for_num
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_for_num_internal
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1745
      start: 1743
    functionDepth: 0
    functionLinenumber: 1743
    functionLinenumberEnd: 1745
    functionName: u8::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:1748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1749
      start: 1747
    functionDepth: 6
    functionLinenumber: 1747
    functionLinenumberEnd: 1749
    functionName: u8::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:1753,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/types.rs:1753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vec
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1754
      start: 1752
    functionDepth: 1
    functionLinenumber: 1752
    functionLinenumberEnd: 1754
    functionName: u8::from_byte_slice
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Some
    - to_vec
    linkageType: ''
    returnType: Option
    signature: 'fn from_byte_slice(vec: &[u8]) -> Option<Vec<Self>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 1757
      start: 1755
    functionDepth: 0
    functionLinenumber: 1755
    functionLinenumberEnd: 1757
    functionName: u8::from_byte_vec
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_byte_vec(vec: Vec<u8>) -> Result<Vec<Self>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: <$t>::try_from
      Src: /src/redis-rs/redis/src/types.rs:4,1
    - Dst: Result::map_err
      Src: /src/redis-rs/redis/src/types.rs:4,1
    - Dst: parse::<$t>
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:11,1
    - Dst: parse::<$t>
      Src: /src/redis-rs/redis/src/types.rs:11,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:12,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1779
    functionDepth: 1
    functionLinenumber: 1779
    functionLinenumberEnd: 1797
    functionName: from_redis_value_for_bignum_internal
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - <$t>::try_from
    - std::str::from_utf8
    - Result::map_err
    - parse::<$t>
    - Ok
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value_for_bignum_internal
      Src: /src/redis-rs/redis/src/types.rs:4,1
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:8,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1804
    functionDepth: 6
    functionLinenumber: 1804
    functionLinenumberEnd: 1816
    functionName: from_redis_value_for_bignum
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_for_bignum_internal
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1829,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1831,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1832,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1835,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1837,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1844,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1846,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1851,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1852,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1855
      start: 1828
    functionDepth: 1
    functionLinenumber: 1828
    functionLinenumberEnd: 1855
    functionName: bool::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_inner_value
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:1858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1859
      start: 1857
    functionDepth: 6
    functionLinenumber: 1857
    functionLinenumberEnd: 1859
    functionName: bool::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1864,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1866,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/types.rs:1866,1
    - Dst: Vec::as_slice
      Src: /src/redis-rs/redis/src/types.rs:1866,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1867,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/types.rs:1867,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1868,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/types.rs:1868,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:1868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1871
      start: 1863
    functionDepth: 9
    functionLinenumber: 1863
    functionLinenumberEnd: 1871
    functionName: CString::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::as_slice
    - get_inner_value
    - Ok
    - as_bytes
    - Self::new
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1873,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1875,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/types.rs:1875,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1876,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/types.rs:1876,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1877,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/types.rs:1877,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1880
      start: 1872
    functionDepth: 9
    functionLinenumber: 1872
    functionLinenumberEnd: 1880
    functionName: CString::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::new
    - Ok
    - get_owned_inner_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1885,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1887,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:1887,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1887,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1888,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:1888,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1889,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1889,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1893,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1893,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1894,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1894,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1895,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1895,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1898
      start: 1884
    functionDepth: 1
    functionLinenumber: 1884
    functionLinenumberEnd: 1898
    functionName: String::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 2
    functionsReached:
    - to_string
    - '&str::to_string'
    - get_inner_value
    - std::str::from_utf8
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1901,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1903,1
    - Dst: Self::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:1903,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1904,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:1904,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1905,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1906,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1907,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1907,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1908,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1911
      start: 1900
    functionDepth: 1
    functionLinenumber: 1900
    functionLinenumberEnd: 1911
    functionName: String::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - to_string
    - '&str::to_string'
    - Self::from_utf8
    - Ok
    - get_owned_inner_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:6,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:6,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:10,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:10,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1914
    functionDepth: 7
    functionLinenumber: 1914
    functionLinenumberEnd: 1931
    functionName: pointer_from_redis_value_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - FromRedisValue::from_redis_value
    - Result::map
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_byte_slice
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: FromRedisValue::from_redis_value_refs
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: FromRedisValue::from_redis_value_refs
      Src: /src/redis-rs/redis/src/types.rs:15,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:15,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:19,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/types.rs:19,1
    - Dst: ClientCertPaths::push
      Src: /src/redis-rs/redis/src/types.rs:21,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:24,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:28,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:30,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/types.rs:30,1
    - Dst: FromRedisValue::from_byte_vec
      Src: /src/redis-rs/redis/src/types.rs:39,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:39,1
    - Dst: FromRedisValue::from_redis_values
      Src: /src/redis-rs/redis/src/types.rs:40,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:40,1
    - Dst: FromRedisValue::from_redis_values
      Src: /src/redis-rs/redis/src/types.rs:41,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:41,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:45,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/types.rs:45,1
    - Dst: ClientCertPaths::push
      Src: /src/redis-rs/redis/src/types.rs:47,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:50,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:54,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:56,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/types.rs:56,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1941
    functionDepth: 15
    functionLinenumber: 1941
    functionLinenumberEnd: 2007
    functionName: from_vec_from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Err
    - Result::map
    - FromRedisValue::from_redis_values
    - FromRedisValue::from_byte_slice
    - FromRedisValue::from_byte_vec
    - Ok
    - Value::Map
    - FromRedisValue::from_redis_value_refs
    - ClientCertPaths::push
    - FromRedisValue::from_redis_value
    - Vec::new
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:9,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/types.rs:9,1
    - Dst: Option::as_map_iter
      Src: /src/redis-rs/redis/src/types.rs:10,1
    - Dst: Option::ok_or_else
      Src: /src/redis-rs/redis/src/types.rs:10,1
    - Dst: map
      Src: /src/redis-rs/redis/src/types.rs:10,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:14,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:10,1
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:21,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:23,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/types.rs:23,1
    - Dst: Option::into_map_iter
      Src: /src/redis-rs/redis/src/types.rs:24,1
    - Dst: Result::map_err
      Src: /src/redis-rs/redis/src/types.rs:24,1
    - Dst: map
      Src: /src/redis-rs/redis/src/types.rs:24,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:28,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:28,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:28,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:24,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2048
      start: 2013
    functionDepth: 10
    functionLinenumber: 2013
    functionLinenumberEnd: 2048
    functionName: impl_from_redis_value_for_map
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Option::as_map_iter
    - map
    - Default::default
    - Result::map_err
    - from_redis_value
    - Option::into_map_iter
    - Ok
    - from_redis_value_ref
    - get_owned_inner_value
    - Option::ok_or_else
    - collect
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::as_sequence
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: Option::ok_or_else
      Src: /src/redis-rs/redis/src/types.rs:8,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/types.rs:11,1
    - Dst: map
      Src: /src/redis-rs/redis/src/types.rs:11,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:11,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:11,1
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:15,1
    - Dst: Option::into_sequence
      Src: /src/redis-rs/redis/src/types.rs:16,1
    - Dst: Result::map_err
      Src: /src/redis-rs/redis/src/types.rs:16,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/types.rs:19,1
    - Dst: map
      Src: /src/redis-rs/redis/src/types.rs:19,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:21,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:19,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2073
    functionDepth: 10
    functionLinenumber: 2073
    functionLinenumberEnd: 2099
    functionName: impl_from_redis_value_for_set
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - map
    - Result::map_err
    - from_redis_value
    - into_iter
    - from_redis_value_ref
    - iter
    - Option::as_sequence
    - get_owned_inner_value
    - Option::into_sequence
    - Option::ok_or_else
    - collect
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2126,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/types.rs:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2127
      start: 2125
    functionDepth: 2
    functionLinenumber: 2125
    functionLinenumberEnd: 2127
    functionName: Value::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 9
    functionsReached:
    - Option::clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2131
      start: 2129
    functionDepth: 0
    functionLinenumber: 2129
    functionLinenumberEnd: 2131
    functionName: Value::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 2
    functionsReached:
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:2137,1
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/types.rs:2137,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:2137,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2140
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2140
    functionName: ()::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Err
    - to_string
    - ParsingError::from
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<(), ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2144
      start: 2142
    functionDepth: 6
    functionLinenumber: 2142
    functionLinenumberEnd: 2144
    functionName: ()::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<(), ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2339
      start: 2147
    functionDepth: 0
    functionLinenumber: 2147
    functionLinenumberEnd: 2339
    functionName: from_redis_value_for_tuple
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2356,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2357,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2358,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/types.rs:2358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2359
      start: 2355
    functionDepth: 9
    functionLinenumber: 2355
    functionLinenumberEnd: 2359
    functionName: InfoDict::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::new
    - get_inner_value
    - from_redis_value_ref
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2361,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:2362,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2363,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/types.rs:2363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2364
      start: 2360
    functionDepth: 9
    functionLinenumber: 2360
    functionLinenumberEnd: 2364
    functionName: InfoDict::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value
    - Self::new
    - Ok
    - get_owned_inner_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2369,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2371,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2373,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:2373,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2374
      start: 2368
    functionDepth: 1
    functionLinenumber: 2368
    functionLinenumberEnd: 2374
    functionName: Option::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - get_inner_value
    - Ok
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2376,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2378,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2380,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:2380,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:2380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2381
      start: 2375
    functionDepth: 1
    functionLinenumber: 2375
    functionLinenumberEnd: 2381
    functionName: Option::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - from_redis_value
    - Some
    - Ok
    - get_owned_inner_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2387,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2389,1
    - Dst: Self::copy_from_slice
      Src: /src/redis-rs/redis/src/types.rs:2389,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/types.rs:2389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2392
      start: 2386
    functionDepth: 1
    functionLinenumber: 2386
    functionLinenumberEnd: 2392
    functionName: bytes::Bytes::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - get_inner_value
    - Ok
    - Self::copy_from_slice
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2394,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2396,1
    - Dst: into
      Src: /src/redis-rs/redis/src/types.rs:2396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2399
      start: 2393
    functionDepth: 1
    functionLinenumber: 2393
    functionLinenumberEnd: 2399
    functionName: bytes::Bytes::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - into
    - Ok
    - get_owned_inner_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2406,1
    - Dst: Self::from_slice
      Src: /src/redis-rs/redis/src/types.rs:2406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2409
      start: 2404
    functionDepth: 20
    functionLinenumber: 2404
    functionLinenumberEnd: 2409
    functionName: uuid::Uuid::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Self::from_slice
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2413
      start: 2411
    functionDepth: 6
    functionLinenumber: 2411
    functionLinenumberEnd: 2413
    functionName: uuid::Uuid::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:2422,1
    - Dst: uuid::Uuid::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:2422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 2423
      start: 2418
    functionDepth: 16
    functionLinenumber: 2418
    functionLinenumberEnd: 2423
    functionName: uuid::Uuid::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - uuid::Uuid::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2433
      start: 2431
    functionDepth: 7
    functionLinenumber: 2431
    functionLinenumberEnd: 2433
    functionName: from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 28
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_redis_value_ref<T: FromRedisValue>(v: &Value) -> Result<T,
      ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:2438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2439
      start: 2437
    functionDepth: 6
    functionLinenumber: 2437
    functionLinenumberEnd: 2439
    functionName: from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 24
    functionsReached:
    - FromRedisValue::from_redis_value
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_redis_value<T: FromRedisValue>(v: Value) -> Result<T,
      ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::to_redis_args
      Src: /src/redis-rs/redis/src/types.rs:2460,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/types.rs:2464,1
    - Dst: Self::extend_from_slice
      Src: /src/redis-rs/redis/src/types.rs:2466,1
    - Dst: xxh3_64
      Src: /src/redis-rs/redis/src/types.rs:2470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 2472
      start: 2456
    functionDepth: 9
    functionLinenumber: 2456
    functionLinenumberEnd: 2472
    functionName: calculate_value_digest
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 5
    functionsReached:
    - xxh3_64
    - Self::extend_from_slice
    - Vec::new
    - impl combine::Parser::to_redis_args
    linkageType: ''
    returnType: String
    signature: 'pub fn calculate_value_digest<T: ToRedisArgs>(value: T) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/types.rs:2476,1
    - Dst: TlsFilePaths::chars
      Src: /src/redis-rs/redis/src/types.rs:2476,1
    - Dst: all
      Src: /src/redis-rs/redis/src/types.rs:2476,1
    - Dst: is_ascii_hexdigit
      Src: /src/redis-rs/redis/src/types.rs:2476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2477
      start: 2475
    functionDepth: 10
    functionLinenumber: 2475
    functionLinenumberEnd: 2477
    functionName: is_valid_16_bytes_hex_digest
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::len
    - is_ascii_hexdigit
    - all
    - TlsFilePaths::chars
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_valid_16_bytes_hex_digest(s: &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2497
      start: 2495
    functionDepth: 0
    functionLinenumber: 2495
    functionLinenumberEnd: 2497
    functionName: ProtocolVersion::supports_resp3
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn supports_resp3(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:2522,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:2523,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:2524,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:2525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 2528
      start: 2517
    functionDepth: 16
    functionLinenumber: 2517
    functionLinenumberEnd: 2528
    functionName: ExpireOption::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2541
    functionDepth: 0
    functionLinenumber: 2541
    functionLinenumberEnd: 2546
    functionName: PushInfo::disconnect
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn disconnect() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsFilePaths::as_ref
      Src: /src/redis-rs/redis/src/types.rs:2595,1
    - Dst: Self::Unknown
      Src: /src/redis-rs/redis/src/types.rs:2619,1
    - Dst: TlsFilePaths::to_string
      Src: /src/redis-rs/redis/src/types.rs:2619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 2621
      start: 2594
    functionDepth: 1
    functionLinenumber: 2594
    functionLinenumberEnd: 2621
    functionName: ValueType::from
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::as_ref
    - TlsFilePaths::to_string
    - Self::Unknown
    linkageType: ''
    returnType: Self
    signature: 'fn from(s: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2627,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2628,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2629,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2630,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2631,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2632,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2633,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2634,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2636,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2638,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2639,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2640,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2641,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2642,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2644,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2646,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2648,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 1
    argNames:
    - v
    argTypes:
    - ValueType
    constantsTouched: []
    func_position:
      end: 2652
      start: 2625
    functionDepth: 1
    functionLinenumber: 2625
    functionLinenumberEnd: 2652
    functionName: String::from
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 15
    functionsReached:
    - '&str::to_string'
    linkageType: ''
    returnType: Self
    signature: 'fn from(v: ValueType) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2658,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/types.rs:2658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2661
      start: 2656
    functionDepth: 0
    functionLinenumber: 2656
    functionLinenumberEnd: 2661
    functionName: ValueType::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Ok
    - TlsFilePaths::into
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2665,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/types.rs:2665,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2668
      start: 2663
    functionDepth: 0
    functionLinenumber: 2663
    functionLinenumberEnd: 2668
    functionName: ValueType::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Ok
    - TlsFilePaths::into
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2685
    functionDepth: 0
    functionLinenumber: 2685
    functionLinenumberEnd: 2691
    functionName: IntegerReplyOrNoOp::raw
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: isize
    signature: pub fn raw(&self) -> isize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2698,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2699,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2700,1
    - Dst: Self::IntegerReply
      Src: /src/redis-rs/redis/src/types.rs:2700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2704
      start: 2695
    functionDepth: 0
    functionLinenumber: 2695
    functionLinenumberEnd: 2704
    functionName: IntegerReplyOrNoOp::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::IntegerReply
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2709,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2710,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2711,1
    - Dst: Self::IntegerReply
      Src: /src/redis-rs/redis/src/types.rs:2711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2715
      start: 2706
    functionDepth: 0
    functionLinenumber: 2706
    functionLinenumberEnd: 2715
    functionName: IntegerReplyOrNoOp::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Self::IntegerReply
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&u32'
    constantsTouched: []
    func_position:
      end: 2753
      start: 2748
    functionDepth: 0
    functionLinenumber: 2748
    functionLinenumberEnd: 2753
    functionName: IntegerReplyOrNoOp::eq
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &u32) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: SubscriptionAction::additive
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn additive(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:38,1
    - Dst: impl Clone + ExactSizeIterator::next
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:39,1
    - Dst: str::from_utf8
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:45,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:45,1
    - Dst: impl Clone + ExactSizeIterator::filter_map
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:47,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:48,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:48,1
    - Dst: eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:52,1
    - Dst: eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:54,1
    - Dst: eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:56,1
    - Dst: eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:58,1
    - Dst: eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:60,1
    - Dst: eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:62,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:67,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 68
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 68
    functionName: SubscriptionTracker::to_request
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - str::from_utf8
    - Cmd::args_iter
    - impl Clone + ExactSizeIterator::filter_map
    - to_vec
    - eq_ignore_ascii_case
    - impl Clone + ExactSizeIterator::next
    - ok
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn to_request(cmd: &Cmd,) -> Option<(SubscriptionAction,
      impl Iterator<Item = Vec<u8>>)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: additive
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:87,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:89,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - action
    - args
    argTypes:
    - SubscriptionAction
    - impl Iterator<Item = Vec<u8>>
    constantsTouched: []
    func_position:
      end: 96
      start: 70
    functionDepth: 13
    functionLinenumber: 70
    functionLinenumberEnd: 96
    functionName: SubscriptionTracker::update_with_request
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - additive
    - insert
    - remove
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn update_with_request(&mut self,action: SubscriptionAction,args:
      impl Iterator<Item = Vec<u8>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::to_request
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:100,1
    - Dst: SubscriptionTracker::update_with_request
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 14
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: SubscriptionTracker::update_with_cmd
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - SubscriptionTracker::update_with_request
    - Self::to_request
    linkageType: ''
    returnType: void
    signature: 'fn update_with_cmd<''a>(&''a mut self, cmd: &''a Cmd)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:106,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:107,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:108,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:109,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:110,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:113,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:114,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:115,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:116,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:119,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:120,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:121,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:122,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 10
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: SubscriptionTracker::get_subscription_pipeline
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg
    - crate::pipe
    - iter
    - cmd
    - is_empty
    linkageType: ''
    returnType: Pipeline
    signature: pub(crate) fn get_subscription_pipeline(&self) -> Pipeline
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:138,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:140,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:140,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:140,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:140,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:141,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:141,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:141,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:141,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:142,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:142,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:142,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:142,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:143,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:143,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:143,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:144,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:144,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:144,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:145,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:145,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:145,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:145,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:147,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:147,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:147,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:149,1
    - Dst: pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:150,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:151,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:151,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:151,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:151,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:151,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 11
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: tests::test_add_and_remove_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - Pipeline::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - update_with_cmd
    - SubscriptionTracker::default
    - '&mut Self::cmd'
    - Cmd::arg
    - get_subscription_pipeline
    - pipe
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_add_and_remove_subscriptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:168,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:170,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:170,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:170,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:170,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:171,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:171,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:171,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:171,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:172,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:172,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:172,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:172,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:173,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:173,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:173,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:175,1
    - Dst: pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:176,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:177,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 11
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: tests::test_skip_empty_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - Pipeline::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - update_with_cmd
    - SubscriptionTracker::default
    - Cmd::arg
    - get_subscription_pipeline
    - pipe
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_skip_empty_subscriptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:188,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:190,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:190,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:190,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:191,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:191,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:191,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:193,1
    - Dst: pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:194,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:195,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 187
    functionDepth: 11
    functionLinenumber: 187
    functionLinenumberEnd: 202
    functionName: tests::test_only_unsubscribe_from_existing_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - Pipeline::cmd
    - redis::Cmd::arg
    - update_with_cmd
    - SubscriptionTracker::default
    - Cmd::arg
    - get_subscription_pipeline
    - pipe
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_only_unsubscribe_from_existing_subscriptions()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl_manage_connection::get_connection
      Src: /src/redis-rs/redis/src/r2d2.rs:7,1
    - Dst: Option::check_connection
      Src: /src/redis-rs/redis/src/r2d2.rs:11,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/r2d2.rs:12,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/r2d2.rs:14,1
    - Dst: errors::closed_connection_error
      Src: /src/redis-rs/redis/src/r2d2.rs:14,1
    - Dst: Option::is_open
      Src: /src/redis-rs/redis/src/r2d2.rs:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 29
    functionName: impl_manage_connection
    functionSourceFile: /src/redis-rs/redis/src/r2d2.rs
    functionUses: 0
    functionsReached:
    - impl_manage_connection::get_connection
    - Err
    - Option::is_open
    - Ok
    - errors::closed_connection_error
    - Option::check_connection
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: CommandCacheConfig::new
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enable_cache
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: CommandCacheConfig::set_enable_cache
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_enable_cache(mut self, enable_cache: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_side_ttl
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: CommandCacheConfig::set_client_side_ttl
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_side_ttl(mut self, client_side_ttl: Duration) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/cmd.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 9
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: CommandCacheConfig::default
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/cmd.rs:93,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:94,1
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/src/cmd.rs:95,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cmd.rs:95,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:94,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:94,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:94,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cmd.rs:101,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cmd.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 104
      start: 92
    functionDepth: 10
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: Cmd::fmt
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - String::from_utf8_lossy
    - field
    - debug_struct
    - as_ref
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/redis-rs/redis/src/cmd.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: Iter::next
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - next
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<RedisResult<T>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/redis-rs/redis/src/cmd.rs:137,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:138,1
    - Dst: impl combine::Parser::map_err
      Src: /src/redis-rs/redis/src/cmd.rs:138,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cmd.rs:138,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:145,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:147,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cmd.rs:145,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:148,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:148,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:150,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:151,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:151,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:154,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:155,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 131
    functionDepth: 4
    functionLinenumber: 131
    functionLinenumberEnd: 157
    functionName: CheckedIter::next
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - RedisResult::into_iter
    - from_redis_value::<(u64, _)>
    - and_then
    - impl combine::Parser::map_err
    - into
    - req_packed_command
    - Err
    - next
    - Ok
    - get_packed_command
    - Some
    - T::from_each_redis_values
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<RedisResult<T>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/redis-rs/redis/src/cmd.rs:193,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:194,1
    - Dst: Option::map_err
      Src: /src/redis-rs/redis/src/cmd.rs:194,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cmd.rs:194,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:201,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cmd.rs:201,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:205,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:205,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:207,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:208,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:208,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:211,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:212,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 214
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 214
    functionName: AsyncIterInner::next_item
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - RedisResult::into_iter
    - from_redis_value::<(u64, _)>
    - and_then
    - into
    - Err
    - req_packed_command
    - Option::map_err
    - next
    - Ok
    - T::from_each_redis_values
    - Some
    linkageType: ''
    returnType: Option
    signature: async fn next_item(&mut self) -> Option<RedisResult<T>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamExt::next
      Src: /src/redis-rs/redis/src/cmd.rs:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: AsyncIter::next_item
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - StreamExt::next
    linkageType: ''
    returnType: Option
    signature: pub async fn next_item(&mut self) -> Option<RedisResult<T>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncIter::get_mut
      Src: /src/redis-rs/redis/src/cmd.rs:245,1
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/cmd.rs:246,1
    - Dst: next_item
      Src: /src/redis-rs/redis/src/cmd.rs:250,1
    - Dst: IterOrFuture::Future
      Src: /src/redis-rs/redis/src/cmd.rs:253,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cmd.rs:253,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cmd.rs:254,1
    - Dst: Self::poll_next
      Src: /src/redis-rs/redis/src/cmd.rs:254,1
    - Dst: as_mut
      Src: /src/redis-rs/redis/src/cmd.rs:256,1
    - Dst: poll
      Src: /src/redis-rs/redis/src/cmd.rs:256,1
    - Dst: IterOrFuture::Future
      Src: /src/redis-rs/redis/src/cmd.rs:258,1
    - Dst: IterOrFuture::Iter
      Src: /src/redis-rs/redis/src/cmd.rs:262,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cmd.rs:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 269
      start: 244
    functionDepth: 9
    functionLinenumber: 244
    functionLinenumberEnd: 269
    functionName: AsyncIter::poll_next
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - AsyncIter::get_mut
    - next_item
    - Poll::Ready
    - as_mut
    - IterOrFuture::Iter
    - IterOrFuture::Future
    - Self::poll_next
    - poll
    - std::mem::replace
    - Box::pin
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_next(self: Pin<&mut Self>, cx: &mut Context<''_>) -> Poll<Option<Self::Item>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 1
    argNames:
    - v
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 291
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 291
    functionName: countdigits
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: 'fn countdigits(mut v: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: countdigits
      Src: /src/redis-rs/redis/src/cmd.rs:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: bulklen
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - countdigits
    linkageType: ''
    returnType: usize
    signature: 'fn bulklen(len: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: countdigits
      Src: /src/redis-rs/redis/src/cmd.rs:302,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:302,1
    - Dst: bulklen
      Src: /src/redis-rs/redis/src/cmd.rs:304,1
    - Dst: countdigits
      Src: /src/redis-rs/redis/src/cmd.rs:305,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - args
    - cursor
    argTypes:
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 310
      start: 298
    functionDepth: 3
    functionLinenumber: 298
    functionLinenumberEnd: 310
    functionName: args_len
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - countdigits
    - bulklen
    - len
    linkageType: ''
    returnType: usize
    signature: 'fn args_len<''a, I>(args: I, cursor: u64) -> usizewhereI: IntoIterator<Item
      = Arg<&''a [u8]>> + ExactSizeIterator,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: args_len
      Src: /src/redis-rs/redis/src/cmd.rs:313,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:313,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 4
    functionLinenumber: 312
    functionLinenumberEnd: 314
    functionName: cmd_len
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - Cmd::args_iter
    - args_len
    linkageType: ''
    returnType: usize
    signature: 'pub(crate) fn cmd_len(cmd: &Cmd) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cmd.rs:320,1
    - Dst: write_command_to_vec
      Src: /src/redis-rs/redis/src/cmd.rs:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - args
    - cursor
    argTypes:
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 323
      start: 316
    functionDepth: 9
    functionLinenumber: 316
    functionLinenumberEnd: 323
    functionName: encode_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - write_command_to_vec
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: 'fn encode_command<''a, I>(args: I, cursor: u64) -> Vec<u8>whereI:
      IntoIterator<Item = Arg<&''a [u8]>> + Clone + ExactSizeIterator,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: args_len
      Src: /src/redis-rs/redis/src/cmd.rs:329,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cmd.rs:329,1
    - Dst: Cmd::reserve
      Src: /src/redis-rs/redis/src/cmd.rs:331,1
    - Dst: write_command
      Src: /src/redis-rs/redis/src/cmd.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - args
    - cursor
    argTypes:
    - '&mut Vec<u8>'
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 334
      start: 325
    functionDepth: 4
    functionLinenumber: 325
    functionLinenumberEnd: 334
    functionName: write_command_to_vec
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - write_command
    - clone
    - Cmd::reserve
    - args_len
    linkageType: ''
    returnType: void
    signature: 'fn write_command_to_vec<''a, I>(cmd: &mut Vec<u8>, args: I, cursor:
      u64)whereI: IntoIterator<Item = Arg<&''a [u8]>> + Clone + ExactSizeIterator,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/cmd.rs:340,1
    - Dst: Cmd::extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:342,1
    - Dst: Cmd::extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:343,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/cmd.rs:343,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:343,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:343,1
    - Dst: Cmd::extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:344,1
    - Dst: itoa::Buffer::new
      Src: /src/redis-rs/redis/src/cmd.rs:346,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/cmd.rs:349,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:349,1
    - Dst: Cmd::extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:353,1
    - Dst: Cmd::extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:354,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/cmd.rs:354,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/src/cmd.rs:354,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:354,1
    - Dst: Cmd::extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:355,1
    - Dst: Cmd::extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:357,1
    - Dst: Cmd::extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 3
    argNames:
    - cmd
    - args
    - cursor
    argTypes:
    - '&mut Vec<u8>'
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 360
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 360
    functionName: write_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - len
    - Cmd::extend_from_slice
    - Vec::len
    - itoa::Buffer::new
    - Self::format
    - ::itoa::Buffer::new
    - as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_command<''a, I>(cmd: &mut Vec<u8>, args: I, cursor: u64)whereI:
      IntoIterator<Item = Arg<&''a [u8]>> + Clone + ExactSizeIterator,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:364,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:365,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:365,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 15
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: Cmd::write_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - extend_from_slice
    - Arg::Simple
    - len
    - push
    linkageType: ''
    returnType: void
    signature: 'fn write_arg(&mut self, arg: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:369,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:370,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:370,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - impl fmt::Display
    constantsTouched: []
    func_position:
      end: 371
      start: 368
    functionDepth: 15
    functionLinenumber: 368
    functionLinenumberEnd: 371
    functionName: Cmd::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Arg::Simple
    - len
    - unwrap
    - push
    linkageType: ''
    returnType: void
    signature: 'fn write_arg_fmt(&mut self, arg: impl fmt::Display)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CmdBufferedArgGuard
      Src: /src/redis-rs/redis/src/cmd.rs:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 392
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 392
    functionName: Cmd::writer_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - CmdBufferedArgGuard
    linkageType: ''
    returnType: impl Write + '_
    signature: fn writer_for_next_arg(&mut self) -> impl Write + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/redis-rs/redis/src/cmd.rs:401,1
    - Dst: reserve
      Src: /src/redis-rs/redis/src/cmd.rs:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - additional
    argTypes:
    - impl IntoIterator<Item = usize>
    constantsTouched: []
    func_position:
      end: 403
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 403
    functionName: Cmd::reserve_space_for_args
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - reserve
    linkageType: ''
    returnType: void
    signature: 'fn reserve_space_for_args(&mut self, additional: impl IntoIterator<Item
      = usize>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/redis-rs/redis/src/cmd.rs:407,1
    - Dst: CmdBufferedArgGuard
      Src: /src/redis-rs/redis/src/cmd.rs:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 447
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 447
    functionName: Cmd::bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - CmdBufferedArgGuard
    - reserve
    linkageType: ''
    returnType: impl bytes::BufMut + '_
    signature: 'fn bufmut_for_next_arg(&mut self, capacity: usize) -> impl bytes::BufMut
      + ''_'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/cmd.rs:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 11
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: Cmd::default
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 495
    functionName: Cmd::new
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/cmd.rs:500,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/cmd.rs:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arg_count
    - size_of_data
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 508
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 508
    functionName: Cmd::with_capacity
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Vec::with_capacity
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_capacity(arg_count: usize, size_of_data: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: capacity
      Src: /src/redis-rs/redis/src/cmd.rs:514,1
    - Dst: capacity
      Src: /src/redis-rs/redis/src/cmd.rs:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 515
    functionName: Cmd::capacity
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - capacity
    linkageType: ''
    returnType: (usize, usize)
    signature: pub(crate) fn capacity(&self) -> (usize, usize)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/redis-rs/redis/src/cmd.rs:536,1
    - Dst: clear
      Src: /src/redis-rs/redis/src/cmd.rs:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 545
      start: 535
    functionDepth: 12
    functionLinenumber: 535
    functionLinenumberEnd: 545
    functionName: Cmd::clear
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: pub fn clear(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/cmd.rs:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 564
      start: 561
    functionDepth: 17
    functionLinenumber: 561
    functionLinenumberEnd: 564
    functionName: Cmd::arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 198
    functionsReached:
    - write_redis_args
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn arg<T: ToRedisArgs>(&mut self, arg: T) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cmd.rs:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 571
    functionName: Cmd::take
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - std::mem::take
    linkageType: ''
    returnType: Self
    signature: pub fn take(&mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:592,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 15
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: Cmd::cursor_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 2
    functionsReached:
    - Some
    - push
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn cursor_arg(&mut self, cursor: u64) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cmd.rs:604,1
    - Dst: Cmd::is_empty
      Src: /src/redis-rs/redis/src/cmd.rs:605,1
    - Dst: Cmd::write_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 610
      start: 603
    functionDepth: 11
    functionLinenumber: 603
    functionLinenumberEnd: 610
    functionName: Cmd::get_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 10
    functionsReached:
    - Cmd::write_packed_command
    - Vec::new
    - Cmd::is_empty
    linkageType: ''
    returnType: Vec
    signature: pub fn get_packed_command(&self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_command_to_vec
      Src: /src/redis-rs/redis/src/cmd.rs:621,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:621,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - dst
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 622
      start: 620
    functionDepth: 5
    functionLinenumber: 620
    functionLinenumberEnd: 622
    functionName: Cmd::write_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - unwrap_or
    - Cmd::args_iter
    - write_command_to_vec
    linkageType: ''
    returnType: void
    signature: 'pub fn write_packed_command(&self, dst: &mut Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_command
      Src: /src/redis-rs/redis/src/cmd.rs:625,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:625,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 626
      start: 624
    functionDepth: 4
    functionLinenumber: 624
    functionLinenumberEnd: 626
    functionName: Cmd::write_packed_command_preallocated
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - write_command
    - Cmd::args_iter
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn write_packed_command_preallocated(&self, cmd: &mut Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/cmd.rs:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 632
    functionName: Cmd::in_scan_mode
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - is_some
    linkageType: ''
    returnType: bool
    signature: pub fn in_scan_mode(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut dyn ConnectionLike::req_command'
      Src: /src/redis-rs/redis/src/cmd.rs:639,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:640,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:640,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cmd.rs:640,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:641,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 643
      start: 638
    functionDepth: 19
    functionLinenumber: 638
    functionLinenumberEnd: 643
    functionName: Cmd::query
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 5
    functionsReached:
    - '&mut dyn ConnectionLike::req_command'
    - Err
    - extract_error
    - Ok
    - types::from_redis_value
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn query<T: FromRedisValue>(&self, con: &mut dyn ConnectionLike)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut impl crate::aio::ConnectionLike::req_packed_command'
      Src: /src/redis-rs/redis/src/cmd.rs:652,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:653,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:653,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cmd.rs:653,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 654
      start: 648
    functionDepth: 17
    functionLinenumber: 648
    functionLinenumberEnd: 654
    functionName: Cmd::query_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - types::from_redis_value
    - '&mut impl crate::aio::ConnectionLike::req_packed_command'
    - Ok
    - extract_error
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn query_async<T: FromRedisValue>(&self,con: &mut impl crate::aio::ConnectionLike,)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::looks_like_cursor
      Src: /src/redis-rs/redis/src/cmd.rs:662,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:663,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:666,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:669,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:671,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - value
    argTypes:
    - crate::Value
    constantsTouched: []
    func_position:
      end: 672
      start: 658
    functionDepth: 8
    functionLinenumber: 658
    functionLinenumberEnd: 672
    functionName: Cmd::set_cursor_and_get_batch
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - from_redis_value::<(u64, _)>
    - impl combine::Parser::looks_like_cursor
    - Ok
    - T::from_each_redis_values
    - types::from_redis_value
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'fn set_cursor_and_get_batch<T: FromRedisValue>(&mut self,value: crate::Value,)
      -> RedisResult<Vec<Result<T, ParsingError>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut dyn ConnectionLike::req_command'
      Src: /src/redis-rs/redis/src/cmd.rs:693,1
    - Dst: Cmd::set_cursor_and_get_batch
      Src: /src/redis-rs/redis/src/cmd.rs:695,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:697,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 704
      start: 689
    functionDepth: 19
    functionLinenumber: 689
    functionLinenumberEnd: 704
    functionName: Cmd::iter
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - RedisResult::into_iter
    - Cmd::set_cursor_and_get_batch
    - Ok
    - '&mut dyn ConnectionLike::req_command'
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn iter<T: FromRedisValue>(mut self,con: &mut dyn ConnectionLike,)
      -> RedisResult<Iter<''_, T>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''a mut (dyn AsyncConnection + Send)::req_packed_command'
      Src: /src/redis-rs/redis/src/cmd.rs:727,1
    - Dst: Cmd::set_cursor_and_get_batch
      Src: /src/redis-rs/redis/src/cmd.rs:729,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:731,1
    - Dst: IterOrFuture::Iter
      Src: /src/redis-rs/redis/src/cmd.rs:732,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:733,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&''a mut (dyn AsyncConnection + Send)'
    constantsTouched: []
    func_position:
      end: 738
      start: 723
    functionDepth: 13
    functionLinenumber: 723
    functionLinenumberEnd: 738
    functionName: Cmd::iter_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - IterOrFuture::Iter
    - '&''a mut (dyn AsyncConnection + Send)::req_packed_command'
    - Ok
    - RedisResult::into_iter
    - Cmd::set_cursor_and_get_batch
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn iter_async<''a, T: FromRedisValue + ''a>(mut self,con:
      &''a mut (dyn AsyncConnection + Send),) -> RedisResult<AsyncIter<''a, T>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query::<()>
      Src: /src/redis-rs/redis/src/cmd.rs:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 747
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 747
    functionName: Cmd::exec
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 3
    functionsReached:
    - query::<()>
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn exec(&self, con: &mut dyn ConnectionLike) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query_async::<()>
      Src: /src/redis-rs/redis/src/cmd.rs:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 756
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 756
    functionName: Cmd::exec_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - query_async::<()>
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn exec_async(&self, con: &mut impl crate::aio::ConnectionLike)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cmd.rs:761,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:761,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 770
      start: 759
    functionDepth: 12
    functionLinenumber: 759
    functionLinenumberEnd: 770
    functionName: Cmd::args_iter
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 4
    functionsReached:
    - map
    - iter
    - Arg::Simple
    linkageType: ''
    returnType: impl Clone + ExactSizeIterator
    signature: pub fn args_iter(&self) -> impl Clone + ExactSizeIterator<Item = Arg<&[u8]>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 892
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 892
    functionName: Cmd::arg_idx
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - Cmd::arg_idx
    linkageType: ''
    returnType: Option
    signature: 'fn arg_idx(&self, idx: usize) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - nr
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 805
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 805
    functionName: Cmd::set_no_response
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_no_response(&mut self, nr: bool) -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 811
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 811
    functionName: Cmd::is_no_response
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_no_response(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - command_cache_config
    argTypes:
    - CommandCacheConfig
    constantsTouched: []
    func_position:
      end: 819
      start: 816
    functionDepth: 0
    functionLinenumber: 816
    functionLinenumberEnd: 819
    functionName: Cmd::set_cache_config
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 2
    functionsReached:
    - Some
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_cache_config(&mut self, command_cache_config: CommandCacheConfig)
      -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 825
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 825
    functionName: Cmd::get_cache_config
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Option'
    signature: pub(crate) fn get_cache_config(&self) -> &Option<CommandCacheConfig>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cmd.rs:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 829
      start: 827
    functionDepth: 2
    functionLinenumber: 827
    functionLinenumberEnd: 829
    functionName: Cmd::is_empty
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - is_empty
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:842,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/src/cmd.rs:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 845
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 845
    functionName: cmd
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 224
    functionsReached:
    - Cmd::new
    - Self::arg
    linkageType: ''
    returnType: Cmd
    signature: 'pub fn cmd(name: &str) -> Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_command
      Src: /src/redis-rs/redis/src/cmd.rs:866,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cmd.rs:866,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:866,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - args
    argTypes:
    - '&[Vec<u8>]'
    constantsTouched: []
    func_position:
      end: 867
      start: 865
    functionDepth: 12
    functionLinenumber: 865
    functionLinenumberEnd: 867
    functionName: pack_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - map
    - Arg::Simple
    - iter
    - encode_command
    linkageType: ''
    returnType: Vec
    signature: 'pub fn pack_command(args: &[Vec<u8>]) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pipeline::new
      Src: /src/redis-rs/redis/src/cmd.rs:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 872
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 872
    functionName: pipe
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 55
    functionsReached:
    - Pipeline::new
    linkageType: ''
    returnType: Pipeline
    signature: pub fn pipe() -> Pipeline
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:881,1
    - Dst: impl Clone + ExactSizeIterator::map
      Src: /src/redis-rs/redis/src/cmd.rs:881,1
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/cmd.rs:883,1
    - Dst: Vec::to_vec
      Src: /src/redis-rs/redis/src/cmd.rs:883,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:883,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cmd.rs:884,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:881,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 887
      start: 880
    functionDepth: 13
    functionLinenumber: 880
    functionLinenumberEnd: 887
    functionName: tests::args_iter_to_str
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - String::from_utf8
    - '&str::to_string'
    - Vec::to_vec
    - Cmd::args_iter
    - impl Clone + ExactSizeIterator::map
    - unwrap
    - collect
    linkageType: ''
    returnType: Vec
    signature: 'fn args_iter_to_str(cmd: &Cmd) -> Vec<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&Cmd::args_iter'
      Src: /src/redis-rs/redis/src/cmd.rs:890,1
    - Dst: args_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cmd.rs:890,1
    - Dst: '&Cmd::args_iter'
      Src: /src/redis-rs/redis/src/cmd.rs:891,1
    - Dst: args_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cmd.rs:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - '&Cmd'
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 899
      start: 889
    functionDepth: 13
    functionLinenumber: 889
    functionLinenumberEnd: 899
    functionName: tests::assert_arg_equality
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&Cmd::args_iter'
    - args_iter().collect::<Vec<_>>
    linkageType: ''
    returnType: void
    signature: 'fn assert_arg_equality(c1: &Cmd, c2: &Cmd)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert_arg_equality
      Src: /src/redis-rs/redis/src/cmd.rs:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - Cmd
    - Cmd
    constantsTouched: []
    func_position:
      end: 904
      start: 901
    functionDepth: 14
    functionLinenumber: 901
    functionLinenumberEnd: 904
    functionName: tests::assert_practical_equivalent
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - assert_arg_equality
    linkageType: ''
    returnType: void
    signature: 'fn assert_practical_equivalent(c1: Cmd, c2: Cmd)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cmd.rs:909,1
    - Dst: Cmd::write_arg_fmt
      Src: /src/redis-rs/redis/src/cmd.rs:910,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:911,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cmd.rs:911,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:913,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:922,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:922,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 924
      start: 907
    functionDepth: 16
    functionLinenumber: 907
    functionLinenumberEnd: 924
    functionName: tests::test_cmd_packed_command_simple_args
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - map
    - Cmd::arg
    - Cmd::get_packed_command
    - Cmd::write_arg_fmt
    - into_iter
    - cmd
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_cmd_packed_command_simple_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cmd.rs:929,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:930,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cmd.rs:930,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:930,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/cmd.rs:930,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:932,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:941,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:941,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/cmd.rs:941,1
    - Dst: std::iter::once
      Src: /src/redis-rs/redis/src/cmd.rs:944,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 947
      start: 927
    functionDepth: 18
    functionLinenumber: 927
    functionLinenumberEnd: 947
    functionName: tests::test_cmd_packed_command_with_cursor
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - std::iter::once
    - cursor_arg
    - arg
    - map
    - Cmd::arg
    - Cmd::get_packed_command
    - into_iter
    - cmd
    - chain
    - collect
    linkageType: ''
    returnType: void
    signature: fn test_cmd_packed_command_with_cursor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cmd.rs:951,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:952,1
    - Dst: '&mut Self::cursor_arg'
      Src: /src/redis-rs/redis/src/cmd.rs:952,1
    - Dst: '&mut Self::set_no_response'
      Src: /src/redis-rs/redis/src/cmd.rs:952,1
    - Dst: '&mut Self::clear'
      Src: /src/redis-rs/redis/src/cmd.rs:952,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:964,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 965
      start: 950
    functionDepth: 18
    functionLinenumber: 950
    functionLinenumberEnd: 965
    functionName: tests::test_cmd_clean
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - assert_practical_equivalent
    - '&mut Self::cursor_arg'
    - Cmd::arg
    - '&mut Self::clear'
    - cmd
    - '&mut Self::set_no_response'
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: fn test_cmd_clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cmd.rs:970,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:971,1
    - Dst: '&mut Self::cursor_arg'
      Src: /src/redis-rs/redis/src/cmd.rs:971,1
    - Dst: '&mut Self::set_cache_config'
      Src: /src/redis-rs/redis/src/cmd.rs:971,1
    - Dst: crate::CommandCacheConfig::default
      Src: /src/redis-rs/redis/src/cmd.rs:973,1
    - Dst: '&mut Self::set_no_response'
      Src: /src/redis-rs/redis/src/cmd.rs:971,1
    - Dst: '&mut Self::clear'
      Src: /src/redis-rs/redis/src/cmd.rs:971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 969
    functionDepth: 18
    functionLinenumber: 969
    functionLinenumberEnd: 985
    functionName: tests::test_cmd_clean_cache_aio
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::cursor_arg'
    - '&mut Self::set_cache_config'
    - Cmd::arg
    - crate::CommandCacheConfig::default
    - '&mut Self::clear'
    - cmd
    - '&mut Self::set_no_response'
    linkageType: ''
    returnType: void
    signature: fn test_cmd_clean_cache_aio()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:991,1
    - Dst: Self::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:993,1
    - Dst: impl io::Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:994,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:994,1
    - Dst: impl io::Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:995,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:995,1
    - Dst: impl io::Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:996,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:996,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:999,1
    - Dst: Self::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1000,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 988
    functionDepth: 16
    functionLinenumber: 988
    functionLinenumberEnd: 1003
    functionName: tests::test_cmd_writer_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - assert_practical_equivalent
    - impl io::Write + '_::flush
    - Poll::unwrap
    - Self::write_arg
    - unwrap
    - impl io::Write + '_::write_all
    - Cmd::new
    - Self::writer_for_next_arg
    linkageType: ''
    returnType: void
    signature: fn test_cmd_writer_for_next_arg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1009,1
    - Dst: Self::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1011,1
    - Dst: impl io::Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1012,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1012,1
    - Dst: impl io::Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1013,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1013,1
    - Dst: impl io::Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1014,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1014,1
    - Dst: Self::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1017,1
    - Dst: impl io::Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1018,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1018,1
    - Dst: impl io::Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1019,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1019,1
    - Dst: impl io::Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1020,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1020,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1023,1
    - Dst: Self::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1024,1
    - Dst: Self::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1025,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1027,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1008
    functionDepth: 16
    functionLinenumber: 1008
    functionLinenumberEnd: 1028
    functionName: tests::test_cmd_writer_for_next_arg_multiple
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - assert_practical_equivalent
    - impl io::Write + '_::flush
    - Poll::unwrap
    - Self::write_arg
    - unwrap
    - impl io::Write + '_::write_all
    - Cmd::new
    - Self::writer_for_next_arg
    linkageType: ''
    returnType: void
    signature: fn test_cmd_writer_for_next_arg_multiple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1033,1
    - Dst: Self::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1035,1
    - Dst: impl io::Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1036,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1036,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1039,1
    - Dst: Self::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1040,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1032
    functionDepth: 16
    functionLinenumber: 1032
    functionLinenumberEnd: 1043
    functionName: tests::test_cmd_writer_for_next_arg_empty
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - assert_practical_equivalent
    - impl io::Write + '_::flush
    - Poll::unwrap
    - Self::write_arg
    - Cmd::new
    - Self::writer_for_next_arg
    linkageType: ''
    returnType: void
    signature: fn test_cmd_writer_for_next_arg_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1050,1
    - Dst: Self::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1052,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1053,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1054,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1057,1
    - Dst: Self::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1058,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1049
    functionDepth: 17
    functionLinenumber: 1049
    functionLinenumberEnd: 1061
    functionName: tests::test_cmd_bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - impl bytes::BufMut + '_::put_slice
    - assert_practical_equivalent
    - Self::write_arg
    - Self::bufmut_for_next_arg
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: fn test_cmd_bufmut_for_next_arg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1068,1
    - Dst: Self::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1070,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1071,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1072,1
    - Dst: Self::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1075,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1076,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1077,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1080,1
    - Dst: Self::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1081,1
    - Dst: Self::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1082,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1067
    functionDepth: 17
    functionLinenumber: 1067
    functionLinenumberEnd: 1085
    functionName: tests::test_cmd_bufmut_for_next_arg_multiple
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - impl bytes::BufMut + '_::put_slice
    - assert_practical_equivalent
    - Self::write_arg
    - Self::bufmut_for_next_arg
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: fn test_cmd_bufmut_for_next_arg_multiple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1091,1
    - Dst: Self::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1093,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1096,1
    - Dst: Self::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1097,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1090
    functionDepth: 17
    functionLinenumber: 1090
    functionLinenumberEnd: 1100
    functionName: tests::test_cmd_bufmut_for_next_arg_empty
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - Self::write_arg
    - assert_practical_equivalent
    - Self::bufmut_for_next_arg
    linkageType: ''
    returnType: void
    signature: fn test_cmd_bufmut_for_next_arg_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1105,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1108,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1112,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1104
    functionDepth: 1
    functionLinenumber: 1104
    functionLinenumberEnd: 1117
    functionName: tests::test_cmd_arg_idx
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - arg
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: fn test_cmd_arg_idx()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/macros.rs:2,1
    - Dst: ::std::convert::From::from
      Src: /src/redis-rs/redis/src/macros.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 7
      start: 3
    functionDepth: 0
    functionLinenumber: 3
    functionLinenumberEnd: 7
    functionName: fail
    functionSourceFile: /src/redis-rs/redis/src/macros.rs
    functionUses: 0
    functionsReached:
    - Err
    - ::std::convert::From::from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpsc::channel
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:425,1
    - Dst: PipelineSink::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:427,1
    - Dst: stream::poll_fn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:433,1
    - Dst: "(\n        PendingRequest::poll_recv"
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:433,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:433,1
    - Dst: forward
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:433,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 4
    argNames:
    - sink_stream
    - push_sender
    - cache_manager
    - buffer_size
    argTypes:
    - T
    - Option<Arc<dyn AsyncPushSender>>
    - Option<CacheManager>
    - usize
    constantsTouched: []
    func_position:
      end: 438
      start: 414
    functionDepth: 7
    functionLinenumber: 414
    functionLinenumberEnd: 438
    functionName: Pipeline::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 4
    functionsReached:
    - "(\n        PendingRequest::poll_recv"
    - map
    - forward
    - PipelineSink::new
    - stream::poll_fn
    - mpsc::channel
    linkageType: ''
    returnType: (Self, impl Future
    signature: 'fn new<T>(sink_stream: T,push_sender: Option<Arc<dyn AsyncPushSender>>,#[cfg(feature
      = "cache-aio")] cache_manager: Option<CacheManager>,buffer_size: usize,) ->
      (Self, impl Future<Output = ()>)whereT: Sink<Vec<u8>, Error = RedisError>,T:
      Stream<Item = RedisResult<Value>>,T: Unpin + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/pipeline.rs:50,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/src/pipeline.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 11
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: Pipeline::with_capacity
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - HashSet::new
    - Vec::with_capacity
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_capacity(capacity: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Pipeline::atomic
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn atomic(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: Pipeline::ignore_errors
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn ignore_errors(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Pipeline::is_transaction
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_transaction(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: encode_pipeline
      Src: /src/redis-rs/redis/src/pipeline.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: Pipeline::get_packed_pipeline
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 3
    functionsReached:
    - encode_pipeline
    linkageType: ''
    returnType: Vec
    signature: pub fn get_packed_pipeline(&self) -> Vec<u8>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/pipeline.rs:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: Pipeline::len
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/pipeline.rs:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: Pipeline::is_empty
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - is_empty
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut dyn ConnectionLike::supports_pipelining'
      Src: /src/redis-rs/redis/src/pipeline.rs:178,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/pipeline.rs:179,1
    - Dst: '&mut dyn ConnectionLike::req_packed_commands'
      Src: /src/redis-rs/redis/src/pipeline.rs:186,1
    - Dst: encode_pipeline
      Src: /src/redis-rs/redis/src/pipeline.rs:187,1
    - Dst: len
      Src: /src/redis-rs/redis/src/pipeline.rs:188,1
    - Dst: '&mut dyn ConnectionLike::req_packed_commands'
      Src: /src/redis-rs/redis/src/pipeline.rs:192,1
    - Dst: encode_pipeline
      Src: /src/redis-rs/redis/src/pipeline.rs:193,1
    - Dst: len
      Src: /src/redis-rs/redis/src/pipeline.rs:195,1
    - Dst: Pipeline::complete_request
      Src: /src/redis-rs/redis/src/pipeline.rs:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 200
      start: 177
    functionDepth: 8
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: Pipeline::query
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 1
    functionsReached:
    - len
    - '&mut dyn ConnectionLike::req_packed_commands'
    - encode_pipeline
    - Pipeline::complete_request
    - '&mut dyn ConnectionLike::supports_pipelining'
    - fail
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn query<T: FromRedisValue>(&self, con: &mut dyn ConnectionLike)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut impl crate::aio::ConnectionLike::req_packed_commands'
      Src: /src/redis-rs/redis/src/pipeline.rs:210,1
    - Dst: len
      Src: /src/redis-rs/redis/src/pipeline.rs:210,1
    - Dst: '&mut impl crate::aio::ConnectionLike::req_packed_commands'
      Src: /src/redis-rs/redis/src/pipeline.rs:213,1
    - Dst: len
      Src: /src/redis-rs/redis/src/pipeline.rs:213,1
    - Dst: Pipeline::complete_request
      Src: /src/redis-rs/redis/src/pipeline.rs:217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: Pipeline::query_async
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 5
    functionsReached:
    - '&mut impl crate::aio::ConnectionLike::req_packed_commands'
    - len
    - Pipeline::complete_request
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn query_async<T: FromRedisValue>(&self,con: &mut impl crate::aio::ConnectionLike,)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query::<()>
      Src: /src/redis-rs/redis/src/pipeline.rs:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: Pipeline::exec
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 3
    functionsReached:
    - query::<()>
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn exec(&self, con: &mut dyn ConnectionLike) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query_async::<()>
      Src: /src/redis-rs/redis/src/pipeline.rs:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: Pipeline::exec_async
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 2
    functionsReached:
    - query_async::<()>
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn exec_async(&self, con: &mut impl crate::aio::ConnectionLike)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pipeline::is_transaction
      Src: /src/redis-rs/redis/src/pipeline.rs:239,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/pipeline.rs:240,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/pipeline.rs:242,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/pipeline.rs:242,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/pipeline.rs:246,1
    - Dst: into
      Src: /src/redis-rs/redis/src/pipeline.rs:246,1
    - Dst: Pipeline::compose_response
      Src: /src/redis-rs/redis/src/pipeline.rs:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - response
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 258
      start: 238
    functionDepth: 13
    functionLinenumber: 238
    functionLinenumberEnd: 258
    functionName: Pipeline::complete_request
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 2
    functionsReached:
    - Err
    - Pipeline::is_transaction
    - into
    - pop
    - Ok
    - Pipeline::compose_response
    - types::from_redis_value
    linkageType: ''
    returnType: RedisResult
    signature: 'fn complete_request<T: FromRedisValue>(&self, mut response: Vec<Value>)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_pipeline
      Src: /src/redis-rs/redis/src/pipeline.rs:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cmds
    - atomic
    argTypes:
    - '&[Cmd]'
    - bool
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: encode_pipeline
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 2
    functionsReached:
    - write_pipeline
    linkageType: ''
    returnType: Vec
    signature: 'fn encode_pipeline(cmds: &[Cmd], atomic: bool) -> Vec<u8>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/pipeline.rs:268,1
    - Dst: map
      Src: /src/redis-rs/redis/src/pipeline.rs:268,1
    - Dst: sum
      Src: /src/redis-rs/redis/src/pipeline.rs:268,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:271,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:272,1
    - Dst: '&mut Vec<u8>::reserve'
      Src: /src/redis-rs/redis/src/pipeline.rs:273,1
    - Dst: cmd::cmd_len
      Src: /src/redis-rs/redis/src/pipeline.rs:273,1
    - Dst: cmd::cmd_len
      Src: /src/redis-rs/redis/src/pipeline.rs:273,1
    - Dst: RedisResult::write_packed_command_preallocated
      Src: /src/redis-rs/redis/src/pipeline.rs:275,1
    - Dst: Cmd::write_packed_command_preallocated
      Src: /src/redis-rs/redis/src/pipeline.rs:277,1
    - Dst: RedisResult::write_packed_command_preallocated
      Src: /src/redis-rs/redis/src/pipeline.rs:279,1
    - Dst: '&mut Vec<u8>::reserve'
      Src: /src/redis-rs/redis/src/pipeline.rs:281,1
    - Dst: Cmd::write_packed_command_preallocated
      Src: /src/redis-rs/redis/src/pipeline.rs:284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 3
    argNames:
    - rv
    - cmds
    - atomic
    argTypes:
    - '&mut Vec<u8>'
    - '&[Cmd]'
    - bool
    constantsTouched: []
    func_position:
      end: 287
      start: 267
    functionDepth: 12
    functionLinenumber: 267
    functionLinenumberEnd: 287
    functionName: write_pipeline
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 1
    functionsReached:
    - '&mut Vec<u8>::reserve'
    - map
    - RedisResult::write_packed_command_preallocated
    - RedisResult::iter
    - sum
    - Cmd::write_packed_command_preallocated
    - cmd::cmd_len
    - cmd::cmd
    linkageType: ''
    returnType: void
    signature: 'fn write_pipeline(rv: &mut Vec<u8>, cmds: &[Cmd], atomic: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/redis-rs/redis/src/pipeline.rs:6,1
    - Dst: implement_pipeline_commands::add_command
      Src: /src/redis-rs/redis/src/pipeline.rs:14,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:14,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/pipeline.rs:19,1
    - Dst: len
      Src: /src/redis-rs/redis/src/pipeline.rs:31,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/pipeline.rs:33,1
    - Dst: implement_pipeline_commands::get_last_command
      Src: /src/redis-rs/redis/src/pipeline.rs:45,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/pipeline.rs:46,1
    - Dst: clear
      Src: /src/redis-rs/redis/src/pipeline.rs:57,1
    - Dst: clear
      Src: /src/redis-rs/redis/src/pipeline.rs:58,1
    - Dst: len
      Src: /src/redis-rs/redis/src/pipeline.rs:63,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/pipeline.rs:74,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/pipeline.rs:77,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/pipeline.rs:77,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/pipeline.rs:77,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/pipeline.rs:80,1
    - Dst: then
      Src: /src/redis-rs/redis/src/pipeline.rs:80,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/pipeline.rs:77,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/pipeline.rs:87,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/pipeline.rs:87,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/pipeline.rs:87,1
    - Dst: implement_pipeline_commands::filter_ignored_results
      Src: /src/redis-rs/redis/src/pipeline.rs:88,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/pipeline.rs:92,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/pipeline.rs:92,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/pipeline.rs:92,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/pipeline.rs:96,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/pipeline.rs:96,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/pipeline.rs:92,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/pipeline.rs:101,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/pipeline.rs:102,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/pipeline.rs:102,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/pipeline.rs:103,1
    - Dst: implement_pipeline_commands::filter_ignored_results
      Src: /src/redis-rs/redis/src/pipeline.rs:103,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/pipeline.rs:103,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/pipeline.rs:106,1
    - Dst: crate::RedisError::pipeline
      Src: /src/redis-rs/redis/src/pipeline.rs:106,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/pipeline.rs:113,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 290
    functionDepth: 15
    functionLinenumber: 290
    functionLinenumberEnd: 407
    functionName: implement_pipeline_commands
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - len
    - Err
    - extract_error
    - Ok
    - Some
    - collect
    - clone
    - into_iter
    - iter
    - clear
    - cmd::cmd
    - implement_pipeline_commands::get_last_command
    - crate::RedisError::pipeline
    - Cmd::arg
    - then
    - implement_pipeline_commands::add_command
    - is_empty
    - insert
    - implement_pipeline_commands::filter_ignored_results
    - push
    - filter_map
    - Value::Array
    - contains
    - types::from_redis_value
    - enumerate
    - Self::new
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pipeline::get_last_command
      Src: /src/redis-rs/redis/src/pipeline.rs:417,1
    - Dst: Cmd::set_cache_config
      Src: /src/redis-rs/redis/src/pipeline.rs:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - command_cache_config
    argTypes:
    - CommandCacheConfig
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: Pipeline::set_cache_config
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - Pipeline::get_last_command
    - Cmd::set_cache_config
    linkageType: ''
    returnType: '&mut Self'
    signature: 'pub fn set_cache_config(&mut self, command_cache_config: CommandCacheConfig)
      -> &mut Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/pipeline.rs:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 425
    functionName: Pipeline::into_cmd_iter
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - into_iter
    linkageType: ''
    returnType: impl Iterator
    signature: pub(crate) fn into_cmd_iter(self) -> impl Iterator<Item = Cmd>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/redis-rs/redis/src/pipeline.rs:439,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:440,1
    - Dst: Cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:440,1
    - Dst: redis::Cmd::ignore
      Src: /src/redis-rs/redis/src/pipeline.rs:440,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:440,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/pipeline.rs:440,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 438
    functionDepth: 9
    functionLinenumber: 438
    functionLinenumberEnd: 448
    functionName: tests::test_pipe
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::ignore
    - pipe
    - ignore
    - cmd::cmd
    - Cmd::cmd
    linkageType: ''
    returnType: Pipeline
    signature: fn test_pipe() -> Pipeline
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::ServerError
      Src: /src/redis-rs/redis/src/pipeline.rs:451,1
    - Dst: ServerError
      Src: /src/redis-rs/redis/src/pipeline.rs:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: tests::server_error
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - Value::ServerError
    - ServerError
    linkageType: ''
    returnType: Value
    signature: fn server_error() -> Value
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_pipe
      Src: /src/redis-rs/redis/src/pipeline.rs:459,1
    - Dst: complete_request
      Src: /src/redis-rs/redis/src/pipeline.rs:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 458
    functionDepth: 14
    functionLinenumber: 458
    functionLinenumberEnd: 465
    functionName: tests::test_pipeline_passes_values_only_from_non_ignored_commands
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - test_pipe
    - complete_request
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_passes_values_only_from_non_ignored_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_pipe
      Src: /src/redis-rs/redis/src/pipeline.rs:469,1
    - Dst: compose_response::<Vec<Value>>
      Src: /src/redis-rs/redis/src/pipeline.rs:471,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/pipeline.rs:471,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/pipeline.rs:472,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 476
      start: 468
    functionDepth: 10
    functionLinenumber: 468
    functionLinenumberEnd: 476
    functionName: tests::test_pipeline_passes_errors_from_ignored_commands
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - test_pipe
    - to_string
    - compose_response::<Vec<Value>>
    - unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_passes_errors_from_ignored_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_pipe
      Src: /src/redis-rs/redis/src/pipeline.rs:480,1
    - Dst: ignore_errors
      Src: /src/redis-rs/redis/src/pipeline.rs:482,1
    - Dst: "ignore_errors()\n            .compose_response::<Vec<RedisResult<Value>>>"
      Src: /src/redis-rs/redis/src/pipeline.rs:482,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/pipeline.rs:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 479
    functionDepth: 13
    functionLinenumber: 479
    functionLinenumberEnd: 493
    functionName: tests::test_pipeline_passes_response_from_each_commands_despite_errors
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - test_pipe
    - "ignore_errors()\n            .compose_response::<Vec<RedisResult<Value>>>"
    - unwrap
    - ignore_errors
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_passes_response_from_each_commands_despite_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:54,1
    - Dst: T::into_connection_info
      Src: /src/redis-rs/redis/src/client.rs:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - params
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Client::open
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 28
    functionsReached:
    - Ok
    - T::into_connection_info
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn open<T: IntoConnectionInfo>(params: T) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/redis-rs/redis/src/client.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Client::get_connection
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - connect
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_connection(&self) -> RedisResult<Connection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/redis-rs/redis/src/client.rs:74,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Client::get_connection_with_timeout
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - connect
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn get_connection_with_timeout(&self, timeout: Duration) -> RedisResult<Connection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Client::get_connection_info
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: '&ConnectionInfo'
    signature: pub fn get_connection_info(&self) -> &ConnectionInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisConnectionInfo::into_connection_info
      Src: /src/redis-rs/redis/src/client.rs:165,1
    - Dst: tls::inner_build_with_tls
      Src: /src/redis-rs/redis/src/client.rs:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn_info
    - tls_certs
    argTypes:
    - C
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: Client::build_with_tls
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 1
    functionsReached:
    - tls::inner_build_with_tls
    - RedisConnectionInfo::into_connection_info
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn build_with_tls<C: IntoConnectionInfo>(conn_info: C,tls_certs:
      TlsCertificates,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:211,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:213,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 207
    functionDepth: 12
    functionLinenumber: 207
    functionLinenumberEnd: 221
    functionName: AsyncConnectionConfig::default
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/client.rs:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 12
    functionLinenumber: 227
    functionLinenumberEnd: 229
    functionName: AsyncConnectionConfig::new
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 19
    functionsReached:
    - Self::default
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - connection_timeout
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: AsyncConnectionConfig::set_connection_timeout
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_connection_timeout(mut self, connection_timeout: Option<Duration>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - response_timeout
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: AsyncConnectionConfig::set_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_response_timeout(mut self, response_timeout: Option<Duration>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncConnectionConfig::set_push_sender_internal
      Src: /src/redis-rs/redis/src/client.rs:273,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: AsyncConnectionConfig::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - AsyncConnectionConfig::set_push_sender_internal
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_push_sender(self, sender: impl AsyncPushSender) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sender
    argTypes:
    - std::sync::Arc<dyn AsyncPushSender>
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: AsyncConnectionConfig::set_push_sender_internal
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn set_push_sender_internal(mut self,sender: std::sync::Arc<dyn
      AsyncPushSender>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:287,1
    - Dst: Cache::Config
      Src: /src/redis-rs/redis/src/client.rs:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 289
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 289
    functionName: AsyncConnectionConfig::set_cache_config
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Cache::Config
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_cache_config(mut self, cache_config: CacheConfig) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:296,1
    - Dst: Cache::Manager
      Src: /src/redis-rs/redis/src/client.rs:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_manager
    argTypes:
    - CacheManager
    constantsTouched: []
    func_position:
      end: 298
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 298
    functionName: AsyncConnectionConfig::set_cache_manager
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - Cache::Manager
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn set_cache_manager(mut self, cache_manager: CacheManager)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncConnectionConfig::set_dns_resolver_internal
      Src: /src/redis-rs/redis/src/client.rs:304,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - impl AsyncDNSResolver
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 305
    functionName: AsyncConnectionConfig::set_dns_resolver
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - AsyncConnectionConfig::set_dns_resolver_internal
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_dns_resolver(self, dns_resolver: impl AsyncDNSResolver)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - std::sync::Arc<dyn AsyncDNSResolver>
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: AsyncConnectionConfig::set_dns_resolver_internal
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub(super) fn set_dns_resolver_internal(mut self,dns_resolver: std::sync::Arc<dyn
      AsyncDNSResolver>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    functionName: AsyncConnectionConfig::set_pipeline_buffer_size
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_pipeline_buffer_size(mut self, size: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 355
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 355
    functionName: AsyncConnectionConfig::set_concurrency_limit
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_concurrency_limit(mut self, limit: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - boundary
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: AsyncConnectionConfig::set_write_backpressure_boundary
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_write_backpressure_boundary(mut self, boundary: usize)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncConnectionConfig::set_credentials_provider_internal
      Src: /src/redis-rs/redis/src/client.rs:404,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - provider
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 405
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 405
    functionName: AsyncConnectionConfig::set_credentials_provider
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - AsyncConnectionConfig::set_credentials_provider_internal
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_credentials_provider<P>(self, provider: P) -> SelfwhereP:
      StreamingCredentialsProvider + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/client.rs:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::sync::Arc<dyn StreamingCredentialsProvider>
    constantsTouched: []
    func_position:
      end: 414
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 414
    functionName: AsyncConnectionConfig::set_credentials_provider_internal
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn set_credentials_provider_internal(mut self,provider:
      std::sync::Arc<dyn StreamingCredentialsProvider>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/client.rs:428,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 430
      start: 425
    functionDepth: 13
    functionLinenumber: 425
    functionLinenumberEnd: 430
    functionName: Client::get_multiplexed_async_connection
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::get_multiplexed_async_connection_with_config
    - AsyncConnectionConfig::new
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_multiplexed_async_connection(&self,) -> RedisResult<crate::aio::MultiplexedConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/client.rs:439,1
    - Dst: get_multiplexed_async_connection_inner_with_timeout::<crate::aio::tokio::Tokio>
      Src: /src/redis-rs/redis/src/client.rs:441,1
    - Dst: get_multiplexed_async_connection_inner_with_timeout::<crate::aio::smol::Smol>
      Src: /src/redis-rs/redis/src/client.rs:449,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 455
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 455
    functionName: Client::get_multiplexed_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 1
    functionsReached:
    - get_multiplexed_async_connection_inner_with_timeout::<crate::aio::smol::Smol>
    - get_multiplexed_async_connection_inner_with_timeout::<crate::aio::tokio::Tokio>
    - Runtime::locate
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn get_multiplexed_async_connection_with_config(&self,config:
      &AsyncConnectionConfig,) -> RedisResult<crate::aio::MultiplexedConnection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::aio::ConnectionManager::new
      Src: /src/redis-rs/redis/src/client.rs:477,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:477,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 478
      start: 476
    functionDepth: 6
    functionLinenumber: 476
    functionLinenumberEnd: 478
    functionName: Client::get_connection_manager
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::clone
    - crate::aio::ConnectionManager::new
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_connection_manager(&self) -> RedisResult<crate::aio::ConnectionManager>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::aio::ConnectionManager::new_lazy_with_config
      Src: /src/redis-rs/redis/src/client.rs:491,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - config
    argTypes:
    - crate::aio::ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 492
      start: 487
    functionDepth: 6
    functionLinenumber: 487
    functionLinenumberEnd: 492
    functionName: Client::get_connection_manager_lazy
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - crate::aio::ConnectionManager::new_lazy_with_config
    - Client::clone
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn get_connection_manager_lazy(&self,config: crate::aio::ConnectionManagerConfig,)
      -> RedisResult<crate::aio::ConnectionManager>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/src/client.rs:517,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - crate::aio::ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 518
      start: 513
    functionDepth: 6
    functionLinenumber: 513
    functionLinenumberEnd: 518
    functionName: Client::get_connection_manager_with_config
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - crate::aio::ConnectionManager::new_with_config
    - Client::clone
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn get_connection_manager_with_config(&self,config: crate::aio::ConnectionManagerConfig,)
      -> RedisResult<crate::aio::ConnectionManager>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TcpListener::timeout
      Src: /src/redis-rs/redis/src/client.rs:529,1
    - Dst: get_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:531,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:535,1
    - Dst: get_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:535,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:541,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/client.rs:542,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/client.rs:543,1
    - Dst: into
      Src: /src/redis-rs/redis/src/client.rs:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - config
    - rt
    argTypes:
    - '&AsyncConnectionConfig'
    - Runtime
    constantsTouched: []
    func_position:
      end: 545
      start: 520
    functionDepth: 20
    functionLinenumber: 520
    functionLinenumberEnd: 545
    functionName: Client::get_multiplexed_async_connection_inner_with_timeout
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - get_multiplexed_async_connection_inner::<T>
    - TcpListener::timeout
    - Err
    - into
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_multiplexed_async_connection_inner_with_timeout<T>(&self,config:
      &AsyncConnectionConfig,rt: Runtime,) -> RedisResult<crate::aio::MultiplexedConnection>whereT:
      crate::aio::RedisRuntime,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:554,1
    - Dst: T::spawn
      Src: /src/redis-rs/redis/src/client.rs:557,1
    - Dst: bool::set_task_handle
      Src: /src/redis-rs/redis/src/client.rs:558,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:559,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 560
      start: 547
    functionDepth: 2
    functionLinenumber: 547
    functionLinenumberEnd: 560
    functionName: Client::get_multiplexed_async_connection_inner
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - T::spawn
    - create_multiplexed_async_connection_inner::<T>
    - Ok
    - bool::set_task_handle
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_multiplexed_async_connection_inner<T>(&self,config: &AsyncConnectionConfig,)
      -> RedisResult<crate::aio::MultiplexedConnection>whereT: crate::aio::RedisRuntime,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/client.rs:572,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/client.rs:572,1
    - Dst: get_simple_async_connection::<T>
      Src: /src/redis-rs/redis/src/client.rs:576,1
    - Dst: crate::aio::MultiplexedConnection::new_with_config
      Src: /src/redis-rs/redis/src/client.rs:577,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/client.rs:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 583
      start: 562
    functionDepth: 6
    functionLinenumber: 562
    functionLinenumberEnd: 583
    functionName: Client::create_multiplexed_async_connection_inner
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - get_simple_async_connection::<T>
    - crate::aio::MultiplexedConnection::new_with_config
    - unwrap_or
    - as_deref
    - Self::clone
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn create_multiplexed_async_connection_inner<T>(&self,config:
      &AsyncConnectionConfig,) -> RedisResult<(crate::aio::MultiplexedConnection,impl
      std::future::Future<Output = ()> + ''static,)>whereT: crate::aio::RedisRuntime,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/client.rs:589,1
    - Dst: get_simple_async_connection::<crate::aio::tokio::Tokio>
      Src: /src/redis-rs/redis/src/client.rs:592,1
    - Dst: get_simple_async_connection::<crate::aio::smol::Smol>
      Src: /src/redis-rs/redis/src/client.rs:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 602
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 602
    functionName: Client::get_simple_async_connection_dynamically
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - get_simple_async_connection::<crate::aio::smol::Smol>
    - Runtime::locate
    - get_simple_async_connection::<crate::aio::tokio::Tokio>
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_simple_async_connection_dynamically(&self,dns_resolver:
      &dyn AsyncDNSResolver,) -> RedisResult<Pin<Box<dyn crate::aio::AsyncStream +
      Send + Sync>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:611,1
    - Dst: crate::aio::connect_simple::<T>
      Src: /src/redis-rs/redis/src/client.rs:612,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/client.rs:612,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 616
      start: 604
    functionDepth: 7
    functionLinenumber: 604
    functionLinenumberEnd: 616
    functionName: Client::get_simple_async_connection
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - crate::aio::connect_simple::<T>
    - Ok
    - boxed
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_simple_async_connection<T>(&self,dns_resolver: &dyn AsyncDNSResolver,)
      -> RedisResult<Pin<Box<dyn crate::aio::AsyncStream + Send + Sync>>>whereT: crate::aio::RedisRuntime,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: Client::connection_info
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&ConnectionInfo'
    signature: pub(crate) fn connection_info(&self) -> &ConnectionInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::get_simple_async_connection_dynamically
      Src: /src/redis-rs/redis/src/client.rs:627,1
    - Dst: crate::aio::PubSub::new
      Src: /src/redis-rs/redis/src/client.rs:631,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: Client::get_async_pubsub
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - crate::aio::PubSub::new
    - Client::get_simple_async_connection_dynamically
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_async_pubsub(&self) -> RedisResult<crate::aio::PubSub>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::get_simple_async_connection_dynamically
      Src: /src/redis-rs/redis/src/client.rs:637,1
    - Dst: crate::aio::Monitor::new
      Src: /src/redis-rs/redis/src/client.rs:640,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 641
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 641
    functionName: Client::get_async_monitor
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - crate::aio::Monitor::new
    - Client::get_simple_async_connection_dynamically
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_async_monitor(&self) -> RedisResult<crate::aio::Monitor>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::get_connection
      Src: /src/redis-rs/redis/src/client.rs:649,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/client.rs:649,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 650
      start: 648
    functionDepth: 13
    functionLinenumber: 648
    functionLinenumberEnd: 650
    functionName: Client::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - req_packed_command
    - Client::get_connection
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_command(&mut self, cmd: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::get_connection
      Src: /src/redis-rs/redis/src/client.rs:658,1
    - Dst: req_packed_commands
      Src: /src/redis-rs/redis/src/client.rs:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 660
      start: 652
    functionDepth: 16
    functionLinenumber: 652
    functionLinenumberEnd: 660
    functionName: Client::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - req_packed_commands
    - Client::get_connection
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_commands(&mut self,cmd: &[u8],offset: usize,count: usize,)
      -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 664
    functionName: Client::get_db
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: fn get_db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::get_connection
      Src: /src/redis-rs/redis/src/client.rs:667,1
    - Dst: Option::check_connection
      Src: /src/redis-rs/redis/src/client.rs:668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 672
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 672
    functionName: Client::check_connection
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Option::check_connection
    - Client::get_connection
    linkageType: ''
    returnType: bool
    signature: fn check_connection(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::get_connection
      Src: /src/redis-rs/redis/src/client.rs:675,1
    - Dst: Option::is_open
      Src: /src/redis-rs/redis/src/client.rs:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 680
    functionName: Client::is_open
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Option::is_open
    - Client::get_connection
    linkageType: ''
    returnType: bool
    signature: fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 691
    functionName: test::regression_293_parse_ipv6_with_interface
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn regression_293_parse_ipv6_with_interface()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 695
    functionDepth: 13
    functionLinenumber: 695
    functionLinenumberEnd: 698
    functionName: test::test_async_connection_config_pipeline_buffer_size_default
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::new
    linkageType: ''
    returnType: void
    signature: fn test_async_connection_config_pipeline_buffer_size_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:703,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/src/client.rs:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 13
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: test::test_async_connection_config_pipeline_buffer_size_custom
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Self::set_pipeline_buffer_size
    - AsyncConnectionConfig::new
    linkageType: ''
    returnType: void
    signature: fn test_async_connection_config_pipeline_buffer_size_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:710,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 712
      start: 709
    functionDepth: 13
    functionLinenumber: 709
    functionLinenumberEnd: 712
    functionName: test::test_async_connection_config_concurrency_limit_default
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::new
    linkageType: ''
    returnType: void
    signature: fn test_async_connection_config_concurrency_limit_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:717,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/client.rs:717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 719
      start: 716
    functionDepth: 13
    functionLinenumber: 716
    functionLinenumberEnd: 719
    functionName: test::test_async_connection_config_concurrency_limit_custom
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Self::set_concurrency_limit
    - AsyncConnectionConfig::new
    linkageType: ''
    returnType: void
    signature: fn test_async_connection_config_concurrency_limit_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 13
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: test::test_async_connection_config_write_backpressure_boundary_default
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::new
    linkageType: ''
    returnType: void
    signature: fn test_async_connection_config_write_backpressure_boundary_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:731,1
    - Dst: Self::set_write_backpressure_boundary
      Src: /src/redis-rs/redis/src/client.rs:731,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 730
    functionDepth: 13
    functionLinenumber: 730
    functionLinenumberEnd: 733
    functionName: test::test_async_connection_config_write_backpressure_boundary_custom
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::new
    - Self::set_write_backpressure_boundary
    linkageType: ''
    returnType: void
    signature: fn test_async_connection_config_write_backpressure_boundary_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/redis-rs/redis/src/entra_id.rs:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: TaskAborter::drop
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static Vec::is_empty'
      Src: /src/redis-rs/redis/src/entra_id.rs:301,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/entra_id.rs:302,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/entra_id.rs:302,1
    - Dst: trim
      Src: /src/redis-rs/redis/src/entra_id.rs:309,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/entra_id.rs:309,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/entra_id.rs:310,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/entra_id.rs:310,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - scopes
    argTypes:
    - '&[String]'
    constantsTouched: []
    func_position:
      end: 318
      start: 300
    functionDepth: 12
    functionLinenumber: 300
    functionLinenumberEnd: 318
    functionName: EntraIdCredentialsProvider::validate_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Err
    - '&''static Vec::is_empty'
    - RedisError::from
    - Ok
    - trim
    - is_empty
    linkageType: ''
    returnType: RedisResult
    signature: 'fn validate_scopes(scopes: &[String]) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: secret
      Src: /src/redis-rs/redis/src/entra_id.rs:324,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/entra_id.rs:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - username
    - access_token
    argTypes:
    - String
    - '&AccessToken'
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 18
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: EntraIdCredentialsProvider::convert_credentials
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - to_string
    - secret
    linkageType: ''
    returnType: BasicAuth
    signature: 'fn convert_credentials(username: String, access_token: &AccessToken)
      -> BasicAuth'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/entra_id.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - azure_core::Error
    constantsTouched: []
    func_position:
      end: 335
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 335
    functionName: EntraIdCredentialsProvider::convert_error
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    linkageType: ''
    returnType: RedisError
    signature: 'fn convert_error(err: azure_core::Error) -> RedisError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/entra_id.rs:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - '&azure_core::Error'
    constantsTouched: []
    func_position:
      end: 344
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 344
    functionName: EntraIdCredentialsProvider::convert_error_ref
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    linkageType: ''
    returnType: RedisError
    signature: 'fn convert_error_ref(err: &azure_core::Error) -> RedisError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::sync::Arc::try_unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:351,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:351,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/entra_id.rs:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - credential
    argTypes:
    - std::sync::Arc<T>
    constantsTouched: []
    func_position:
      end: 357
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 357
    functionName: EntraIdCredentialsProvider::unwrap_credential
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    - std::sync::Arc::try_unwrap
    - map_err
    linkageType: ''
    returnType: RedisResult
    signature: 'fn unwrap_credential<T: TokenCredential>(credential: std::sync::Arc<T>)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&SharedSubscriptions::lock'
      Src: /src/redis-rs/redis/src/entra_id.rs:365,1
    - Dst: Self::expect
      Src: /src/redis-rs/redis/src/entra_id.rs:365,1
    - Dst: retain
      Src: /src/redis-rs/redis/src/entra_id.rs:368,1
    - Dst: Self::is_closed
      Src: /src/redis-rs/redis/src/entra_id.rs:368,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:369,1
    - Dst: futures_util::future::join_all
      Src: /src/redis-rs/redis/src/entra_id.rs:372,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/entra_id.rs:372,1
    - Dst: map
      Src: /src/redis-rs/redis/src/entra_id.rs:372,1
    - Dst: Result<AccessToken, azure_core::Error>::as_ref
      Src: /src/redis-rs/redis/src/entra_id.rs:373,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:376,1
    - Dst: Self::convert_credentials
      Src: /src/redis-rs/redis/src/entra_id.rs:376,1
    - Dst: '&''static str::to_owned'
      Src: /src/redis-rs/redis/src/entra_id.rs:376,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/entra_id.rs:378,1
    - Dst: Self::convert_error_ref
      Src: /src/redis-rs/redis/src/entra_id.rs:378,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/entra_id.rs:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 3
    argNames:
    - subscribers_arc
    - username
    - token_response
    argTypes:
    - '&SharedSubscriptions'
    - '&str'
    - Result<AccessToken, azure_core::Error>
    constantsTouched: []
    func_position:
      end: 384
      start: 359
    functionDepth: 19
    functionLinenumber: 359
    functionLinenumberEnd: 384
    functionName: EntraIdCredentialsProvider::notify_subscribers
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Self::convert_error_ref
    - Err
    - map
    - Self::send
    - Self::expect
    - clone
    - retain
    - Self::convert_credentials
    - '&SharedSubscriptions::lock'
    - Ok
    - iter
    - Self::is_closed
    - '&''static str::to_owned'
    - Result<AccessToken, azure_core::Error>::as_ref
    - futures_util::future::join_all
    linkageType: ''
    returnType: void
    signature: 'async fn notify_subscribers(subscribers_arc: &SharedSubscriptions,username:
      &str,token_response: Result<AccessToken, azure_core::Error>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis/src/entra_id.rs:395,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:395,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/entra_id.rs:395,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/src/entra_id.rs:399,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/src/entra_id.rs:400,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/src/entra_id.rs:402,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:403,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/entra_id.rs:405,1
    - Dst: '&''static Vec::iter'
      Src: /src/redis-rs/redis/src/entra_id.rs:406,1
    - Dst: map
      Src: /src/redis-rs/redis/src/entra_id.rs:406,1
    - Dst: TlsFilePaths::as_str
      Src: /src/redis-rs/redis/src/entra_id.rs:406,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/entra_id.rs:406,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/entra_id.rs:408,1
    - Dst: ExponentialBuilder::default
      Src: /src/redis-rs/redis/src/entra_id.rs:415,1
    - Dst: Self::with_factor
      Src: /src/redis-rs/redis/src/entra_id.rs:415,1
    - Dst: with_min_delay
      Src: /src/redis-rs/redis/src/entra_id.rs:415,1
    - Dst: with_max_times
      Src: /src/redis-rs/redis/src/entra_id.rs:415,1
    - Dst: with_jitter
      Src: /src/redis-rs/redis/src/entra_id.rs:415,1
    - Dst: Self::with_max_delay
      Src: /src/redis-rs/redis/src/entra_id.rs:422,1
    - Dst: Self::get_token
      Src: /src/redis-rs/redis/src/entra_id.rs:427,1
    - Dst: retry
      Src: /src/redis-rs/redis/src/entra_id.rs:429,1
    - Dst: sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:429,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:431,1
    - Dst: notify
      Src: /src/redis-rs/redis/src/entra_id.rs:429,1
    - Dst: credentials_management_utils::extract_oid_from_jwt
      Src: /src/redis-rs/redis/src/entra_id.rs:436,1
    - Dst: secret
      Src: /src/redis-rs/redis/src/entra_id.rs:437,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/entra_id.rs:442,1
    - Dst: Self::write
      Src: /src/redis-rs/redis/src/entra_id.rs:446,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:446,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:447,1
    - Dst: Self::convert_credentials
      Src: /src/redis-rs/redis/src/entra_id.rs:447,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/entra_id.rs:447,1
    - Dst: compute_sleep_duration_on_success
      Src: /src/redis-rs/redis/src/entra_id.rs:449,1
    - Dst: Self::notify_subscribers
      Src: /src/redis-rs/redis/src/entra_id.rs:452,1
    - Dst: Self::notify_subscribers
      Src: /src/redis-rs/redis/src/entra_id.rs:456,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:458,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:458,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:459,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/entra_id.rs:465,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:465,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:465,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 125
    argCount: 2
    argNames:
    - retry_config
    - compute_sleep_duration_on_success
    argTypes:
    - RetryConfig
    - F
    constantsTouched: []
    func_position:
      end: 466
      start: 387
    functionDepth: 16
    functionLinenumber: 387
    functionLinenumberEnd: 466
    functionName: EntraIdCredentialsProvider::start_refresh_service
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - with_max_times
    - tokio::time::sleep
    - Arc::clone
    - '&str::to_string'
    - compute_sleep_duration_on_success
    - as_millis
    - unwrap
    - secret
    - Some
    - collect
    - notify
    - map
    - Poll::unwrap
    - clone
    - lock
    - sleep
    - Self::with_factor
    - retry
    - ExponentialBuilder::default
    - std::time::Duration::from_millis
    - Self::get_token
    - '&''static str::clone'
    - with_min_delay
    - '&''static Vec::iter'
    - tokio::spawn
    - Self::convert_credentials
    - Self::write
    - credentials_management_utils::extract_oid_from_jwt
    - Self::notify_subscribers
    - TlsFilePaths::as_str
    - is_some
    - Self::with_max_delay
    - with_jitter
    linkageType: ''
    returnType: void
    signature: 'fn start_refresh_service<F>(&mut self,retry_config: RetryConfig,compute_sleep_duration_on_success:
      F,) whereF: Fn(&AccessToken) -> std::time::Duration + Send + Sync + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_developer_tools_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 472
    functionName: EntraIdCredentialsProvider::new_developer_tools
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Self::new_developer_tools_with_scopes
    linkageType: ''
    returnType: RedisResult
    signature: pub fn new_developer_tools() -> RedisResult<Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::validate_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:479,1
    - Dst: DeveloperToolsCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:481,1
    - Dst: Self::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:481,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:482,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:483,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:483,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:485,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:486,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:487,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - scopes
    - options
    argTypes:
    - Vec<String>
    - Option<DeveloperToolsCredentialOptions>
    constantsTouched: []
    func_position:
      end: 489
      start: 475
    functionDepth: 13
    functionLinenumber: 475
    functionLinenumberEnd: 489
    functionName: EntraIdCredentialsProvider::new_developer_tools_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Self::map_err
    - Default::default
    - Arc::new
    - DeveloperToolsCredential::new
    - Ok
    - Self::unwrap_credential
    - Self::validate_scopes
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new_developer_tools_with_scopes(scopes: Vec<String>,options:
      Option<DeveloperToolsCredentialOptions>,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_client_secret_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - tenant_id
    - client_id
    - client_secret
    argTypes:
    - String
    - String
    - String
    constantsTouched: []
    func_position:
      end: 504
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 504
    functionName: EntraIdCredentialsProvider::new_client_secret
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Self::new_client_secret_with_scopes
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new_client_secret(tenant_id: String,client_id: String,client_secret:
      String,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::validate_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:514,1
    - Dst: ClientSecretCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:516,1
    - Dst: into
      Src: /src/redis-rs/redis/src/entra_id.rs:516,1
    - Dst: Self::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:516,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:518,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:519,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:519,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:521,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:522,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:523,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - tenant_id
    - client_id
    - client_secret
    - scopes
    - options
    argTypes:
    - String
    - String
    - String
    - Vec<String>
    - Option<ClientSecretCredentialOptions>
    constantsTouched: []
    func_position:
      end: 525
      start: 507
    functionDepth: 13
    functionLinenumber: 507
    functionLinenumberEnd: 525
    functionName: EntraIdCredentialsProvider::new_client_secret_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 2
    functionsReached:
    - Self::map_err
    - into
    - Default::default
    - Arc::new
    - Ok
    - ClientSecretCredential::new
    - Self::unwrap_credential
    - Self::validate_scopes
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new_client_secret_with_scopes(tenant_id: String,client_id:
      String,client_secret: String,scopes: Vec<String>,options: Option<ClientSecretCredentialOptions>,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_client_certificate_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - tenant_id
    - client_id
    - client_certificate
    argTypes:
    - String
    - String
    - ClientCertificate
    constantsTouched: []
    func_position:
      end: 540
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 540
    functionName: EntraIdCredentialsProvider::new_client_certificate
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Self::new_client_certificate_with_scopes
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new_client_certificate(tenant_id: String,client_id: String,client_certificate:
      ClientCertificate,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::validate_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:550,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:553,1
    - Dst: Secret::new
      Src: /src/redis-rs/redis/src/entra_id.rs:553,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:555,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:556,1
    - Dst: Secret::new
      Src: /src/redis-rs/redis/src/entra_id.rs:556,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:557,1
    - Dst: ClientCertificateCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:561,1
    - Dst: into
      Src: /src/redis-rs/redis/src/entra_id.rs:564,1
    - Dst: Self::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:561,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:568,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:569,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:569,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:571,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:572,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:573,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 5
    argNames:
    - tenant_id
    - client_id
    - client_certificate
    - scopes
    - options
    argTypes:
    - String
    - String
    - ClientCertificate
    - Vec<String>
    - Option<ClientCertificateCredentialOptions>
    constantsTouched: []
    func_position:
      end: 575
      start: 543
    functionDepth: 13
    functionLinenumber: 543
    functionLinenumberEnd: 575
    functionName: EntraIdCredentialsProvider::new_client_certificate_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 1
    functionsReached:
    - Self::map_err
    - into
    - Default::default
    - Arc::new
    - Ok
    - Secret::new
    - ClientCertificateCredential::new
    - Some
    - Self::unwrap_credential
    - Self::validate_scopes
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new_client_certificate_with_scopes(tenant_id: String,client_id:
      String,client_certificate: ClientCertificate,scopes: Vec<String>,mut options:
      Option<ClientCertificateCredentialOptions>,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_system_assigned_managed_identity_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 583
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 583
    functionName: EntraIdCredentialsProvider::new_system_assigned_managed_identity
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Self::new_system_assigned_managed_identity_with_scopes
    linkageType: ''
    returnType: RedisResult
    signature: pub fn new_system_assigned_managed_identity() -> RedisResult<Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::validate_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:590,1
    - Dst: ManagedIdentityCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:592,1
    - Dst: Self::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:592,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:593,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:594,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:594,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:596,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:597,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:598,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - scopes
    - options
    argTypes:
    - Vec<String>
    - Option<ManagedIdentityCredentialOptions>
    constantsTouched: []
    func_position:
      end: 600
      start: 586
    functionDepth: 13
    functionLinenumber: 586
    functionLinenumberEnd: 600
    functionName: EntraIdCredentialsProvider::new_system_assigned_managed_identity_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 2
    functionsReached:
    - Self::map_err
    - Default::default
    - Arc::new
    - ManagedIdentityCredential::new
    - Ok
    - Self::unwrap_credential
    - Self::validate_scopes
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new_system_assigned_managed_identity_with_scopes(scopes: Vec<String>,options:
      Option<ManagedIdentityCredentialOptions>,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_user_assigned_managed_identity_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 1
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: EntraIdCredentialsProvider::new_user_assigned_managed_identity
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Self::new_user_assigned_managed_identity_with_scopes
    linkageType: ''
    returnType: RedisResult
    signature: pub fn new_user_assigned_managed_identity() -> RedisResult<Self>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::validate_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:615,1
    - Dst: ManagedIdentityCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:617,1
    - Dst: Self::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:617,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:618,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:619,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:619,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:621,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:622,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - scopes
    - options
    argTypes:
    - Vec<String>
    - Option<ManagedIdentityCredentialOptions>
    constantsTouched: []
    func_position:
      end: 625
      start: 611
    functionDepth: 13
    functionLinenumber: 611
    functionLinenumberEnd: 625
    functionName: EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 2
    functionsReached:
    - Self::map_err
    - Default::default
    - Arc::new
    - ManagedIdentityCredential::new
    - Ok
    - Self::unwrap_credential
    - Self::validate_scopes
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new_user_assigned_managed_identity_with_scopes(scopes: Vec<String>,options:
      Option<ManagedIdentityCredentialOptions>,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::validate_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:632,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:633,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:636,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:637,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - credential_provider
    - scopes
    argTypes:
    - Arc<dyn TokenCredential + Send + Sync>
    - Vec<String>
    constantsTouched: []
    func_position:
      end: 640
      start: 628
    functionDepth: 13
    functionLinenumber: 628
    functionLinenumberEnd: 640
    functionName: EntraIdCredentialsProvider::new_with_credential
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Ok
    - Self::validate_scopes
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new_with_credential(credential_provider: Arc<dyn TokenCredential
      + Send + Sync>,scopes: Vec<String>,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::start_refresh_service
      Src: /src/redis-rs/redis/src/entra_id.rs:644,1
    - Dst: OffsetDateTime::now_utc
      Src: /src/redis-rs/redis/src/entra_id.rs:645,1
    - Dst: try_into
      Src: /src/redis-rs/redis/src/entra_id.rs:646,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/src/entra_id.rs:648,1
    - Dst: checked_sub
      Src: /src/redis-rs/redis/src/entra_id.rs:650,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/src/entra_id.rs:651,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/entra_id.rs:650,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/src/entra_id.rs:654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - retry_config
    argTypes:
    - RetryConfig
    constantsTouched: []
    func_position:
      end: 657
      start: 643
    functionDepth: 17
    functionLinenumber: 643
    functionLinenumberEnd: 657
    functionName: EntraIdCredentialsProvider::start
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - OffsetDateTime::now_utc
    - unwrap_or_else
    - EntraIdCredentialsProvider::start_refresh_service
    - checked_sub
    - std::time::Duration::from_secs
    - try_into
    linkageType: ''
    returnType: void
    signature: 'pub fn start(&mut self, retry_config: RetryConfig)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::channel::<RedisResult<BasicAuth>>
      Src: /src/redis-rs/redis/src/entra_id.rs:662,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/entra_id.rs:664,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/entra_id.rs:664,1
    - Dst: push
      Src: /src/redis-rs/redis/src/entra_id.rs:664,1
    - Dst: futures_util::stream::unfold
      Src: /src/redis-rs/redis/src/entra_id.rs:669,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/entra_id.rs:670,1
    - Dst: map
      Src: /src/redis-rs/redis/src/entra_id.rs:670,1
    - Dst: read
      Src: /src/redis-rs/redis/src/entra_id.rs:673,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:673,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:673,1
    - Dst: futures_util::stream::once
      Src: /src/redis-rs/redis/src/entra_id.rs:674,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:674,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/entra_id.rs:674,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/entra_id.rs:674,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/entra_id.rs:678,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 680
      start: 661
    functionDepth: 15
    functionLinenumber: 661
    functionLinenumberEnd: 680
    functionName: EntraIdCredentialsProvider::subscribe
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - read
    - futures_util::stream::unfold
    - boxed
    - tokio::sync::mpsc::channel::<RedisResult<BasicAuth>>
    - map
    - clone
    - push
    - recv
    - lock
    - unwrap
    - Ok
    - chain
    - futures_util::stream::once
    - expect
    linkageType: ''
    returnType: Pin
    signature: fn subscribe(&self) -> Pin<Box<dyn Stream<Item = RedisResult<BasicAuth>>
      + Send + 'static>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/entra_id.rs:685,1
    - Dst: field
      Src: /src/redis-rs/redis/src/entra_id.rs:685,1
    - Dst: field
      Src: /src/redis-rs/redis/src/entra_id.rs:685,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/entra_id.rs:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 689
      start: 684
    functionDepth: 10
    functionLinenumber: 684
    functionLinenumberEnd: 689
    functionName: EntraIdCredentialsProvider::fmt
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - field
    - finish
    - debug_struct
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_developer_tools
      Src: /src/redis-rs/redis/src/entra_id.rs:699,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:700,1
    - Dst: EntraIdCredentialsProvider::new_client_secret
      Src: /src/redis-rs/redis/src/entra_id.rs:702,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/entra_id.rs:703,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/entra_id.rs:704,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/entra_id.rs:705,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:707,1
    - Dst: EntraIdCredentialsProvider::new_system_assigned_managed_identity
      Src: /src/redis-rs/redis/src/entra_id.rs:710,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 712
      start: 697
    functionDepth: 15
    functionLinenumber: 697
    functionLinenumberEnd: 712
    functionName: tests::test_entra_id_provider_creation
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - EntraIdCredentialsProvider::new_system_assigned_managed_identity
    - EntraIdCredentialsProvider::new_developer_tools
    - '&str::to_string'
    - EntraIdCredentialsProvider::new_client_secret
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_entra_id_provider_creation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_developer_tools_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:717,1
    - Dst: EntraIdCredentialsProvider::new_developer_tools_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:728,1
    - Dst: EntraIdCredentialsProvider::new_developer_tools_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 749
      start: 715
    functionDepth: 14
    functionLinenumber: 715
    functionLinenumberEnd: 749
    functionName: tests::test_scope_validation
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - EntraIdCredentialsProvider::new_developer_tools_with_scopes
    linkageType: ''
    returnType: void
    signature: fn test_scope_validation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_developer_tools_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:754,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:755,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 760
      start: 752
    functionDepth: 14
    functionLinenumber: 752
    functionLinenumberEnd: 760
    functionName: tests::test_custom_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - clone
    - EntraIdCredentialsProvider::new_developer_tools_with_scopes
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_custom_scopes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: call_once
      Src: /src/redis-rs/redis/src/entra_id.rs:782,1
    - Dst: env_logger::builder
      Src: /src/redis-rs/redis/src/entra_id.rs:783,1
    - Dst: is_test
      Src: /src/redis-rs/redis/src/entra_id.rs:784,1
    - Dst: std::env::var
      Src: /src/redis-rs/redis/src/entra_id.rs:785,1
    - Dst: String::is_err
      Src: /src/redis-rs/redis/src/entra_id.rs:785,1
    - Dst: filter_level
      Src: /src/redis-rs/redis/src/entra_id.rs:786,1
    - Dst: init
      Src: /src/redis-rs/redis/src/entra_id.rs:788,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 781
    functionDepth: 21
    functionLinenumber: 781
    functionLinenumberEnd: 790
    functionName: entra_id_mock_tests::init_logger
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - init
    - env_logger::builder
    - String::is_err
    - filter_level
    - is_test
    - call_once
    linkageType: ''
    returnType: void
    signature: fn init_logger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_arc_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:922,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mock_credential
    - scopes
    argTypes:
    - MockTokenCredential
    - Vec<String>
    constantsTouched: []
    func_position:
      end: 923
      start: 918
    functionDepth: 11
    functionLinenumber: 918
    functionLinenumberEnd: 923
    functionName: entra_id_mock_tests::create_mock_entra_id_credentials_provider
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - create_arc_mock_entra_id_credentials_provider
    - Arc::new
    linkageType: ''
    returnType: EntraIdCredentialsProvider
    signature: 'fn create_mock_entra_id_credentials_provider(mock_credential: MockTokenCredential,scopes:
      Vec<String>,) -> EntraIdCredentialsProvider'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_with_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:930,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - mock_credential
    - scopes
    argTypes:
    - Arc<MockTokenCredential>
    - Vec<String>
    constantsTouched: []
    func_position:
      end: 931
      start: 926
    functionDepth: 14
    functionLinenumber: 926
    functionLinenumberEnd: 931
    functionName: entra_id_mock_tests::create_arc_mock_entra_id_credentials_provider
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - EntraIdCredentialsProvider::new_with_credential
    - RedisResult::unwrap
    linkageType: ''
    returnType: EntraIdCredentialsProvider
    signature: 'fn create_arc_mock_entra_id_credentials_provider(mock_credential:
      Arc<MockTokenCredential>,scopes: Vec<String>,) -> EntraIdCredentialsProvider'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/src/entra_id.rs:935,1
    - Dst: MockTokenCredential::success
      Src: /src/redis-rs/redis/src/entra_id.rs:936,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:937,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:939,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:943,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:943,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:946,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:946,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:952,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:953,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:953,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:953,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 959
      start: 934
    functionDepth: 22
    functionLinenumber: 934
    functionLinenumberEnd: 959
    functionName: entra_id_mock_tests::test_mock_successful_authentication
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - tokio::time::sleep
    - MockTokenCredential::success
    - clone
    - init_logger
    - RetryConfig::default
    - start
    - create_mock_entra_id_credentials_provider
    - next
    - unwrap
    - std::time::Duration::from_millis
    - subscribe
    linkageType: ''
    returnType: void
    signature: async fn test_mock_successful_authentication()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/src/entra_id.rs:963,1
    - Dst: MockTokenCredential::failure
      Src: /src/redis-rs/redis/src/entra_id.rs:964,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:965,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:967,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:971,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:972,1
    - Dst: Self::set_number_of_retries
      Src: /src/redis-rs/redis/src/entra_id.rs:972,1
    - Dst: Self::set_min_delay
      Src: /src/redis-rs/redis/src/entra_id.rs:972,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:974,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/src/entra_id.rs:972,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:975,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/src/entra_id.rs:972,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:980,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:981,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 991
      start: 962
    functionDepth: 22
    functionLinenumber: 962
    functionLinenumberEnd: 991
    functionName: entra_id_mock_tests::test_mock_authentication_failure
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - MockTokenCredential::failure
    - clone
    - init_logger
    - RetryConfig::default
    - Self::set_min_delay
    - Self::set_max_delay
    - Self::set_exponent_base
    - start
    - create_mock_entra_id_credentials_provider
    - next
    - std::time::Duration::from_millis
    - subscribe
    - Self::set_number_of_retries
    linkageType: ''
    returnType: void
    signature: async fn test_mock_authentication_failure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/src/entra_id.rs:995,1
    - Dst: MockTokenCredential::alternating_fail_success
      Src: /src/redis-rs/redis/src/entra_id.rs:996,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:997,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:999,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:1003,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:1003,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1006,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:1006,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1012,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1013,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1013,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1013,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 994
    functionDepth: 22
    functionLinenumber: 994
    functionLinenumberEnd: 1016
    functionName: entra_id_mock_tests::test_mock_retry_mechanism
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - tokio::time::sleep
    - MockTokenCredential::alternating_fail_success
    - clone
    - init_logger
    - RetryConfig::default
    - start
    - create_mock_entra_id_credentials_provider
    - next
    - unwrap
    - std::time::Duration::from_millis
    - subscribe
    linkageType: ''
    returnType: void
    signature: async fn test_mock_retry_mechanism()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/src/entra_id.rs:1020,1
    - Dst: MockTokenCredential::multiple_tokens
      Src: /src/redis-rs/redis/src/entra_id.rs:1021,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:1022,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1024,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:1028,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:1028,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1031,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1032,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1033,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1036,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1036,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1036,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1037,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1037,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1037,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1038,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1038,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1038,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1019
    functionDepth: 22
    functionLinenumber: 1019
    functionLinenumberEnd: 1047
    functionName: entra_id_mock_tests::test_mock_multiple_subscribers
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - clone
    - init_logger
    - MockTokenCredential::multiple_tokens
    - RetryConfig::default
    - start
    - create_mock_entra_id_credentials_provider
    - next
    - unwrap
    - subscribe
    linkageType: ''
    returnType: void
    signature: async fn test_mock_multiple_subscribers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/src/entra_id.rs:1051,1
    - Dst: MockTokenCredential::multiple_tokens
      Src: /src/redis-rs/redis/src/entra_id.rs:1052,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:1053,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1054,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:1058,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:1058,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1060,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1062,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1062,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1062,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1068,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/src/entra_id.rs:1068,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1069,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1069,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1069,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1075,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/src/entra_id.rs:1075,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1076,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1076,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1076,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1050
    functionDepth: 22
    functionLinenumber: 1050
    functionLinenumberEnd: 1080
    functionName: entra_id_mock_tests::test_mock_multiple_tokens_over_time
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - tokio::time::sleep
    - clone
    - init_logger
    - MockTokenCredential::multiple_tokens
    - RetryConfig::default
    - start
    - create_mock_entra_id_credentials_provider
    - next
    - unwrap
    - subscribe
    - std::time::Duration::from_secs
    linkageType: ''
    returnType: void
    signature: async fn test_mock_multiple_tokens_over_time()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: panic::catch_unwind
      Src: /src/redis-rs/redis/src/entra_id.rs:1086,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1087,1
    - Dst: MockTokenCredential::success
      Src: /src/redis-rs/redis/src/entra_id.rs:1087,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/entra_id.rs:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1101
      start: 1083
    functionDepth: 16
    functionLinenumber: 1083
    functionLinenumberEnd: 1101
    functionName: entra_id_mock_tests::test_mock_scope_validation
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - panic::catch_unwind
    - create_mock_entra_id_credentials_provider
    - MockTokenCredential::success
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn test_mock_scope_validation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/src/entra_id.rs:1105,1
    - Dst: MockTokenCredential::multiple_tokens
      Src: /src/redis-rs/redis/src/entra_id.rs:1106,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1108,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:1112,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:1112,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1114,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1115,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1116,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1120,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1120,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1120,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1121,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1121,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1121,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1122,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1122,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1122,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/entra_id.rs:1129,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1131,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1131,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1131,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1132,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1132,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1132,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/entra_id.rs:1143,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1104
    functionDepth: 22
    functionLinenumber: 1104
    functionLinenumberEnd: 1155
    functionName: entra_id_mock_tests::test_mock_subscriber_cleanup
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - init_logger
    - RetryConfig::default
    - MockTokenCredential::multiple_tokens
    - start
    - create_mock_entra_id_credentials_provider
    - next
    - unwrap
    - subscribe
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_mock_subscriber_cleanup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/src/entra_id.rs:1161,1
    - Dst: MockTokenCredential::success
      Src: /src/redis-rs/redis/src/entra_id.rs:1162,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1164,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:1174,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:1174,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1176,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:1176,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/entra_id.rs:1179,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:1181,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/entra_id.rs:1191,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/entra_id.rs:1200,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1202,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:1202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1160
    functionDepth: 22
    functionLinenumber: 1160
    functionLinenumberEnd: 1208
    functionName: entra_id_mock_tests::test_mock_provider_with_running_background_task_cleanup
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Arc::downgrade
    - tokio::time::sleep
    - MockTokenCredential::success
    - init_logger
    - RetryConfig::default
    - clone
    - start
    - create_mock_entra_id_credentials_provider
    - std::time::Duration::from_millis
    - drop
    linkageType: ''
    returnType: void
    signature: async fn test_mock_provider_with_running_background_task_cleanup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: splitn
      Src: /src/redis-rs/redis/src/parser.rs:36,1
    - Dst: next
      Src: /src/redis-rs/redis/src/parser.rs:37,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:37,1
    - Dst: errors::ServerError
      Src: /src/redis-rs/redis/src/parser.rs:53,1
    - Dst: Option::into
      Src: /src/redis-rs/redis/src/parser.rs:54,1
    - Dst: next
      Src: /src/redis-rs/redis/src/parser.rs:55,1
    - Dst: map
      Src: /src/redis-rs/redis/src/parser.rs:55,1
    - Dst: into
      Src: /src/redis-rs/redis/src/parser.rs:55,1
    - Dst: next
      Src: /src/redis-rs/redis/src/parser.rs:59,1
    - Dst: map
      Src: /src/redis-rs/redis/src/parser.rs:59,1
    - Dst: into
      Src: /src/redis-rs/redis/src/parser.rs:59,1
    - Dst: errors::ServerError
      Src: /src/redis-rs/redis/src/parser.rs:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - line
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 61
      start: 35
    functionDepth: 7
    functionLinenumber: 35
    functionLinenumberEnd: 61
    functionName: err_parser
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - Option::into
    - splitn
    - map
    - into
    - next
    - unwrap
    - errors::ServerError
    linkageType: ''
    returnType: ServerError
    signature: 'fn err_parser(line: &str) -> ServerError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushKind::as_str
      Src: /src/redis-rs/redis/src/parser.rs:64,1
    - Dst: PushKind::Other
      Src: /src/redis-rs/redis/src/parser.rs:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - kind
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 77
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 77
    functionName: get_push_kind
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - PushKind::Other
    - PushKind::as_str
    linkageType: ''
    returnType: PushKind
    signature: 'pub fn get_push_kind(kind: String) -> PushKind'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/parser.rs:86,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 333
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 333
    functionName: value
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 149
    functionsReached:
    - unwrap_or
    linkageType: ''
    returnType: impl combine::Parser
    signature: 'fn value<''a, I>(count: Option<usize>,) -> impl combine::Parser<I,
      Output = Value, PartialState = AnySendSyncPartialState>whereI: RangeStream<Token
      = u8, Range = &''a [u8]>,I::Error: combine::ParseError<u8, &''a [u8], I::Position>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/redis-rs/redis/src/parser.rs:3,1
    - Dst: is_unexpected_end_of_input
      Src: /src/redis-rs/redis/src/parser.rs:5,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/parser.rs:6,1
    - Dst: io::Error::from
      Src: /src/redis-rs/redis/src/parser.rs:6,1
    - Dst: map_range
      Src: /src/redis-rs/redis/src/parser.rs:8,1
    - Dst: map_position
      Src: /src/redis-rs/redis/src/parser.rs:8,1
    - Dst: translate_position
      Src: /src/redis-rs/redis/src/parser.rs:10,1
    - Dst: buffer
      Src: /src/redis-rs/redis/src/parser.rs:10,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/parser.rs:8,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/parser.rs:12,1
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/parser.rs:12,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 353
    functionName: to_redis_err
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - to_string
    - ParsingError::from
    - map_range
    - into
    - RedisError::from
    - translate_position
    - buffer
    - is_unexpected_end_of_input
    - io::Error::from
    - map_position
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/parser.rs:427,1
    - Dst: to_redis_err
      Src: /src/redis-rs/redis/src/parser.rs:427,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/parser.rs:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - decoder
    - read
    argTypes:
    - '&mut combine::stream::Decoder<AnySendSyncPartialState, PointerOffset<[u8]>>'
    - '&mut R'
    constantsTouched: []
    func_position:
      end: 430
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 430
    functionName: aio_support::parse_redis_value_async
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - to_redis_err
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn parse_redis_value_async<R>(decoder: &mut combine::stream::Decoder<AnySendSyncPartialState,
      PointerOffset<[u8]>>,read: &mut R,) -> RedisResult<Value>whereR: AsyncRead +
      std::marker::Unpin,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/parser.rs:444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 445
      start: 443
    functionDepth: 11
    functionLinenumber: 443
    functionLinenumberEnd: 445
    functionName: Parser::default
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/redis-rs/redis/src/parser.rs:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 457
    functionDepth: 11
    functionLinenumber: 457
    functionLinenumberEnd: 461
    functionName: Parser::new
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - Decoder::new
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/parser.rs:472,1
    - Dst: to_redis_err
      Src: /src/redis-rs/redis/src/parser.rs:472,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/parser.rs:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 475
      start: 466
    functionDepth: 2
    functionLinenumber: 466
    functionLinenumberEnd: 475
    functionName: Parser::parse_value
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    - to_redis_err
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn parse_value<T: Read>(&mut self, mut reader: T) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::new
      Src: /src/redis-rs/redis/src/parser.rs:483,1
    - Dst: ServerError::parse_value
      Src: /src/redis-rs/redis/src/parser.rs:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 12
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: parse_redis_value
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 45
    functionsReached:
    - ServerError::parse_value
    - Parser::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn parse_redis_value(bytes: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/parser.rs:497,1
    - Dst: bytes::BytesMut::from
      Src: /src/redis-rs/redis/src/parser.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 495
    functionDepth: 12
    functionLinenumber: 495
    functionLinenumberEnd: 506
    functionName: tests::decode_eof_returns_none_at_eof
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - bytes::BytesMut::from
    - ValueCodec::default
    linkageType: ''
    returnType: void
    signature: fn decode_eof_returns_none_at_eof()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/parser.rs:512,1
    - Dst: bytes::BytesMut::from
      Src: /src/redis-rs/redis/src/parser.rs:515,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/parser.rs:515,1
    - Dst: Self::decode_eof
      Src: /src/redis-rs/redis/src/parser.rs:516,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:516,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:516,1
    - Dst: bytes::BytesMut::from
      Src: /src/redis-rs/redis/src/parser.rs:530,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/parser.rs:530,1
    - Dst: Self::decode_eof
      Src: /src/redis-rs/redis/src/parser.rs:531,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:531,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 534
      start: 510
    functionDepth: 12
    functionLinenumber: 510
    functionLinenumberEnd: 534
    functionName: tests::decode_eof_returns_error_inside_array_and_can_parse_more_inputs
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - Self::decode_eof
    - bytes::BytesMut::from
    - '&str::as_slice'
    - unwrap
    - ValueCodec::default
    linkageType: ''
    returnType: void
    signature: fn decode_eof_returns_error_inside_array_and_can_parse_more_inputs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:542,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:556,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 537
    functionDepth: 13
    functionLinenumber: 537
    functionLinenumberEnd: 559
    functionName: tests::parse_nested_error_and_handle_more_inputs
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_nested_error_and_handle_more_inputs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:563,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:563,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:565,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:565,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:573,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:573,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:581,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:581,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:583,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:583,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:585,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:585,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:587,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:587,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:590,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:590,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:592,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:592,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 594
      start: 562
    functionDepth: 13
    functionLinenumber: 562
    functionLinenumberEnd: 594
    functionName: tests::decode_resp3_double
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_double()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:598,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:598,1
    - Dst: as_map_iter
      Src: /src/redis-rs/redis/src/parser.rs:599,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 608
      start: 597
    functionDepth: 13
    functionLinenumber: 597
    functionLinenumberEnd: 608
    functionName: tests::decode_resp3_map
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - as_map_iter
    - parse_redis_value
    - Option::unwrap
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_map()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:612,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:612,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:614,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:614,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:616,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 620
      start: 611
    functionDepth: 13
    functionLinenumber: 611
    functionLinenumberEnd: 620
    functionName: tests::decode_resp3_boolean
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_boolean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 632
      start: 623
    functionDepth: 13
    functionLinenumber: 623
    functionLinenumberEnd: 632
    functionName: tests::decode_resp3_blob_error
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_blob_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:636,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:636,1
    - Dst: Value::BigNumber
      Src: /src/redis-rs/redis/src/parser.rs:638,1
    - Dst: num_bigint::BigInt::parse_bytes
      Src: /src/redis-rs/redis/src/parser.rs:639,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:639,1
    - Dst: Value::BigNumber
      Src: /src/redis-rs/redis/src/parser.rs:643,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/src/parser.rs:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 645
      start: 635
    functionDepth: 13
    functionLinenumber: 635
    functionLinenumberEnd: 645
    functionName: tests::decode_resp3_big_number
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - num_bigint::BigInt::parse_bytes
    - unwrap
    - Value::BigNumber
    - '&str::to_vec'
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_big_number()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:649,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:649,1
    - Dst: as_sequence
      Src: /src/redis-rs/redis/src/parser.rs:650,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 648
    functionDepth: 13
    functionLinenumber: 648
    functionLinenumberEnd: 657
    functionName: tests::decode_resp3_set
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Option::unwrap
    - as_sequence
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_set()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:661,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 673
      start: 660
    functionDepth: 13
    functionLinenumber: 660
    functionLinenumberEnd: 673
    functionName: tests::decode_resp3_push
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_push()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/parser.rs:678,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:678,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/parser.rs:679,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:679,1
    - Dst: repeat
      Src: /src/redis-rs/redis/src/parser.rs:681,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:681,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:682,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/parser.rs:682,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:683,1
    - Dst: repeat
      Src: /src/redis-rs/redis/src/parser.rs:689,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:689,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:690,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 696
      start: 676
    functionDepth: 11
    functionLinenumber: 676
    functionLinenumberEnd: 696
    functionName: tests::test_max_recursion_depth_set_and_array
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - extend
    - to_vec
    - clone
    - repeat
    - parse_redis_value
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn test_max_recursion_depth_set_and_array()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: repeat
      Src: /src/redis-rs/redis/src/parser.rs:703,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:703,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:704,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:705,1
    - Dst: repeat
      Src: /src/redis-rs/redis/src/parser.rs:711,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:711,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:712,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:713,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 717
      start: 699
    functionDepth: 11
    functionLinenumber: 699
    functionLinenumberEnd: 717
    functionName: tests::test_max_recursion_depth_map
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - extend
    - to_vec
    - parse_redis_value
    - repeat
    linkageType: ''
    returnType: void
    signature: fn test_max_recursion_depth_map()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::ping
      Src: /src/redis-rs/redis/src/bb8.rs:11,1
    - Dst: query_async
      Src: /src/redis-rs/redis/src/bb8.rs:11,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/bb8.rs:12,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/bb8.rs:13,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/bb8.rs:14,1
    - Dst: into
      Src: /src/redis-rs/redis/src/bb8.rs:14,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 10
    functionDepth: 18
    functionLinenumber: 10
    functionLinenumberEnd: 33
    functionName: impl_bb8_manage_connection
    functionSourceFile: /src/redis-rs/redis/src/bb8.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - as_str
    - Ok
    - query_async
    - Cmd::ping
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 153
    functionName: not_a_sentinel_error
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    linkageType: ''
    returnType: RedisError
    signature: fn not_a_sentinel_error() -> RedisError
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 189
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 189
    functionName: SentinelNodeConnectionInfo::set_tls_mode
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_tls_mode(self, tls_mode: TlsMode) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - redis_connection_info
    argTypes:
    - RedisConnectionInfo
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: SentinelNodeConnectionInfo::set_redis_connection_info
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_redis_connection_info(self, redis_connection_info: RedisConnectionInfo)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tcp_settings
    argTypes:
    - TcpSettings
    constantsTouched: []
    func_position:
      end: 205
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 205
    functionName: SentinelNodeConnectionInfo::set_tcp_settings
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_tcp_settings(self, tcp_settings: TcpSettings) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/sentinel.rs:214,1
    - Dst: Self::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:222,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:222,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/sentinel.rs:222,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:232,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:234,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:234,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:235,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - ip
    - port
    - certs
    argTypes:
    - String
    - u16
    - '&Option<TlsCertificates>'
    constantsTouched: []
    func_position:
      end: 237
      start: 207
    functionDepth: 7
    functionLinenumber: 207
    functionLinenumberEnd: 237
    functionName: SentinelNodeConnectionInfo::create_connection_info
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - map
    - transpose
    - clone
    - unwrap_or_default
    - Ok
    - crate::ConnectionAddr::Tcp
    - Self::as_ref
    linkageType: ''
    returnType: RedisResult
    signature: 'fn create_connection_info(&self,ip: String,port: u16,#[cfg(feature
      = "tls-rustls")] certs: &Option<TlsCertificates>,) -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 248
    functionName: '&SentinelNodeConnectionInfo::default'
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:252,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 18
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: sentinel_masters_cmd
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - crate::cmd
    - Cmd::arg
    linkageType: ''
    returnType: crate::Cmd
    signature: fn sentinel_masters_cmd() -> crate::Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:258,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:259,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - master_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 262
      start: 257
    functionDepth: 18
    functionLinenumber: 257
    functionLinenumberEnd: 262
    functionName: sentinel_replicas_cmd
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - crate::cmd
    - Cmd::arg
    linkageType: ''
    returnType: crate::Cmd
    signature: 'fn sentinel_replicas_cmd(master_name: &str) -> crate::Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&HashMap<String, String>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:265,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/sentinel.rs:265,1
    - Dst: TlsFilePaths::as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:265,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:265,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:266,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:267,1
    - Dst: '&HashMap<String, String>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:268,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/sentinel.rs:268,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:269,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:269,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:269,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:271,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/sentinel.rs:271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - master_info
    - service_name
    argTypes:
    - '&HashMap<String, String>'
    - '&str'
    constantsTouched: []
    func_position:
      end: 272
      start: 264
    functionDepth: 14
    functionLinenumber: 264
    functionLinenumberEnd: 272
    functionName: is_master_valid
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - parse::<u16>
    - Option::map
    - Option::is_some_and
    - is_ok
    - '&HashMap<String, String>::get'
    - contains
    - Some
    - TlsFilePaths::as_str
    - '&HashMap<String, String>::contains_key'
    linkageType: ''
    returnType: bool
    signature: 'fn is_master_valid(master_info: &HashMap<String, String>, service_name:
      &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:275,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:276,1
    - Dst: '&HashMap<String, String>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:277,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/sentinel.rs:277,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:279,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:279,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:280,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/sentinel.rs:280,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - replica_info
    argTypes:
    - '&HashMap<String, String>'
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 16
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: is_replica_valid
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - parse::<u16>
    - '&HashMap<String, String>::contains_key'
    - Option::is_some_and
    - is_ok
    - '&HashMap<String, String>::get'
    - contains
    linkageType: ''
    returnType: bool
    signature: 'fn is_replica_valid(replica_info: &HashMap<String, String>) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/sentinel.rs:285,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/sentinel.rs:285,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - max
    argTypes:
    - NonZeroUsize
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    functionName: random_replica_index
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - random_range
    - into
    linkageType: ''
    returnType: usize
    signature: 'fn random_replica_index(max: NonZeroUsize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:289,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:290,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/sentinel.rs:296,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:296,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:298,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:298,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - addresses
    argTypes:
    - '&[ConnectionInfo]'
    constantsTouched: []
    func_position:
      end: 300
      start: 288
    functionDepth: 12
    functionLinenumber: 288
    functionLinenumberEnd: 300
    functionName: build_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - map
    - RedisResult::is_empty
    - Client::open
    - ConnectionAddr::clone
    - RedisResult::iter
    - fail
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn build_replica_clients(addresses: &[ConnectionInfo]) -> Result<Vec<Client>,
      crate::RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:306,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:307,1
    - Dst: Option<usize>::unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:313,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:316,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:317,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:318,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:318,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:319,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:320,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:327,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:327,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - addresses
    - start_index
    argTypes:
    - '&[ConnectionInfo]'
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 328
      start: 302
    functionDepth: 5
    functionLinenumber: 302
    functionLinenumberEnd: 328
    functionName: try_connect_to_first_replica
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - RedisResult::is_empty
    - clone
    - Option<usize>::unwrap_or
    - Client::open
    - None::expect
    - Ok
    - RedisResult::len
    - fail
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn try_connect_to_first_replica(addresses: &[ConnectionInfo],start_index:
      Option<usize>,) -> Result<Client, crate::RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<HashMap<String, String>>::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:334,1
    - Dst: std::iter::Chain::filter
      Src: /src/redis-rs/redis/src/sentinel.rs:334,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:334,1
    - Dst: redis::ConnectionInfo::remove
      Src: /src/redis-rs/redis/src/sentinel.rs:339,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:339,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:340,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - servers_info
    - validate
    argTypes:
    - Vec<HashMap<String, String>>
    - impl Fn(&HashMap<String, String>) -> bool + 'a
    constantsTouched: []
    func_position:
      end: 343
      start: 330
    functionDepth: 7
    functionLinenumber: 330
    functionLinenumberEnd: 343
    functionName: valid_addrs
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - parse::<u16>
    - map
    - redis::ConnectionInfo::remove
    - Vec<HashMap<String, String>>::into_iter
    - unwrap
    - std::iter::Chain::filter
    linkageType: ''
    returnType: impl Iterator
    signature: 'fn valid_addrs<''a>(servers_info: Vec<HashMap<String, String>>,validate:
      impl Fn(&HashMap<String, String>) -> bool + ''a,) -> impl Iterator<Item = (String,
      u16)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:348,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:348,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:349,1
    - Dst: check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:352,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:354,1
    - Dst: check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:358,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:360,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:363,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:363,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:363,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 364
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 364
    functionName: determine_master_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - check_role
    - Client::open
    - redis::ConnectionInfo::clone
    - Ok
    - RedisResult::unwrap_err
    - check_info_replication
    - get_connection
    - evaluate_role_check_errors
    linkageType: ''
    returnType: RedisResult
    signature: 'fn determine_master_from_role_or_info_replication(connection_info:
      &ConnectionInfo,) -> RedisResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:367,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:367,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:368,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:369,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 20
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: get_node_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::query
    - Client::open
    - redis::ConnectionInfo::clone
    - crate::cmd
    - get_connection
    linkageType: ''
    returnType: RedisResult
    signature: 'fn get_node_role(connection_info: &ConnectionInfo) -> RedisResult<Role>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:373,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 20
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: check_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - redis::Cmd::query
    - crate::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_role(conn: &mut Connection) -> RedisResult<Role>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:377,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:377,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/src/sentinel.rs:377,1
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/src/sentinel.rs:380,1
    - Dst: HashMap::get
      Src: /src/redis-rs/redis/src/sentinel.rs:381,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:382,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:382,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:383,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 388
      start: 376
    functionDepth: 18
    functionLinenumber: 376
    functionLinenumberEnd: 388
    functionName: check_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - redis::Cmd::arg
    - parse_replication_info
    - Err
    - clone
    - RedisError::from
    - '&mut Self::query'
    - Ok
    - crate::cmd
    - HashMap::get
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_info_replication(conn: &mut Connection) -> RedisResult<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::kind
      Src: /src/redis-rs/redis/src/sentinel.rs:395,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:395,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:396,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:399,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - role_err
    - fallback_role_err
    argTypes:
    - RedisError
    - RedisError
    constantsTouched: []
    func_position:
      end: 400
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 400
    functionName: evaluate_role_check_errors
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Err
    - RedisError::kind
    - into
    linkageType: ''
    returnType: RedisResult
    signature: 'fn evaluate_role_check_errors(role_err: RedisError,fallback_role_err:
      RedisError,) -> RedisResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_addrs
      Src: /src/redis-rs/redis/src/sentinel.rs:424,1
    - Dst: is_master_valid
      Src: /src/redis-rs/redis/src/sentinel.rs:424,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:426,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:428,1
    - Dst: determine_master_from_role_or_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:429,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:430,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - masters
    - service_name
    - node_connection_info
    - certs
    argTypes:
    - Vec<HashMap<String, String>>
    - '&str'
    - '&SentinelNodeConnectionInfo'
    - '&Option<TlsCertificates>'
    constantsTouched: []
    func_position:
      end: 438
      start: 418
    functionDepth: 15
    functionLinenumber: 418
    functionLinenumberEnd: 438
    functionName: find_valid_master
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - determine_master_from_role_or_info_replication
    - Ok
    - valid_addrs
    - is_master_valid
    - SentinelNodeConnectionInfo::create_connection_info
    linkageType: ''
    returnType: RedisResult
    signature: 'fn find_valid_master(masters: Vec<HashMap<String, String>>,service_name:
      &str,node_connection_info: &SentinelNodeConnectionInfo,#[cfg(feature = "tls-rustls")]
      certs: &Option<TlsCertificates>,) -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:444,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:444,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:445,1
    - Dst: async_check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:447,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:449,1
    - Dst: async_check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:453,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:455,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:458,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:458,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:458,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 459
      start: 441
    functionDepth: 14
    functionLinenumber: 441
    functionLinenumberEnd: 459
    functionName: async_determine_master_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_check_info_replication
    - Client::open
    - redis::ConnectionInfo::clone
    - Ok
    - unwrap_err
    - get_multiplexed_async_connection
    - async_check_role
    - evaluate_role_check_errors
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_determine_master_from_role_or_info_replication(connection_info:
      &ConnectionInfo,) -> RedisResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:465,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:465,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:466,1
    - Dst: async_check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:468,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:470,1
    - Dst: async_check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:474,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:476,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:479,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:479,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:479,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 480
      start: 462
    functionDepth: 14
    functionLinenumber: 462
    functionLinenumberEnd: 480
    functionName: async_determine_slave_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_check_info_replication
    - Client::open
    - redis::ConnectionInfo::clone
    - Ok
    - unwrap_err
    - get_multiplexed_async_connection
    - async_check_role
    - evaluate_role_check_errors
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_determine_slave_from_role_or_info_replication(connection_info:
      &ConnectionInfo,) -> RedisResult<bool>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:484,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 18
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: async_check_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - crate::cmd
    - redis::Cmd::query_async
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_check_role(conn: &mut MultiplexedConnection) -> RedisResult<Role>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:490,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:490,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/src/sentinel.rs:490,1
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/src/sentinel.rs:495,1
    - Dst: HashMap::get
      Src: /src/redis-rs/redis/src/sentinel.rs:496,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:497,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:497,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:498,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:498,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 503
      start: 489
    functionDepth: 18
    functionLinenumber: 489
    functionLinenumberEnd: 503
    functionName: async_check_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - redis::Cmd::arg
    - parse_replication_info
    - Err
    - clone
    - RedisError::from
    - '&mut Self::query_async'
    - Ok
    - crate::cmd
    - HashMap::get
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_check_info_replication(conn: &mut MultiplexedConnection)
      -> RedisResult<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_addrs
      Src: /src/redis-rs/redis/src/sentinel.rs:513,1
    - Dst: is_master_valid
      Src: /src/redis-rs/redis/src/sentinel.rs:513,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:515,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:517,1
    - Dst: async_determine_master_from_role_or_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:518,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:519,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - masters
    - service_name
    - node_connection_info
    - certs
    argTypes:
    - Vec<HashMap<String, String>>
    - '&str'
    - '&SentinelNodeConnectionInfo'
    - '&Option<TlsCertificates>'
    constantsTouched: []
    func_position:
      end: 527
      start: 507
    functionDepth: 15
    functionLinenumber: 507
    functionLinenumberEnd: 527
    functionName: async_find_valid_master
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_determine_master_from_role_or_info_replication
    - Ok
    - valid_addrs
    - is_master_valid
    - SentinelNodeConnectionInfo::create_connection_info
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_find_valid_master(masters: Vec<HashMap<String, String>>,service_name:
      &str,node_connection_info: &SentinelNodeConnectionInfo,#[cfg(feature = "tls-rustls")]
      certs: &Option<TlsCertificates>,) -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_addrs
      Src: /src/redis-rs/redis/src/sentinel.rs:552,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/sentinel.rs:552,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:553,1
    - Dst: "map(|(ip, port)| node_connection_info.create_connection_info(ip, port,\
        \ certs))\n        .collect::<RedisResult<Vec<ConnectionInfo>>>"
      Src: /src/redis-rs/redis/src/sentinel.rs:552,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:556,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:556,1
    - Dst: std::iter::Chain::filter
      Src: /src/redis-rs/redis/src/sentinel.rs:556,1
    - Dst: get_node_role
      Src: /src/redis-rs/redis/src/sentinel.rs:559,1
    - Dst: RedisResult::is_ok_and
      Src: /src/redis-rs/redis/src/sentinel.rs:559,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 3
    argNames:
    - replicas
    - node_connection_info
    - certs
    argTypes:
    - Vec<HashMap<String, String>>
    - '&SentinelNodeConnectionInfo'
    - '&Option<TlsCertificates>'
    constantsTouched: []
    func_position:
      end: 562
      start: 547
    functionDepth: 21
    functionLinenumber: 547
    functionLinenumberEnd: 562
    functionName: get_valid_replicas_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - "map(|(ip, port)| node_connection_info.create_connection_info(ip, port, certs))\n\
      \        .collect::<RedisResult<Vec<ConnectionInfo>>>"
    - Ok
    - std::iter::Chain::filter
    - valid_addrs
    - get_node_role
    - RedisResult::into_iter
    - SentinelNodeConnectionInfo::create_connection_info
    - RedisResult::is_ok_and
    - collect
    linkageType: ''
    returnType: RedisResult
    signature: 'fn get_valid_replicas_addresses(replicas: Vec<HashMap<String, String>>,node_connection_info:
      &SentinelNodeConnectionInfo,certs: &Option<TlsCertificates>,) -> RedisResult<Vec<ConnectionInfo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_determine_slave_from_role_or_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:599,1
    - Dst: then_some
      Src: /src/redis-rs/redis/src/sentinel.rs:600,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - ConnectionInfo
    constantsTouched: []
    func_position:
      end: 603
      start: 598
    functionDepth: 20
    functionLinenumber: 598
    functionLinenumberEnd: 603
    functionName: a::s::y::n::c::_::g::e::t::_::v::a::l::i::d::_::r::e::p::l::i::c::a::s::_::a::d::d::r::e::s::s::e::s::is_replica_role_valid
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - then_some
    - async_determine_slave_from_role_or_info_replication
    linkageType: ''
    returnType: Option
    signature: 'async fn is_replica_role_valid(connection_info: ConnectionInfo) ->
      Option<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: valid_addrs
      Src: /src/redis-rs/redis/src/sentinel.rs:605,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/sentinel.rs:605,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:606,1
    - Dst: "map(|(ip, port)| node_connection_info.create_connection_info(ip, port,\
        \ certs))\n        .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/sentinel.rs:605,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:609,1
    - Dst: futures_util::stream::iter
      Src: /src/redis-rs/redis/src/sentinel.rs:609,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/sentinel.rs:609,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:609,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 3
    argNames:
    - replicas
    - node_connection_info
    - certs
    argTypes:
    - Vec<HashMap<String, String>>
    - '&SentinelNodeConnectionInfo'
    - '&Option<TlsCertificates>'
    constantsTouched: []
    func_position:
      end: 613
      start: 593
    functionDepth: 8
    functionLinenumber: 593
    functionLinenumberEnd: 613
    functionName: async_get_valid_replicas_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - futures_util::stream::iter
    - Ok
    - valid_addrs
    - "map(|(ip, port)| node_connection_info.create_connection_info(ip, port, certs))\n\
      \        .collect::<RedisResult<Vec<_>>>"
    - filter_map
    - SentinelNodeConnectionInfo::create_connection_info
    - collect
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_get_valid_replicas_addresses(replicas: Vec<HashMap<String,
      String>>,node_connection_info: &SentinelNodeConnectionInfo,certs: &Option<TlsCertificates>,)
      -> RedisResult<Vec<ConnectionInfo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:620,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:620,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:621,1
    - Dst: bool::replace
      Src: /src/redis-rs/redis/src/sentinel.rs:622,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:623,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:623,1
    - Dst: bool::as_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:624,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:624,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:628,1
    - Dst: not_a_sentinel_error
      Src: /src/redis-rs/redis/src/sentinel.rs:628,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:630,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 2
    argNames:
    - connection
    - connection_info
    argTypes:
    - '&mut Option<AsyncConnection>'
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 631
      start: 616
    functionDepth: 18
    functionLinenumber: 616
    functionLinenumberEnd: 631
    functionName: async_reconnect
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - bool::replace
    - Client::open
    - not_a_sentinel_error
    - redis::Cmd::query_async
    - redis::ConnectionInfo::clone
    - unwrap
    - Ok
    - crate::cmd
    - get_multiplexed_async_connection
    - bool::as_mut
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_reconnect(connection: &mut Option<AsyncConnection>,connection_info:
      &ConnectionInfo,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Option<AsyncConnection>::is_none'
      Src: /src/redis-rs/redis/src/sentinel.rs:639,1
    - Dst: async_reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:640,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:643,1
    - Dst: '&mut Option<AsyncConnection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:643,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:643,1
    - Dst: is_unrecoverable_error
      Src: /src/redis-rs/redis/src/sentinel.rs:646,1
    - Dst: is_io_error
      Src: /src/redis-rs/redis/src/sentinel.rs:646,1
    - Dst: async_reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:647,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:648,1
    - Dst: '&mut Option<AsyncConnection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:648,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:648,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:650,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 3
    argNames:
    - cmd
    - connection_info
    - cached_connection
    argTypes:
    - Cmd
    - '&ConnectionInfo'
    - '&mut Option<AsyncConnection>'
    constantsTouched: []
    func_position:
      end: 655
      start: 634
    functionDepth: 19
    functionLinenumber: 634
    functionLinenumberEnd: 655
    functionName: async_try_single_sentinel
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Cmd::query_async
    - Err
    - is_io_error
    - '&mut Option<AsyncConnection>::is_none'
    - '&mut Option<AsyncConnection>::as_mut'
    - unwrap
    - async_reconnect
    - is_unrecoverable_error
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_try_single_sentinel<T: FromRedisValue>(cmd: Cmd,connection_info:
      &ConnectionInfo,cached_connection: &mut Option<AsyncConnection>,) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:661,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:661,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:662,1
    - Dst: bool::replace
      Src: /src/redis-rs/redis/src/sentinel.rs:663,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:664,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:664,1
    - Dst: bool::as_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:664,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:664,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:667,1
    - Dst: not_a_sentinel_error
      Src: /src/redis-rs/redis/src/sentinel.rs:667,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:669,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 2
    argNames:
    - connection
    - connection_info
    argTypes:
    - '&mut Option<Connection>'
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 670
      start: 657
    functionDepth: 20
    functionLinenumber: 657
    functionLinenumberEnd: 670
    functionName: reconnect
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - redis::Cmd::query
    - Err
    - bool::replace
    - Client::open
    - not_a_sentinel_error
    - redis::ConnectionInfo::clone
    - unwrap
    - Ok
    - crate::cmd
    - get_connection
    - bool::as_mut
    linkageType: ''
    returnType: RedisResult
    signature: 'fn reconnect(connection: &mut Option<Connection>,connection_info:
      &ConnectionInfo,) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Option<Connection>::is_none'
      Src: /src/redis-rs/redis/src/sentinel.rs:677,1
    - Dst: reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:678,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:681,1
    - Dst: '&mut Option<Connection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:681,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:681,1
    - Dst: is_unrecoverable_error
      Src: /src/redis-rs/redis/src/sentinel.rs:684,1
    - Dst: is_io_error
      Src: /src/redis-rs/redis/src/sentinel.rs:684,1
    - Dst: reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:685,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:686,1
    - Dst: '&mut Option<Connection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:686,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:686,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:688,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - cmd
    - connection_info
    - cached_connection
    argTypes:
    - Cmd
    - '&ConnectionInfo'
    - '&mut Option<Connection>'
    constantsTouched: []
    func_position:
      end: 693
      start: 672
    functionDepth: 21
    functionLinenumber: 672
    functionLinenumberEnd: 693
    functionName: try_single_sentinel
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - reconnect
    - Err
    - Cmd::query
    - is_io_error
    - '&mut Option<Connection>::is_none'
    - unwrap
    - is_unrecoverable_error
    - '&mut Option<Connection>::as_mut'
    linkageType: ''
    returnType: RedisResult
    signature: 'fn try_single_sentinel<T: FromRedisValue>(cmd: Cmd,connection_info:
      &ConnectionInfo,cached_connection: &mut Option<Connection>,) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - Vec<T>
    constantsTouched: []
    func_position:
      end: 713
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 713
    functionName: Sentinel::build
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 3
    functionsReached:
    - Self::build_inner
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn build<T: IntoConnectionInfo>(params: Vec<T>) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<T>::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:719,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:720,1
    - Dst: Vec<T>::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:726,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/sentinel.rs:726,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:728,1
    - Dst: "into_iter()\n            .map(|p| p.into_connection_info())\n        \
        \    .collect::<RedisResult<Vec<ConnectionInfo>>>"
      Src: /src/redis-rs/redis/src/sentinel.rs:726,1
    - Dst: '&Vec::iter'
      Src: /src/redis-rs/redis/src/sentinel.rs:731,1
    - Dst: any
      Src: /src/redis-rs/redis/src/sentinel.rs:731,1
    - Dst: redis::ConnectionInfo::redis_settings
      Src: /src/redis-rs/redis/src/sentinel.rs:733,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:741,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:741,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:746,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:746,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:748,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:752,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:752,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:752,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:760,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:760,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:762,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:766,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:766,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:766,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:772,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:775,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:775,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:775,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:782,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:785,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:785,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:785,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 69
    argCount: 2
    argNames:
    - params
    - certs
    argTypes:
    - Vec<T>
    - Option<TlsCertificates>
    constantsTouched: []
    func_position:
      end: 788
      start: 715
    functionDepth: 12
    functionLinenumber: 715
    functionLinenumberEnd: 788
    functionName: Sentinel::build_inner
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - '&Vec::len'
    - Vec<T>::is_empty
    - resize_with
    - into_connection_info
    - random_replica_index
    - Vec<T>::into_iter
    - "into_iter()\n            .map(|p| p.into_connection_info())\n            .collect::<RedisResult<Vec<ConnectionInfo>>>"
    - NonZeroUsize::new
    - std::iter::Chain::map
    - Ok
    - any
    - '&Vec::iter'
    - fail
    - redis::ConnectionInfo::redis_settings
    linkageType: ''
    returnType: RedisResult
    signature: 'fn build_inner<T: IntoConnectionInfo>(params: Vec<T>,#[cfg(feature
      = "tls-rustls")] certs: Option<TlsCertificates>,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/sentinel.rs:802,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/sentinel.rs:802,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:805,1
    - Dst: try_single_sentinel
      Src: /src/redis-rs/redis/src/sentinel.rs:807,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:807,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:809,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:812,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:818,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:818,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - Cmd
    constantsTouched: []
    func_position:
      end: 819
      start: 800
    functionDepth: 25
    functionLinenumber: 800
    functionLinenumberEnd: 819
    functionName: Sentinel::try_all_sentinels
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - zip
    - Cmd::clone
    - Err
    - iter_mut
    - None::expect
    - Ok
    - try_single_sentinel
    - iter
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'fn try_all_sentinels<T: FromRedisValue>(&mut self, cmd: Cmd) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::try_all_sentinels
      Src: /src/redis-rs/redis/src/sentinel.rs:824,1
    - Dst: sentinel_masters_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:824,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 825
      start: 823
    functionDepth: 26
    functionLinenumber: 823
    functionLinenumberEnd: 825
    functionName: Sentinel::get_sentinel_masters
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_masters_cmd
    - Sentinel::try_all_sentinels
    linkageType: ''
    returnType: RedisResult
    signature: fn get_sentinel_masters(&mut self) -> RedisResult<Vec<HashMap<String,
      String>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::try_all_sentinels
      Src: /src/redis-rs/redis/src/sentinel.rs:831,1
    - Dst: sentinel_replicas_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 832
      start: 827
    functionDepth: 26
    functionLinenumber: 827
    functionLinenumberEnd: 832
    functionName: Sentinel::get_sentinel_replicas
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_replicas_cmd
    - Sentinel::try_all_sentinels
    linkageType: ''
    returnType: RedisResult
    signature: 'fn get_sentinel_replicas(&mut self,service_name: &str,) -> RedisResult<Vec<HashMap<String,
      String>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::get_sentinel_masters
      Src: /src/redis-rs/redis/src/sentinel.rs:850,1
    - Dst: find_valid_master
      Src: /src/redis-rs/redis/src/sentinel.rs:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 852
      start: 845
    functionDepth: 27
    functionLinenumber: 845
    functionLinenumberEnd: 852
    functionName: Sentinel::find_master_address
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Sentinel::get_sentinel_masters
    - find_valid_master
    linkageType: ''
    returnType: RedisResult
    signature: 'fn find_master_address(&mut self,service_name: &str,node_connection_info:
      &SentinelNodeConnectionInfo,) -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::get_sentinel_replicas
      Src: /src/redis-rs/redis/src/sentinel.rs:870,1
    - Dst: get_valid_replicas_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 872
      start: 865
    functionDepth: 27
    functionLinenumber: 865
    functionLinenumberEnd: 872
    functionName: Sentinel::find_valid_replica_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_valid_replicas_addresses
    - Sentinel::get_sentinel_replicas
    linkageType: ''
    returnType: RedisResult
    signature: 'fn find_valid_replica_addresses(&mut self,service_name: &str,node_connection_info:
      &SentinelNodeConnectionInfo,) -> RedisResult<Vec<ConnectionInfo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::find_master_address
      Src: /src/redis-rs/redis/src/sentinel.rs:884,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:884,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:885,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 886
      start: 878
    functionDepth: 28
    functionLinenumber: 878
    functionLinenumberEnd: 886
    functionName: Sentinel::master_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Client::open
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::find_master_address
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn master_for(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::find_valid_replica_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:897,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:898,1
    - Dst: build_replica_clients
      Src: /src/redis-rs/redis/src/sentinel.rs:899,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 900
      start: 892
    functionDepth: 28
    functionLinenumber: 892
    functionLinenumberEnd: 900
    functionName: Sentinel::get_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Sentinel::find_valid_replica_addresses
    - SentinelNodeConnectionInfo::unwrap_or_default
    - build_replica_clients
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn get_replica_clients(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Vec<Client>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::find_valid_replica_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:908,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:909,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:910,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:910,1
    - Dst: Self::map
      Src: /src/redis-rs/redis/src/sentinel.rs:910,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 912
      start: 903
    functionDepth: 28
    functionLinenumber: 903
    functionLinenumberEnd: 912
    functionName: Sentinel::replica_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - try_connect_to_first_replica
    - RedisResult::len
    - Sentinel::find_valid_replica_addresses
    - Self::map
    - NonZeroUsize::new
    - SentinelNodeConnectionInfo::unwrap_or_default
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn replica_for(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::find_valid_replica_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:923,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:924,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:925,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:926,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:928,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 929
      start: 918
    functionDepth: 28
    functionLinenumber: 918
    functionLinenumberEnd: 929
    functionName: Sentinel::replica_rotate_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - try_connect_to_first_replica
    - RedisResult::len
    - Sentinel::find_valid_replica_addresses
    - RedisResult::is_empty
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn replica_rotate_for(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/sentinel.rs:938,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/sentinel.rs:938,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:941,1
    - Dst: async_try_single_sentinel
      Src: /src/redis-rs/redis/src/sentinel.rs:943,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:943,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:945,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:948,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:954,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:954,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - Cmd
    constantsTouched: []
    func_position:
      end: 955
      start: 936
    functionDepth: 23
    functionLinenumber: 936
    functionLinenumberEnd: 955
    functionName: Sentinel::async_try_all_sentinels
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - zip
    - async_try_single_sentinel
    - Cmd::clone
    - Err
    - iter_mut
    - None::expect
    - Ok
    - iter
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_try_all_sentinels<T: FromRedisValue>(&mut self, cmd:
      Cmd) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_try_all_sentinels
      Src: /src/redis-rs/redis/src/sentinel.rs:958,1
    - Dst: sentinel_masters_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 959
      start: 957
    functionDepth: 24
    functionLinenumber: 957
    functionLinenumberEnd: 959
    functionName: Sentinel::async_get_sentinel_masters
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_masters_cmd
    - Sentinel::async_try_all_sentinels
    linkageType: ''
    returnType: RedisResult
    signature: async fn async_get_sentinel_masters(&mut self) -> RedisResult<Vec<HashMap<String,
      String>>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_try_all_sentinels
      Src: /src/redis-rs/redis/src/sentinel.rs:965,1
    - Dst: sentinel_replicas_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:965,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 967
      start: 961
    functionDepth: 24
    functionLinenumber: 961
    functionLinenumberEnd: 967
    functionName: Sentinel::async_get_sentinel_replicas
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - sentinel_replicas_cmd
    - Sentinel::async_try_all_sentinels
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_get_sentinel_replicas(&mut self,service_name: &str,)
      -> RedisResult<Vec<HashMap<String, String>>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_get_sentinel_masters
      Src: /src/redis-rs/redis/src/sentinel.rs:985,1
    - Dst: async_find_valid_master
      Src: /src/redis-rs/redis/src/sentinel.rs:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 987
      start: 980
    functionDepth: 25
    functionLinenumber: 980
    functionLinenumberEnd: 987
    functionName: Sentinel::async_find_master_address
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_find_valid_master
    - Sentinel::async_get_sentinel_masters
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_find_master_address(&mut self,service_name: &str,node_connection_info:
      &SentinelNodeConnectionInfo,) -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_get_sentinel_replicas
      Src: /src/redis-rs/redis/src/sentinel.rs:1005,1
    - Dst: async_get_valid_replicas_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:1006,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 1007
      start: 1000
    functionDepth: 25
    functionLinenumber: 1000
    functionLinenumberEnd: 1007
    functionName: Sentinel::async_find_valid_replica_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Sentinel::async_get_sentinel_replicas
    - async_get_valid_replicas_addresses
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn async_find_valid_replica_addresses(&mut self,service_name:
      &str,node_connection_info: &SentinelNodeConnectionInfo,) -> RedisResult<Vec<ConnectionInfo>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_find_master_address
      Src: /src/redis-rs/redis/src/sentinel.rs:1018,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1019,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1021,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1022
      start: 1013
    functionDepth: 26
    functionLinenumber: 1013
    functionLinenumberEnd: 1022
    functionName: Sentinel::async_master_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Sentinel::async_find_master_address
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Client::open
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn async_master_for(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_find_valid_replica_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:1033,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1036,1
    - Dst: build_replica_clients
      Src: /src/redis-rs/redis/src/sentinel.rs:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1040
      start: 1028
    functionDepth: 26
    functionLinenumber: 1028
    functionLinenumberEnd: 1040
    functionName: Sentinel::async_get_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - build_replica_clients
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::async_find_valid_replica_addresses
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn async_get_replica_clients(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Vec<Client>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_find_valid_replica_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:1049,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1052,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1055,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:1055,1
    - Dst: Self::map
      Src: /src/redis-rs/redis/src/sentinel.rs:1055,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:1056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1057
      start: 1044
    functionDepth: 26
    functionLinenumber: 1044
    functionLinenumberEnd: 1057
    functionName: Sentinel::async_replica_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - try_connect_to_first_replica
    - RedisResult::len
    - Self::map
    - NonZeroUsize::new
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::async_find_valid_replica_addresses
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn async_replica_for(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sentinel::async_find_valid_replica_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:1068,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1071,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:1074,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:1075,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:1077,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1077,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1078
      start: 1063
    functionDepth: 26
    functionLinenumber: 1063
    functionLinenumberEnd: 1078
    functionName: Sentinel::async_replica_rotate_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - try_connect_to_first_replica
    - RedisResult::len
    - RedisResult::is_empty
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::async_find_valid_replica_addresses
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn async_replica_rotate_for(&mut self,service_name: &str,node_connection_info:
      Option<&SentinelNodeConnectionInfo>,) -> RedisResult<Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/redis-rs/redis/src/sentinel.rs:1101,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - client
    argTypes:
    - SentinelClient
    constantsTouched: []
    func_position:
      end: 1102
      start: 1100
    functionDepth: 11
    functionLinenumber: 1100
    functionLinenumberEnd: 1102
    functionName: LockedSentinelClient::new
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - Mutex::new
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(client: SentinelClient) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis/src/sentinel.rs:1107,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:1107,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:1107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1108
      start: 1106
    functionDepth: 2
    functionLinenumber: 1106
    functionLinenumberEnd: 1108
    functionName: LockedSentinelClient::get_connection
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - lock
    - unwrap
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_connection(&self) -> RedisResult<Connection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/redis-rs/redis/src/sentinel.rs:1125,1
    - Dst: TokioMutex::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - client
    argTypes:
    - SentinelClient
    constantsTouched: []
    func_position:
      end: 1126
      start: 1124
    functionDepth: 11
    functionLinenumber: 1124
    functionLinenumberEnd: 1126
    functionName: AsyncLockedSentinelClient::new
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Self
    - TokioMutex::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(client: SentinelClient) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis/src/sentinel.rs:1131,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:1131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1132
    functionName: AsyncLockedSentinelClient::get_async_connection
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_async_connection
    - lock
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_async_connection(&self) -> RedisResult<MultiplexedConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - params
    - service_name
    - node_connection_info
    - server_type
    argTypes:
    - Vec<T>
    - impl AsRef<str>
    - Option<SentinelNodeConnectionInfo>
    - SentinelServerType
    constantsTouched: []
    func_position:
      end: 1183
      start: 1170
    functionDepth: 17
    functionLinenumber: 1170
    functionLinenumberEnd: 1183
    functionName: SentinelClient::build
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 13
    functionsReached:
    - Self::build_inner
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn build<T: IntoConnectionInfo>(params: Vec<T>,service_name: impl
      AsRef<str>,node_connection_info: Option<SentinelNodeConnectionInfo>,server_type:
      SentinelServerType,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1192,1
    - Dst: Sentinel::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1194,1
    - Dst: Sentinel::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1196,1
    - Dst: impl AsRef<str>::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1197,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1197,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - params
    - service_name
    - node_connection_info
    - server_type
    - certs
    argTypes:
    - Vec<T>
    - impl AsRef<str>
    - Option<SentinelNodeConnectionInfo>
    - SentinelServerType
    - Option<TlsCertificates>
    constantsTouched: []
    func_position:
      end: 1201
      start: 1185
    functionDepth: 17
    functionLinenumber: 1185
    functionLinenumberEnd: 1201
    functionName: SentinelClient::build_inner
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - into
    - impl AsRef<str>::as_ref
    - Ok
    - Sentinel::build_inner
    - SentinelNodeConnectionInfo::unwrap_or_default
    linkageType: ''
    returnType: RedisResult
    signature: 'fn build_inner<T: IntoConnectionInfo>(params: Vec<T>,service_name:
      impl AsRef<str>,node_connection_info: Option<SentinelNodeConnectionInfo>,server_type:
      SentinelServerType,#[cfg(feature = "tls-rustls")] certs: Option<TlsCertificates>,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: master_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1206,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1208,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1208,1
    - Dst: replica_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1209,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1211,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1204
    functionDepth: 29
    functionLinenumber: 1204
    functionLinenumberEnd: 1213
    functionName: SentinelClient::get_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - as_str
    - Some
    - replica_for
    - master_for
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_client(&mut self) -> RedisResult<Client>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1232,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1232,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1238,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1238,1
    - Dst: try_single_sentinel::<Role>
      Src: /src/redis-rs/redis/src/sentinel.rs:1239,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:1240,1
    - Dst: first_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:1242,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:1242,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1248,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1262
      start: 1231
    functionDepth: 2
    functionLinenumber: 1231
    functionLinenumberEnd: 1262
    functionName: SentinelClient::get_sentinel_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Err
    - unwrap_or
    - RedisError::from
    - Client::open
    - first_mut
    - redis::ConnectionInfo::clone
    - try_single_sentinel::<Role>
    - Ok
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_sentinel_client(&mut self) -> RedisResult<Client>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::get_client
      Src: /src/redis-rs/redis/src/sentinel.rs:1268,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:1269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1267
    functionDepth: 30
    functionLinenumber: 1267
    functionLinenumberEnd: 1270
    functionName: SentinelClient::get_connection
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - SentinelClient::get_client
    - get_connection
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_connection(&mut self) -> RedisResult<Connection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: async_master_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1282,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1283,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1283,1
    - Dst: async_replica_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1287,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1288,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1279
    functionDepth: 27
    functionLinenumber: 1279
    functionLinenumberEnd: 1292
    functionName: SentinelClient::async_get_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - as_str
    - async_master_for
    - async_replica_for
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn async_get_client(&mut self) -> RedisResult<Client>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1311,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1311,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1317,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1317,1
    - Dst: async_try_single_sentinel::<Role>
      Src: /src/redis-rs/redis/src/sentinel.rs:1318,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:1319,1
    - Dst: first_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:1321,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:1321,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1329,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1336,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1343
      start: 1310
    functionDepth: 2
    functionLinenumber: 1310
    functionLinenumberEnd: 1343
    functionName: SentinelClient::async_get_sentinel_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_try_single_sentinel::<Role>
    - Err
    - unwrap_or
    - RedisError::from
    - Client::open
    - first_mut
    - redis::ConnectionInfo::clone
    - Ok
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn async_get_sentinel_client(&mut self) -> RedisResult<Client>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::get_async_connection_with_config
      Src: /src/redis-rs/redis/src/sentinel.rs:1349,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1348
    functionDepth: 13
    functionLinenumber: 1348
    functionLinenumberEnd: 1351
    functionName: SentinelClient::get_async_connection
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - SentinelClient::get_async_connection_with_config
    - AsyncConnectionConfig::new
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_async_connection(&mut self) -> RedisResult<AsyncConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::async_get_client
      Src: /src/redis-rs/redis/src/sentinel.rs:1360,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/sentinel.rs:1360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 1364
      start: 1356
    functionDepth: 28
    functionLinenumber: 1356
    functionLinenumberEnd: 1364
    functionName: SentinelClient::get_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - SentinelClient::async_get_client
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn get_async_connection_with_config(&mut self,config: &AsyncConnectionConfig,)
      -> RedisResult<AsyncConnection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1400,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:1401,1
    - Dst: into_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/sentinel.rs:1401,1
    - Dst: impl AsRef<str>::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1402,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1402,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1410,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 3
    argNames:
    - sentinels
    - service_name
    - server_type
    argTypes:
    - T
    - impl AsRef<str>
    - SentinelServerType
    constantsTouched: []
    func_position:
      end: 1425
      start: 1395
    functionDepth: 1
    functionLinenumber: 1395
    functionLinenumberEnd: 1425
    functionName: SentinelClientBuilder::new
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - TcpSettings::default
    - into
    - impl AsRef<str>::as_ref
    - into_iter().collect::<Vec<_>>
    - Ok
    - RedisResult::into_iter
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new<T: IntoIterator<Item = ConnectionAddr>>(sentinels: T,service_name:
      impl AsRef<str>,server_type: SentinelServerType,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1429,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1436,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1440,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1449,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1450,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1456,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1457,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1457,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1463,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1464,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1464,1
    - Dst: tls::retrieve_tls_certificates
      Src: /src/redis-rs/redis/src/sentinel.rs:1491,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1492,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1496,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1497,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1497,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1503,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1504,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1504,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1513,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1519,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1520,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/sentinel.rs:1520,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1523,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1524,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/sentinel.rs:1524,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:1531,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:1531,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1536,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1537,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:1531,1
    - Dst: SentinelClient::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1541,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1544,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 171
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1549
      start: 1428
    functionDepth: 18
    functionLinenumber: 1428
    functionLinenumberEnd: 1549
    functionName: SentinelClientBuilder::build
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Self::clone
    - Err
    - map
    - RedisError::from
    - clone
    - collect
    - into_iter
    - SentinelClient::build_inner
    - tls::retrieve_tls_certificates
    - as_ref
    - RedisConnectionInfo::default
    - is_some
    - '&''static str::clone'
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: pub fn build(mut self) -> RedisResult<SentinelClient>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1553,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 1555
      start: 1552
    functionDepth: 0
    functionLinenumber: 1552
    functionLinenumberEnd: 1555
    functionName: SentinelClientBuilder::set_client_to_redis_tls_mode
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_redis_tls_mode(mut self, tls_mode: TlsMode) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - i64
    constantsTouched: []
    func_position:
      end: 1561
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1561
    functionName: SentinelClientBuilder::set_client_to_redis_db
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_redis_db(mut self, db: i64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1565,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1565,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1567
      start: 1564
    functionDepth: 0
    functionLinenumber: 1564
    functionLinenumberEnd: 1567
    functionName: SentinelClientBuilder::set_client_to_redis_username
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_redis_username(mut self, username: impl AsRef<str>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1571,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1571,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1573
      start: 1570
    functionDepth: 0
    functionLinenumber: 1570
    functionLinenumberEnd: 1573
    functionName: SentinelClientBuilder::set_client_to_redis_password
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_redis_password(mut self, password: impl AsRef<str>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 1579
      start: 1576
    functionDepth: 0
    functionLinenumber: 1576
    functionLinenumberEnd: 1579
    functionName: SentinelClientBuilder::set_client_to_redis_protocol
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_redis_protocol(mut self, protocol: ProtocolVersion)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 1586
      start: 1583
    functionDepth: 0
    functionLinenumber: 1583
    functionLinenumberEnd: 1586
    functionName: SentinelClientBuilder::set_client_to_redis_certificates
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_redis_certificates(mut self, certificates: TlsCertificates)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tcp_settings
    argTypes:
    - TcpSettings
    constantsTouched: []
    func_position:
      end: 1592
      start: 1589
    functionDepth: 0
    functionLinenumber: 1589
    functionLinenumberEnd: 1592
    functionName: SentinelClientBuilder::set_client_to_redis_tcp_settings
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_redis_tcp_settings(mut self, tcp_settings: TcpSettings)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 1598
      start: 1595
    functionDepth: 0
    functionLinenumber: 1595
    functionLinenumberEnd: 1598
    functionName: SentinelClientBuilder::set_client_to_sentinel_tls_mode
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_sentinel_tls_mode(mut self, tls_mode: TlsMode)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1602,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1602,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1604
      start: 1601
    functionDepth: 0
    functionLinenumber: 1601
    functionLinenumberEnd: 1604
    functionName: SentinelClientBuilder::set_client_to_sentinel_username
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_sentinel_username(mut self, username: impl AsRef<str>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1608,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1608,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1610
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1610
    functionName: SentinelClientBuilder::set_client_to_sentinel_password
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_sentinel_password(mut self, password: impl AsRef<str>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tcp_settings
    argTypes:
    - TcpSettings
    constantsTouched: []
    func_position:
      end: 1616
      start: 1613
    functionDepth: 0
    functionLinenumber: 1613
    functionLinenumberEnd: 1616
    functionName: SentinelClientBuilder::set_client_to_sentinel_tcp_settings
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_sentinel_tcp_settings(mut self, tcp_settings:
      TcpSettings) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 1622
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1622
    functionName: SentinelClientBuilder::set_client_to_sentinel_protocol
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_sentinel_protocol(mut self, protocol: ProtocolVersion)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 1629
      start: 1626
    functionDepth: 0
    functionLinenumber: 1626
    functionLinenumberEnd: 1629
    functionName: SentinelClientBuilder::set_client_to_sentinel_certificates
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_client_to_sentinel_certificates(mut self, certificates:
      TlsCertificates) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/lib.rs:2,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/lib.rs:3,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/lib.rs:3,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 863
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 863
    functionName: check_resp3
    functionSourceFile: /src/redis-rs/redis/src/lib.rs
    functionUses: 0
    functionsReached:
    - Err
    - supports_resp3
    - RedisError::from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: t::e::s::t::s::::::::t::e::s::t::_::i::s::_::s::e::n::d::assert_send
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'const fn assert_send<T: Send>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert_send::<MultiplexedConnection>
      Src: /src/redis-rs/redis/src/aio/connection.rs:188,1
    - Dst: assert_send::<PubSub>
      Src: /src/redis-rs/redis/src/aio/connection.rs:189,1
    - Dst: assert_send::<Monitor>
      Src: /src/redis-rs/redis/src/aio/connection.rs:190,1
    - Dst: assert_send::<ConnectionManager>
      Src: /src/redis-rs/redis/src/aio/connection.rs:192,1
    - Dst: assert_send::<cluster_async::ClusterConnection>
      Src: /src/redis-rs/redis/src/aio/connection.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: tests::test_is_send
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached:
    - assert_send::<Monitor>
    - assert_send::<PubSub>
    - assert_send::<cluster_async::ClusterConnection>
    - assert_send::<ConnectionManager>
    - assert_send::<MultiplexedConnection>
    linkageType: ''
    returnType: void
    signature: fn test_is_send()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ratio
    argTypes:
    - f64
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: TokenRefreshConfig::set_expiration_refresh_ratio
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_expiration_refresh_ratio(mut self, ratio: f64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - retry_config
    argTypes:
    - RetryConfig
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: TokenRefreshConfig::set_retry_config
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_retry_config(mut self, retry_config: RetryConfig) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/auth_management.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: TokenRefreshConfig::default
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - RetryConfig::default
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/auth_management.rs:57,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/auth_management.rs:58,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/auth_management.rs:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: RetryConfig::default
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 10
    functionsReached:
    - Duration::from_secs
    - Some
    - Duration::from_millis
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - number_of_retries
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: RetryConfig::set_number_of_retries
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_number_of_retries(mut self, number_of_retries: usize) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - min_delay
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: RetryConfig::set_min_delay
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_min_delay(mut self, min_delay: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/auth_management.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - max_delay
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: RetryConfig::set_max_delay
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_max_delay(mut self, max_delay: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exponent_base
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: RetryConfig::set_exponent_base
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_exponent_base(mut self, exponent_base: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemTime::duration_since
      Src: /src/redis-rs/redis/src/auth_management.rs:101,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/auth_management.rs:102,1
    - Dst: Duration::from_secs_f64
      Src: /src/redis-rs/redis/src/auth_management.rs:102,1
    - Dst: as_secs_f64
      Src: /src/redis-rs/redis/src/auth_management.rs:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - received_at
    - expires_at
    - refresh_ratio
    argTypes:
    - SystemTime
    - SystemTime
    - f64
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: credentials_management_utils::calculate_refresh_threshold
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - as_secs_f64
    - Some
    - Duration::from_secs_f64
    - SystemTime::duration_since
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn calculate_refresh_threshold(received_at: SystemTime,expires_at:
      SystemTime,refresh_ratio: f64,) -> Option<Duration>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::split
      Src: /src/redis-rs/redis/src/auth_management.rs:115,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/auth_management.rs:115,1
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/auth_management.rs:116,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/auth_management.rs:117,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/auth_management.rs:117,1
    - Dst: decode
      Src: /src/redis-rs/redis/src/auth_management.rs:120,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/auth_management.rs:120,1
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/auth_management.rs:123,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/auth_management.rs:123,1
    - Dst: find
      Src: /src/redis-rs/redis/src/auth_management.rs:126,1
    - Dst: find
      Src: /src/redis-rs/redis/src/auth_management.rs:127,1
    - Dst: trim_start
      Src: /src/redis-rs/redis/src/auth_management.rs:129,1
    - Dst: strip_prefix
      Src: /src/redis-rs/redis/src/auth_management.rs:131,1
    - Dst: find
      Src: /src/redis-rs/redis/src/auth_management.rs:132,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/auth_management.rs:134,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/auth_management.rs:134,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/auth_management.rs:138,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/auth_management.rs:138,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 1
    argNames:
    - jwt
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 139
      start: 112
    functionDepth: 19
    functionLinenumber: 112
    functionLinenumberEnd: 139
    functionName: credentials_management_utils::extract_oid_from_jwt
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 1
    functionsReached:
    - to_string
    - String::from_utf8
    - map_err
    - Err
    - '&str::to_string'
    - Self::len
    - Result::split
    - find
    - Ok
    - strip_prefix
    - decode
    - trim_start
    - collect
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) fn extract_oid_from_jwt(jwt: &str) -> Result<String, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TokenRefreshConfig::default
      Src: /src/redis-rs/redis/src/auth_management.rs:164,1
    - Dst: TokenRefreshConfig::default
      Src: /src/redis-rs/redis/src/auth_management.rs:167,1
    - Dst: Self::set_expiration_refresh_ratio
      Src: /src/redis-rs/redis/src/auth_management.rs:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: auth_management_tests::test_token_refresh_config
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - TokenRefreshConfig::default
    - Self::set_expiration_refresh_ratio
    linkageType: ''
    returnType: void
    signature: fn test_token_refresh_config()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TokenRefreshConfig::default
      Src: /src/redis-rs/redis/src/auth_management.rs:174,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/src/auth_management.rs:176,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/auth_management.rs:177,1
    - Dst: credentials_management_utils::calculate_refresh_threshold
      Src: /src/redis-rs/redis/src/auth_management.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: auth_management_tests::test_refresh_threshold_calculation
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - Duration::from_secs
    - TokenRefreshConfig::default
    - SystemTime::now
    - credentials_management_utils::calculate_refresh_threshold
    linkageType: ''
    returnType: void
    signature: fn test_refresh_threshold_calculation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: credentials_management_utils::extract_oid_from_jwt
      Src: /src/redis-rs/redis/src/auth_management.rs:191,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/auth_management.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 20
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: auth_management_tests::test_extract_oid_from_jwt
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - as_str
    - credentials_management_utils::extract_oid_from_jwt
    linkageType: ''
    returnType: void
    signature: fn test_extract_oid_from_jwt()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: credentials_management_utils::extract_oid_from_jwt
      Src: /src/redis-rs/redis/src/auth_management.rs:199,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/auth_management.rs:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 198
    functionDepth: 20
    functionLinenumber: 198
    functionLinenumberEnd: 202
    functionName: auth_management_tests::test_extract_oid_from_jwt_with_invalid_token
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - as_str
    - credentials_management_utils::extract_oid_from_jwt
    linkageType: ''
    returnType: void
    signature: fn test_extract_oid_from_jwt_with_invalid_token()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: credentials_management_utils::extract_oid_from_jwt
      Src: /src/redis-rs/redis/src/auth_management.rs:207,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/auth_management.rs:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 20
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: auth_management_tests::test_extract_oid_from_jwt_with_no_oid_claim
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 0
    functionsReached:
    - as_str
    - credentials_management_utils::extract_oid_from_jwt
    linkageType: ''
    returnType: void
    signature: fn test_extract_oid_from_jwt_with_no_oid_claim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TcpStream::connect
      Src: /src/redis-rs/redis/src/aio/smol.rs:35,1
    - Dst: into
      Src: /src/redis-rs/redis/src/aio/smol.rs:36,1
    - Dst: Arc::into_inner
      Src: /src/redis-rs/redis/src/aio/smol.rs:37,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/smol.rs:37,1
    - Dst: into_inner
      Src: /src/redis-rs/redis/src/aio/smol.rs:38,1
    - Dst: crate::io::tcp::stream_with_settings
      Src: /src/redis-rs/redis/src/aio/smol.rs:39,1
    - Dst: try_into
      Src: /src/redis-rs/redis/src/aio/smol.rs:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - addr
    - tcp_settings
    argTypes:
    - '&SocketAddr'
    - '&crate::io::tcp::TcpSettings'
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 16
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - into
    - into_inner
    - unwrap
    - Arc::into_inner
    - TcpStream::connect
    - try_into
    - crate::io::tcp::stream_with_settings
    linkageType: ''
    returnType: io::Result
    signature: 'async fn connect_tcp(addr: &SocketAddr,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> io::Result<TcpStream>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TcpStream::connect_timeout
      Src: /src/redis-rs/redis/src/connection.rs:77,1
    - Dst: io::tcp::stream_with_settings
      Src: /src/redis-rs/redis/src/connection.rs:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - addr
    - timeout
    - tcp_settings
    argTypes:
    - '&SocketAddr'
    - Duration
    - '&TcpSettings'
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: connect_tcp_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - io::tcp::stream_with_settings
    - TcpStream::connect_timeout
    linkageType: ''
    returnType: io::Result
    signature: 'fn connect_tcp_timeout(addr: &SocketAddr,timeout: Duration,tcp_settings:
      &TcpSettings,) -> io::Result<TcpStream>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: url::Url::parse
      Src: /src/redis-rs/redis/src/connection.rs:86,1
    - Dst: scheme
      Src: /src/redis-rs/redis/src/connection.rs:87,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 95
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: parse_redis_url
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - url::Url::parse
    - scheme
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn parse_redis_url(input: &str) -> Option<url::Url>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 163
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 163
    functionName: ConnectionAddr::eq
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &Self) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: ConnectionAddr::is_supported
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_supported(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - insecure
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 212
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 212
    functionName: ConnectionAddr::set_danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_danger_accept_invalid_hostnames(&mut self, insecure: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:219,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: ConnectionAddr::tls_mode
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub(crate) fn tls_mode(&self) -> Option<TlsMode>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 238
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 238
    functionName: ConnectionAddr::fmt
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: ConnectionInfo::addr
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: '&ConnectionAddr'
    signature: pub fn addr(&self) -> &ConnectionAddr
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: ConnectionInfo::tcp_settings
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&TcpSettings'
    signature: pub fn tcp_settings(&self) -> &TcpSettings
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 267
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 267
    functionName: ConnectionInfo::redis_settings
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: '&RedisConnectionInfo'
    signature: pub fn redis_settings(&self) -> &RedisConnectionInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ConnectionAddr
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: ConnectionInfo::set_addr
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_addr(mut self, addr: ConnectionAddr) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tcp_settings
    argTypes:
    - TcpSettings
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: ConnectionInfo::set_tcp_settings
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_tcp_settings(mut self, tcp_settings: TcpSettings) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - redis
    argTypes:
    - RedisConnectionInfo
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: ConnectionInfo::set_redis_settings
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_redis_settings(mut self, redis: RedisConnectionInfo) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/connection.rs:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: RedisConnectionInfo::username
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - as_deref
    linkageType: ''
    returnType: Option
    signature: pub fn username(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/connection.rs:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 316
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 316
    functionName: RedisConnectionInfo::password
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - as_deref
    linkageType: ''
    returnType: Option
    signature: pub fn password(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: RedisConnectionInfo::protocol
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ProtocolVersion
    signature: pub fn protocol(&self) -> ProtocolVersion
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 326
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 326
    functionName: RedisConnectionInfo::skip_set_lib_name
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn skip_set_lib_name(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/connection.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: RedisConnectionInfo::lib_name
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - as_deref
    linkageType: ''
    returnType: Option
    signature: pub fn lib_name(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/connection.rs:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: RedisConnectionInfo::lib_ver
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - as_deref
    linkageType: ''
    returnType: Option
    signature: pub fn lib_ver(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 341
    functionName: RedisConnectionInfo::db
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: pub fn db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:345,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/connection.rs:345,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 347
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 347
    functionName: RedisConnectionInfo::set_username
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_username(mut self, username: impl AsRef<str>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:351,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/connection.rs:351,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 353
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 353
    functionName: RedisConnectionInfo::set_password
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_password(mut self, password: impl AsRef<str>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: RedisConnectionInfo::set_protocol
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_protocol(mut self, protocol: ProtocolVersion) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 368
    functionName: RedisConnectionInfo::set_skip_set_lib_name
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn set_skip_set_lib_name(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:374,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:374,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:374,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:375,1
    - Dst: Option::as_ref
      Src: /src/redis-rs/redis/src/connection.rs:375,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - lib_name
    - lib_ver
    argTypes:
    - impl AsRef<str>
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: RedisConnectionInfo::set_lib_name
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - Some
    - into
    - Option::as_ref
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_lib_name(mut self, lib_name: impl AsRef<str>, lib_ver:
      impl AsRef<str>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - i64
    constantsTouched: []
    func_position:
      end: 384
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 384
    functionName: RedisConnectionInfo::set_db
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_db(mut self, db: i64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/connection.rs:398,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:400,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:401,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:402,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/connection.rs:402,1
    - Dst: map
      Src: /src/redis-rs/redis/src/connection.rs:402,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:403,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:404,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:405,1
    - Dst: field
      Src: /src/redis-rs/redis/src/connection.rs:406,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/connection.rs:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 409
      start: 388
    functionDepth: 10
    functionLinenumber: 388
    functionLinenumberEnd: 409
    functionName: RedisConnectionInfo::fmt
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - map
    - '&''static str::as_ref'
    - field
    - debug_struct
    - finish
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsFilePaths::into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 417
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 417
    functionName: ConnectionInfo::from_str
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::into_connection_info
    linkageType: ''
    returnType: Result
    signature: 'fn from_str(s: &str) -> Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: ConnectionInfo::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 3
    functionsReached:
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: fn into_connection_info(self) -> RedisResult<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:436,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/connection.rs:438,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/connection.rs:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 441
      start: 435
    functionDepth: 12
    functionLinenumber: 435
    functionLinenumberEnd: 441
    functionName: ConnectionAddr::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Default::default
    linkageType: ''
    returnType: RedisResult
    signature: fn into_connection_info(self) -> RedisResult<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_url
      Src: /src/redis-rs/redis/src/connection.rs:455,1
    - Dst: Self::into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:456,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 459
    functionName: '&str::into_connection_info'
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Self::into_connection_info
    - fail
    - parse_redis_url
    linkageType: ''
    returnType: RedisResult
    signature: fn into_connection_info(self) -> RedisResult<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:467,1
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:468,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:468,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/connection.rs:469,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/connection.rs:470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 472
      start: 466
    functionDepth: 12
    functionLinenumber: 466
    functionLinenumberEnd: 472
    functionName: (T, u16)::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - TcpSettings::default
    - into
    - Ok
    - ConnectionAddr::Tcp
    - RedisConnectionInfo::default
    linkageType: ''
    returnType: RedisResult
    signature: fn into_connection_info(self) -> RedisResult<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_url
      Src: /src/redis-rs/redis/src/connection.rs:486,1
    - Dst: Self::into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:487,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 490
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 490
    functionName: String::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Self::into_connection_info
    - fail
    - parse_redis_url
    linkageType: ''
    returnType: RedisResult
    signature: fn into_connection_info(self) -> RedisResult<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:494,1
    - Dst: get
      Src: /src/redis-rs/redis/src/connection.rs:494,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:501,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - query
    argTypes:
    - '&HashMap<Cow<str>, Cow<str>>'
    constantsTouched: []
    func_position:
      end: 510
      start: 493
    functionDepth: 17
    functionLinenumber: 493
    functionLinenumberEnd: 510
    functionName: parse_protocol
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - get
    - fail
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn parse_protocol(query: &HashMap<Cow<str>, Cow<str>>) -> RedisResult<ProtocolVersion>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - address
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 515
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 515
    functionName: is_wildcard_address
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub(crate) fn is_wildcard_address(address: &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::host
      Src: /src/redis-rs/redis/src/connection.rs:518,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:532,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:533,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:534,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/connection.rs:537,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:538,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:538,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:545,1
    - Dst: String::port
      Src: /src/redis-rs/redis/src/connection.rs:547,1
    - Dst: TcpListener::unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:547,1
    - Dst: String::scheme
      Src: /src/redis-rs/redis/src/connection.rs:548,1
    - Dst: String::scheme
      Src: /src/redis-rs/redis/src/connection.rs:548,1
    - Dst: String::fragment
      Src: /src/redis-rs/redis/src/connection.rs:551,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:558,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:572,1
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:577,1
    - Dst: String::query_pairs
      Src: /src/redis-rs/redis/src/connection.rs:579,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/connection.rs:579,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:580,1
    - Dst: String::path
      Src: /src/redis-rs/redis/src/connection.rs:583,1
    - Dst: trim_matches
      Src: /src/redis-rs/redis/src/connection.rs:583,1
    - Dst: parse::<i64>
      Src: /src/redis-rs/redis/src/connection.rs:585,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:585,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:586,1
    - Dst: String::username
      Src: /src/redis-rs/redis/src/connection.rs:589,1
    - Dst: '&''static str::is_empty'
      Src: /src/redis-rs/redis/src/connection.rs:589,1
    - Dst: percent_encoding::percent_decode
      Src: /src/redis-rs/redis/src/connection.rs:592,1
    - Dst: String::username
      Src: /src/redis-rs/redis/src/connection.rs:592,1
    - Dst: '&''static str::as_bytes'
      Src: /src/redis-rs/redis/src/connection.rs:592,1
    - Dst: decode_utf8
      Src: /src/redis-rs/redis/src/connection.rs:592,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:593,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:593,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:594,1
    - Dst: String::password
      Src: /src/redis-rs/redis/src/connection.rs:600,1
    - Dst: percent_encoding::percent_decode
      Src: /src/redis-rs/redis/src/connection.rs:601,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/connection.rs:601,1
    - Dst: decode_utf8
      Src: /src/redis-rs/redis/src/connection.rs:601,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:602,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:602,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:603,1
    - Dst: parse_protocol
      Src: /src/redis-rs/redis/src/connection.rs:610,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/connection.rs:615,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 94
    argCount: 1
    argNames:
    - url
    argTypes:
    - url::Url
    constantsTouched: []
    func_position:
      end: 617
      start: 517
    functionDepth: 18
    functionLinenumber: 517
    functionLinenumberEnd: 617
    functionName: url_to_tcp_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - to_string
    - Err
    - String::host
    - RedisError::from
    - String::username
    - Ok
    - ConnectionAddr::Tcp
    - String::path
    - Some
    - fail
    - trim_matches
    - parse::<i64>
    - collect
    - percent_encoding::percent_decode
    - TcpListener::unwrap_or
    - '&''static str::is_empty'
    - String::fragment
    - is_wildcard_address
    - map_err
    - decode_utf8
    - TcpSettings::default
    - String::port
    - '&''static str::as_bytes'
    - parse_protocol
    - into
    - String::scheme
    - String::query_pairs
    - String::password
    - as_bytes
    linkageType: ''
    returnType: RedisResult
    signature: 'fn url_to_tcp_connection_info(url: url::Url) -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - url::Url
    constantsTouched: []
    func_position:
      end: 651
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 651
    functionName: url_to_unix_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - fail
    linkageType: ''
    returnType: RedisResult
    signature: 'fn url_to_unix_connection_info(_: url::Url) -> RedisResult<ConnectionInfo>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: url::Url::scheme
      Src: /src/redis-rs/redis/src/connection.rs:655,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:656,1
    - Dst: url_to_unix_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:657,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:658,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 663
      start: 654
    functionDepth: 19
    functionLinenumber: 654
    functionLinenumberEnd: 663
    functionName: url::Url::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - url::Url::scheme
    - fail
    - url_to_tcp_connection_info
    - url_to_unix_connection_info
    linkageType: ''
    returnType: RedisResult
    signature: fn into_connection_info(self) -> RedisResult<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:714,1
    - Dst: rustls::client::danger::ServerCertVerified::assertion
      Src: /src/redis-rs/redis/src/connection.rs:714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - _end_entity
    - _intermediates
    - _server_name
    - _ocsp_response
    - _now
    argTypes:
    - '&rustls::pki_types::CertificateDer<''_>'
    - '&[rustls::pki_types::CertificateDer<''_>]'
    - '&rustls::pki_types::ServerName<''_>'
    - '&[u8]'
    - rustls::pki_types::UnixTime
    constantsTouched: []
    func_position:
      end: 715
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 715
    functionName: NoCertificateVerification::verify_server_cert
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - rustls::client::danger::ServerCertVerified::assertion
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn verify_server_cert(&self,_end_entity: &rustls::pki_types::CertificateDer<''_>,_intermediates:
      &[rustls::pki_types::CertificateDer<''_>],_server_name: &rustls::pki_types::ServerName<''_>,_ocsp_response:
      &[u8],_now: rustls::pki_types::UnixTime,) -> Result<rustls::client::danger::ServerCertVerified,
      rustls::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:723,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _message
    - _cert
    - _dss
    argTypes:
    - '&[u8]'
    - '&rustls::pki_types::CertificateDer<''_>'
    - '&rustls::DigitallySignedStruct'
    constantsTouched: []
    func_position:
      end: 724
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 724
    functionName: NoCertificateVerification::verify_tls12_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Ok
    - rustls::client::danger::HandshakeSignatureValid::assertion
    linkageType: ''
    returnType: Result
    signature: 'fn verify_tls12_signature(&self,_message: &[u8],_cert: &rustls::pki_types::CertificateDer<''_>,_dss:
      &rustls::DigitallySignedStruct,) -> Result<rustls::client::danger::HandshakeSignatureValid,
      rustls::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:732,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - _message
    - _cert
    - _dss
    argTypes:
    - '&[u8]'
    - '&rustls::pki_types::CertificateDer<''_>'
    - '&rustls::DigitallySignedStruct'
    constantsTouched: []
    func_position:
      end: 733
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 733
    functionName: NoCertificateVerification::verify_tls13_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Ok
    - rustls::client::danger::HandshakeSignatureValid::assertion
    linkageType: ''
    returnType: Result
    signature: 'fn verify_tls13_signature(&self,_message: &[u8],_cert: &rustls::pki_types::CertificateDer<''_>,_dss:
      &rustls::DigitallySignedStruct,) -> Result<rustls::client::danger::HandshakeSignatureValid,
      rustls::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: supported_schemes
      Src: /src/redis-rs/redis/src/connection.rs:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 737
      start: 735
    functionDepth: 0
    functionLinenumber: 735
    functionLinenumberEnd: 737
    functionName: NoCertificateVerification::supported_verify_schemes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - supported_schemes
    linkageType: ''
    returnType: Vec
    signature: fn supported_verify_schemes(&self) -> Vec<rustls::SignatureScheme>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/connection.rs:743,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/connection.rs:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 744
      start: 742
    functionDepth: 0
    functionLinenumber: 742
    functionLinenumberEnd: 744
    functionName: NoCertificateVerification::fmt
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - finish
    - debug_struct
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - err
    argTypes:
    - '&rustls::Error'
    constantsTouched: []
    func_position:
      end: 763
      start: 755
    functionDepth: 0
    functionLinenumber: 755
    functionLinenumberEnd: 763
    functionName: is_hostname_error
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn is_hostname_error(err: &rustls::Error) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verify_server_cert
      Src: /src/redis-rs/redis/src/connection.rs:775,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:775,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:778,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:779,1
    - Dst: rustls::client::danger::ServerCertVerified::assertion
      Src: /src/redis-rs/redis/src/connection.rs:779,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:781,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - end_entity
    - intermediates
    - server_name
    - ocsp_response
    - now
    argTypes:
    - '&rustls::pki_types::CertificateDer<''_>'
    - '&[rustls::pki_types::CertificateDer<''_>]'
    - '&rustls::pki_types::ServerName<''_>'
    - '&[u8]'
    - rustls::pki_types::UnixTime
    constantsTouched: []
    func_position:
      end: 784
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 784
    functionName: AcceptInvalidHostnamesCertVerifier::verify_server_cert
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - is_hostname_error
    - Err
    - rustls::client::danger::ServerCertVerified::assertion
    - or_else
    - verify_server_cert
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn verify_server_cert(&self,end_entity: &rustls::pki_types::CertificateDer<''_>,intermediates:
      &[rustls::pki_types::CertificateDer<''_>],server_name: &rustls::pki_types::ServerName<''_>,ocsp_response:
      &[u8],now: rustls::pki_types::UnixTime,) -> Result<rustls::client::danger::ServerCertVerified,
      rustls::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verify_tls12_signature
      Src: /src/redis-rs/redis/src/connection.rs:792,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:792,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:795,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:796,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:796,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - message
    - cert
    - dss
    argTypes:
    - '&[u8]'
    - '&rustls::pki_types::CertificateDer<''_>'
    - '&rustls::DigitallySignedStruct'
    constantsTouched: []
    func_position:
      end: 801
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 801
    functionName: AcceptInvalidHostnamesCertVerifier::verify_tls12_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - is_hostname_error
    - Err
    - or_else
    - Ok
    - rustls::client::danger::HandshakeSignatureValid::assertion
    - verify_tls12_signature
    linkageType: ''
    returnType: Result
    signature: 'fn verify_tls12_signature(&self,message: &[u8],cert: &rustls::pki_types::CertificateDer<''_>,dss:
      &rustls::DigitallySignedStruct,) -> Result<rustls::client::danger::HandshakeSignatureValid,
      rustls::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: verify_tls13_signature
      Src: /src/redis-rs/redis/src/connection.rs:809,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:809,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:812,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:813,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:813,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:815,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - message
    - cert
    - dss
    argTypes:
    - '&[u8]'
    - '&rustls::pki_types::CertificateDer<''_>'
    - '&rustls::DigitallySignedStruct'
    constantsTouched: []
    func_position:
      end: 818
      start: 803
    functionDepth: 1
    functionLinenumber: 803
    functionLinenumberEnd: 818
    functionName: AcceptInvalidHostnamesCertVerifier::verify_tls13_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - is_hostname_error
    - Err
    - or_else
    - Ok
    - rustls::client::danger::HandshakeSignatureValid::assertion
    - verify_tls13_signature
    linkageType: ''
    returnType: Result
    signature: 'fn verify_tls13_signature(&self,message: &[u8],cert: &rustls::pki_types::CertificateDer<''_>,dss:
      &rustls::DigitallySignedStruct,) -> Result<rustls::client::danger::HandshakeSignatureValid,
      rustls::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: supported_verify_schemes
      Src: /src/redis-rs/redis/src/connection.rs:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 822
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 822
    functionName: AcceptInvalidHostnamesCertVerifier::supported_verify_schemes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - supported_verify_schemes
    linkageType: ''
    returnType: Vec
    signature: fn supported_verify_schemes(&self) -> Vec<rustls::SignatureScheme>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:870,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/connection.rs:872,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:873,1
    - Dst: String::as_str
      Src: /src/redis-rs/redis/src/connection.rs:878,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:880,1
    - Dst: ConnectionAddr::to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:884,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:885,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:887,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:891,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:898,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:901,1
    - Dst: Self::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:909,1
    - Dst: TlsConnector::builder
      Src: /src/redis-rs/redis/src/connection.rs:922,1
    - Dst: danger_accept_invalid_certs
      Src: /src/redis-rs/redis/src/connection.rs:922,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/src/connection.rs:922,1
    - Dst: use_sni
      Src: /src/redis-rs/redis/src/connection.rs:922,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:922,1
    - Dst: TlsConnector::builder
      Src: /src/redis-rs/redis/src/connection.rs:928,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/src/connection.rs:928,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:928,1
    - Dst: TlsConnector::new
      Src: /src/redis-rs/redis/src/connection.rs:932,1
    - Dst: String::as_str
      Src: /src/redis-rs/redis/src/connection.rs:934,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:937,1
    - Dst: connect
      Src: /src/redis-rs/redis/src/connection.rs:938,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:941,1
    - Dst: String::as_str
      Src: /src/redis-rs/redis/src/connection.rs:948,1
    - Dst: to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:948,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:949,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:951,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:955,1
    - Dst: connect
      Src: /src/redis-rs/redis/src/connection.rs:960,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/connection.rs:960,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:962,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:965,1
    - Dst: ActualConnection::TcpNativeTls
      Src: /src/redis-rs/redis/src/connection.rs:973,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/connection.rs:973,1
    - Dst: create_rustls_config
      Src: /src/redis-rs/redis/src/connection.rs:986,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:986,1
    - Dst: rustls::ClientConnection::new
      Src: /src/redis-rs/redis/src/connection.rs:987,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:988,1
    - Dst: rustls::pki_types::ServerName::try_from
      Src: /src/redis-rs/redis/src/connection.rs:989,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/connection.rs:989,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:993,1
    - Dst: StreamOwned::new
      Src: /src/redis-rs/redis/src/connection.rs:994,1
    - Dst: to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:999,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1000,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1002,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1006,1
    - Dst: StreamOwned::new
      Src: /src/redis-rs/redis/src/connection.rs:1011,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1013,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1016,1
    - Dst: Self::TcpRustls
      Src: /src/redis-rs/redis/src/connection.rs:1025,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/connection.rs:1025,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1029,1
    - Dst: Self::Unix
      Src: /src/redis-rs/redis/src/connection.rs:1035,1
    - Dst: UnixStream::connect
      Src: /src/redis-rs/redis/src/connection.rs:1036,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1041,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 151
    argCount: 3
    argNames:
    - addr
    - timeout
    - tcp_settings
    argTypes:
    - '&ConnectionAddr'
    - Option<Duration>
    - '&TcpSettings'
    constantsTouched: []
    func_position:
      end: 1048
      start: 865
    functionDepth: 17
    functionLinenumber: 865
    functionLinenumberEnd: 1048
    functionName: ActualConnection::new
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - rustls::pki_types::ServerName::try_from
    - use_sni
    - TlsConnector::builder
    - to_owned
    - connect
    - Ok
    - unwrap
    - ConnectionAddr::to_socket_addrs
    - Some
    - fail
    - create_rustls_config
    - rustls::ClientConnection::new
    - StreamOwned::new
    - connect_tcp_timeout
    - ActualConnection::TcpNativeTls
    - clone
    - Self::TcpRustls
    - UnixStream::connect
    - to_socket_addrs
    - is_wildcard_address
    - danger_accept_invalid_certs
    - Arc::new
    - Box::new
    - connect_tcp
    - build
    - TlsConnector::new
    - String::as_str
    - danger_accept_invalid_hostnames
    - Self::Tcp
    - Self::Unix
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new(addr: &ConnectionAddr,timeout: Option<Duration>,tcp_settings:
      &TcpSettings,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1053,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1053,1
    - Dst: TlsFilePaths::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1056,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1059,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1061,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1066,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1066,1
    - Dst: TlsFilePaths::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1069,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1072,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1074,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1079,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1079,1
    - Dst: TlsFilePaths::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1082,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1085,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1087,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1092,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1092,1
    - Dst: TlsFilePaths::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1095,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1098,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 67
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1104
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1104
    functionName: ActualConnection::send_bytes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - map_err
    - Err
    - Ok
    - TlsFilePaths::is_unrecoverable_error
    - write_all
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn send_bytes(&mut self, bytes: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1109,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1114,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1114,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1119,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1119,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1123,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1126,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1127
      start: 1106
    functionDepth: 1
    functionLinenumber: 1106
    functionLinenumberEnd: 1127
    functionName: ActualConnection::set_write_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Ok
    - set_write_timeout
    - get_ref
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn set_write_timeout(&self, dur: Option<Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1132,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1137,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1137,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1142,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1142,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1146,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1149,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1150
      start: 1129
    functionDepth: 1
    functionLinenumber: 1129
    functionLinenumberEnd: 1150
    functionName: ActualConnection::set_read_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - get_ref
    - Ok
    - set_read_timeout
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn set_read_timeout(&self, dur: Option<Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1162
    functionName: ActualConnection::is_open
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RootCertStore::empty
      Src: /src/redis-rs/redis/src/connection.rs:1171,1
    - Dst: bool::extend
      Src: /src/redis-rs/redis/src/connection.rs:1173,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/connection.rs:1173,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/connection.rs:1173,1
    - Dst: rustls_native_certs::load_native_certs
      Src: /src/redis-rs/redis/src/connection.rs:1180,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/connection.rs:1181,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1182,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1182,1
    - Dst: bool::add
      Src: /src/redis-rs/redis/src/connection.rs:1185,1
    - Dst: rustls::ClientConfig::builder
      Src: /src/redis-rs/redis/src/connection.rs:1189,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:1191,1
    - Dst: Self::with_root_certificates
      Src: /src/redis-rs/redis/src/connection.rs:1192,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1192,1
    - Dst: with_client_auth_cert
      Src: /src/redis-rs/redis/src/connection.rs:1199,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1199,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1202,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:1205,1
    - Dst: with_no_client_auth
      Src: /src/redis-rs/redis/src/connection.rs:1209,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1223,1
    - Dst: Self::dangerous
      Src: /src/redis-rs/redis/src/connection.rs:1232,1
    - Dst: set_certificate_verifier
      Src: /src/redis-rs/redis/src/connection.rs:1232,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1232,1
    - Dst: rustls::client::WebPkiServerVerifier::builder
      Src: /src/redis-rs/redis/src/connection.rs:1234,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1234,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:1234,1
    - Dst: RedisResult::map_err
      Src: /src/redis-rs/redis/src/connection.rs:1234,1
    - Dst: rustls::Error::from
      Src: /src/redis-rs/redis/src/connection.rs:1238,1
    - Dst: rustls::OtherError
      Src: /src/redis-rs/redis/src/connection.rs:1238,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1238,1
    - Dst: Self::with_root_certificates
      Src: /src/redis-rs/redis/src/connection.rs:1249,1
    - Dst: with_no_client_auth
      Src: /src/redis-rs/redis/src/connection.rs:1249,1
    - Dst: rustls::crypto::CryptoProvider::get_default
      Src: /src/redis-rs/redis/src/connection.rs:1259,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1260,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1260,1
    - Dst: Self::dangerous
      Src: /src/redis-rs/redis/src/connection.rs:1265,1
    - Dst: set_certificate_verifier
      Src: /src/redis-rs/redis/src/connection.rs:1265,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1267,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1271,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1274,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1279,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 102
    argCount: 2
    argNames:
    - insecure
    - tls_params
    argTypes:
    - bool
    - Option<TlsConnParams>
    constantsTouched: []
    func_position:
      end: 1281
      start: 1166
    functionDepth: 18
    functionLinenumber: 1166
    functionLinenumberEnd: 1281
    functionName: create_rustls_config
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - to_string
    - Err
    - RedisError::from
    - set_certificate_verifier
    - Ok
    - fail
    - unwrap_or
    - rustls::Error::from
    - clone
    - rustls::OtherError
    - rustls::crypto::CryptoProvider::get_default
    - iter
    - rustls_native_certs::load_native_certs
    - bool::add
    - Self::with_root_certificates
    - map_err
    - with_no_client_auth
    - RootCertStore::empty
    - pop
    - bool::extend
    - Arc::new
    - rustls::client::WebPkiServerVerifier::builder
    - build
    - cloned
    - into
    - with_client_auth_cert
    - Self::dangerous
    - rustls::ClientConfig::builder
    - RedisResult::map_err
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn create_rustls_config(insecure: bool,tls_params: Option<TlsConnParams>,)
      -> RedisResult<rustls::ClientConfig>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1284,1
    - Dst: RedisFuture::arg
      Src: /src/redis-rs/redis/src/connection.rs:1287,1
    - Dst: RedisFuture::arg
      Src: /src/redis-rs/redis/src/connection.rs:1290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - username
    - password
    argTypes:
    - Option<&str>
    - '&str'
    constantsTouched: []
    func_position:
      end: 1292
      start: 1283
    functionDepth: 2
    functionLinenumber: 1283
    functionLinenumberEnd: 1292
    functionName: authenticate_cmd
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - RedisFuture::arg
    - cmd::cmd
    linkageType: ''
    returnType: Cmd
    signature: 'pub(crate) fn authenticate_cmd(username: Option<&str>, password: &str)
      -> Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/connection.rs:1298,1
    - Dst: ActualConnection::new
      Src: /src/redis-rs/redis/src/connection.rs:1299,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/connection.rs:1306,1
    - Dst: checked_sub
      Src: /src/redis-rs/redis/src/connection.rs:1306,1
    - Dst: elapsed
      Src: /src/redis-rs/redis/src/connection.rs:1306,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/connection.rs:1308,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/connection.rs:1308,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1309,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1309,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/src/connection.rs:1309,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1314,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1315,1
    - Dst: setup_connection
      Src: /src/redis-rs/redis/src/connection.rs:1317,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1325,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1326,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1328,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - connection_info
    - timeout
    argTypes:
    - '&ConnectionInfo'
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1329
      start: 1294
    functionDepth: 18
    functionLinenumber: 1294
    functionLinenumberEnd: 1329
    functionName: connect
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 7
    functionsReached:
    - Instant::now
    - and_then
    - Err
    - RedisError::from
    - checked_sub
    - is_none
    - set_read_timeout
    - ActualConnection::new
    - set_write_timeout
    - elapsed
    - Ok
    - setup_connection
    - is_some
    - std::io::Error::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn connect(connection_info: &ConnectionInfo,timeout: Option<Duration>,)
      -> RedisResult<Connection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::pipe
      Src: /src/redis-rs/redis/src/connection.rs:1344,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1346,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/connection.rs:1347,1
    - Dst: commands::resp3_hello
      Src: /src/redis-rs/redis/src/connection.rs:1347,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1348,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:1349,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/connection.rs:1350,1
    - Dst: authenticate_cmd
      Src: /src/redis-rs/redis/src/connection.rs:1350,1
    - Dst: bool::then
      Src: /src/redis-rs/redis/src/connection.rs:1351,1
    - Dst: redis::ConnectionInfo::username
      Src: /src/redis-rs/redis/src/connection.rs:1351,1
    - Dst: flatten
      Src: /src/redis-rs/redis/src/connection.rs:1351,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1354,1
    - Dst: then
      Src: /src/redis-rs/redis/src/connection.rs:1359,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1360,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/connection.rs:1359,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1362,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1362,1
    - Dst: impl Future::map
      Src: /src/redis-rs/redis/src/connection.rs:1366,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1367,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1367,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1367,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1371,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1374,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1380,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1380,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1380,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1380,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:1385,1
    - Dst: map_or
      Src: /src/redis-rs/redis/src/connection.rs:1385,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/connection.rs:1380,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1391,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1391,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1391,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1391,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:1396,1
    - Dst: map_or
      Src: /src/redis-rs/redis/src/connection.rs:1396,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/connection.rs:1391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 103
    argCount: 3
    argNames:
    - connection_info
    - check_username
    - cache_config
    argTypes:
    - '&RedisConnectionInfo'
    - bool
    - Option<crate::caching::CacheConfig>
    constantsTouched: []
    func_position:
      end: 1414
      start: 1339
    functionDepth: 25
    functionLinenumber: 1339
    functionLinenumberEnd: 1414
    functionName: connection_setup_pipeline
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - authenticate_cmd
    - len
    - flatten
    - map_or
    - bool::then
    - Some
    - '&mut Self::arg'
    - inspect
    - as_ref
    - cmd::cmd
    - add_command
    - arg
    - Cmd::arg
    - then
    - redis::ConnectionInfo::username
    - cmd::pipe
    - impl Future::map
    - commands::resp3_hello
    - supports_resp3
    - ignore
    linkageType: ''
    returnType: (crate::Pipeline, ConnectionSetupComponents)
    signature: 'pub(crate) fn connection_setup_pipeline(connection_info: &RedisConnectionInfo,check_username:
      bool,#[cfg(feature = "cache-aio")] cache_config: Option<crate::caching::CacheConfig>,)
      -> (crate::Pipeline, ConnectionSetupComponents)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1418,1
    - Dst: get_resp3_hello_command_error
      Src: /src/redis-rs/redis/src/connection.rs:1418,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1418,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/connection.rs:1418,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1421
      start: 1416
    functionDepth: 6
    functionLinenumber: 1416
    functionLinenumberEnd: 1421
    functionName: check_resp3_auth
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - clone
    - Ok
    - get_resp3_hello_command_error
    - Self::into
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_resp3_auth(result: &Value) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1432,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1436,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1437,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1436,1
    - Dst: details
      Src: /src/redis-rs/redis/src/connection.rs:1444,1
    - Dst: Option::ok_or
      Src: /src/redis-rs/redis/src/connection.rs:1444,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/connection.rs:1448,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1449,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1449,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1456
      start: 1429
    functionDepth: 1
    functionLinenumber: 1429
    functionLinenumberEnd: 1456
    functionName: check_resp2_auth
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - details
    - Err
    - into
    - Ok
    - Option::ok_or
    - contains
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_resp2_auth(result: &Value) -> RedisResult<AuthResult>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1460,1
    - Dst: details
      Src: /src/redis-rs/redis/src/connection.rs:1463,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1464,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1465,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:1467,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1464,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1470,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1471,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1470,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1476
      start: 1458
    functionDepth: 1
    functionLinenumber: 1458
    functionLinenumberEnd: 1476
    functionName: check_db_select
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - to_string
    - details
    - Err
    - into
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_db_select(value: &Value) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1481,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1482,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1483,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1482,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1489
      start: 1479
    functionDepth: 0
    functionLinenumber: 1479
    functionLinenumberEnd: 1489
    functionName: check_caching
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_caching(result: &Value) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1505,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1506,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1506,1
    - Dst: check_resp3_auth
      Src: /src/redis-rs/redis/src/connection.rs:1508,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1510,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1511,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1511,1
    - Dst: check_resp2_auth
      Src: /src/redis-rs/redis/src/connection.rs:1513,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1514,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1519,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1520,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1520,1
    - Dst: check_db_select
      Src: /src/redis-rs/redis/src/connection.rs:1522,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1527,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1528,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1528,1
    - Dst: check_caching
      Src: /src/redis-rs/redis/src/connection.rs:1530,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1533,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 2
    argNames:
    - results
    argTypes:
    - Vec<Value>
    - ConnectionSetupComponents
    constantsTouched: []
    func_position:
      end: 1534
      start: 1491
    functionDepth: 21
    functionLinenumber: 1491
    functionLinenumberEnd: 1534
    functionName: check_connection_setup
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3_auth
    - check_caching
    - Err
    - into
    - check_resp2_auth
    - Ok
    - RedisResult::get
    - check_db_select
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn check_connection_setup(results: Vec<Value>,ConnectionSetupComponents'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/aio/mod.rs:109,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:111,1
    - Dst: '&mut T::send'
      Src: /src/redis-rs/redis/src/aio/mod.rs:113,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:113,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/aio/mod.rs:115,1
    - Dst: '&mut T::next'
      Src: /src/redis-rs/redis/src/aio/mod.rs:117,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/aio/mod.rs:117,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/src/aio/mod.rs:118,1
    - Dst: connection::check_connection_setup
      Src: /src/redis-rs/redis/src/aio/mod.rs:121,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - codec
    argTypes:
    - '&mut T'
    - (crate::Pipeline, ConnectionSetupComponents)
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 22
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: execute_connection_pipeline
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - connection::check_connection_setup
    - '&mut T::next'
    - len
    - ok_or_else
    - get_packed_pipeline
    - '&mut T::send'
    - Ok
    - RedisResult::push
    - Vec::with_capacity
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn execute_connection_pipeline<T>(codec: &mut T,(pipeline, instructions):
      (crate::Pipeline, ConnectionSetupComponents),) -> RedisResult<AuthResult>whereT:
      Sink<Vec<u8>, Error = RedisError>,T: Stream<Item = RedisResult<Value>>,T: Unpin
      + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: execute_connection_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:134,1
    - Dst: connection_setup_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:136,1
    - Dst: execute_connection_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:146,1
    - Dst: connection_setup_pipeline
      Src: /src/redis-rs/redis/src/aio/mod.rs:148,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - codec
    - connection_info
    - cache_config
    argTypes:
    - '&mut T'
    - '&RedisConnectionInfo'
    - Option<crate::caching::CacheConfig>
    constantsTouched: []
    func_position:
      end: 159
      start: 124
    functionDepth: 23
    functionLinenumber: 124
    functionLinenumberEnd: 159
    functionName: setup_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 3
    functionsReached:
    - connection_setup_pipeline
    - Ok
    - execute_connection_pipeline
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(super) async fn setup_connection<T>(codec: &mut T,connection_info:
      &RedisConnectionInfo,#[cfg(feature = "cache-aio")] cache_config: Option<crate::caching::CacheConfig>,)
      -> RedisResult<()>whereT: Sink<Vec<u8>, Error = RedisError>,T: Stream<Item =
      RedisResult<Value>>,T: Unpin + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1620,1
    - Dst: ConnectionLike::req_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1622
      start: 1619
    functionDepth: 12
    functionLinenumber: 1619
    functionLinenumberEnd: 1622
    functionName: ConnectionLike::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 2
    functionsReached:
    - Cmd::get_packed_command
    - ConnectionLike::req_packed_command
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1632
    functionDepth: 0
    functionLinenumber: 1632
    functionLinenumberEnd: 1634
    functionName: ConnectionLike::supports_pipelining
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn supports_pipelining(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::send_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Connection::send_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::send_packed_command
    linkageType: ''
    returnType: RedisResult
    signature: 'fn send_packed_command(&mut self, cmd: &[u8]) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::recv_response
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: Connection::recv_response
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::recv_response
    linkageType: ''
    returnType: RedisResult
    signature: fn recv_response(&mut self) -> RedisResult<Value>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::set_write_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: Connection::set_write_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::set_write_timeout
    linkageType: ''
    returnType: RedisResult
    signature: 'fn set_write_timeout(&self, dur: Option<Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::set_read_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: Connection::set_read_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::set_read_timeout
    linkageType: ''
    returnType: RedisResult
    signature: 'fn set_read_timeout(&self, dur: Option<Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PubSub::new
      Src: /src/redis-rs/redis/src/connection.rs:1695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1691
    functionDepth: 1
    functionLinenumber: 1691
    functionLinenumberEnd: 1696
    functionName: Connection::as_pubsub
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - PubSub::new
    linkageType: ''
    returnType: PubSub
    signature: pub fn as_pubsub(&mut self) -> PubSub<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::clear_active_subscriptions
      Src: /src/redis-rs/redis/src/connection.rs:1699,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/connection.rs:1700,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1698
    functionDepth: 1
    functionLinenumber: 1698
    functionLinenumberEnd: 1708
    functionName: Connection::exit_pubsub
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::clear_active_subscriptions
    - is_ok
    linkageType: ''
    returnType: RedisResult
    signature: fn exit_pubsub(&mut self) -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1722,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1722,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1723,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1723,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1726,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1727,1
    - Dst: Connection::recv_response
      Src: /src/redis-rs/redis/src/connection.rs:1739,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1743,1
    - Dst: resp3_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1745,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/connection.rs:1758,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1758,1
    - Dst: no_sub_err_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1759,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1770,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1770,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:1773,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/connection.rs:1773,1
    - Dst: resp2_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1774,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1784,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1784,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1796,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1714
    functionDepth: 12
    functionLinenumber: 1714
    functionLinenumberEnd: 1797
    functionName: Connection::clear_active_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - kind
    - Connection::recv_response
    - len
    - Err
    - into
    - no_sub_err_is_pub_sub_state_cleared
    - from_redis_value
    - Cmd::get_packed_command
    - resp2_is_pub_sub_state_cleared
    - Value::Array
    - Ok
    - cmd::cmd
    - resp3_is_pub_sub_state_cleared
    - Some
    - Connection::send_bytes
    linkageType: ''
    returnType: RedisResult
    signature: fn clear_active_subscriptions(&mut self) -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/connection.rs:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - push
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 1803
      start: 1799
    functionDepth: 1
    functionLinenumber: 1799
    functionLinenumberEnd: 1803
    functionName: Connection::send_push
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Self::send
    linkageType: ''
    returnType: void
    signature: 'fn send_push(&self, push: PushInfo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::send_push
      Src: /src/redis-rs/redis/src/connection.rs:1807,1
    - Dst: PushKind::clone
      Src: /src/redis-rs/redis/src/connection.rs:1808,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1809,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&RedisResult<Value>'
    constantsTouched: []
    func_position:
      end: 1812
      start: 1805
    functionDepth: 6
    functionLinenumber: 1805
    functionLinenumberEnd: 1812
    functionName: Connection::try_send
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::send_push
    - PushKind::clone
    - clone
    linkageType: ''
    returnType: void
    signature: 'fn try_send(&self, value: &RedisResult<Value>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::send_push
      Src: /src/redis-rs/redis/src/connection.rs:1815,1
    - Dst: PushInfo::disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1814
    functionDepth: 2
    functionLinenumber: 1814
    functionLinenumberEnd: 1816
    functionName: Connection::send_disconnect
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::send_push
    - PushInfo::disconnect
    linkageType: ''
    returnType: void
    signature: fn send_disconnect(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::send_disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1820,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1823,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1828,1
    - Dst: get_mut
      Src: /src/redis-rs/redis/src/connection.rs:1833,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1833,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1842
      start: 1818
    functionDepth: 3
    functionLinenumber: 1818
    functionLinenumberEnd: 1842
    functionName: Connection::close_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - get_mut
    - shutdown
    - Connection::send_disconnect
    linkageType: ''
    returnType: void
    signature: fn close_connection(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1850,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1855,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1860,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1864,1
    - Dst: Connection::try_send
      Src: /src/redis-rs/redis/src/connection.rs:1867,1
    - Dst: as_io_error
      Src: /src/redis-rs/redis/src/connection.rs:1876,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/connection.rs:1884,1
    - Dst: Connection::close_connection
      Src: /src/redis-rs/redis/src/connection.rs:1885,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 60
    argCount: 1
    argNames:
    - is_response
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1892
      start: 1846
    functionDepth: 7
    functionLinenumber: 1846
    functionLinenumberEnd: 1892
    functionName: Connection::read
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - kind
    - Connection::close_connection
    - parse_value
    - Connection::try_send
    - as_io_error
    linkageType: ''
    returnType: RedisResult
    signature: 'fn read(&mut self, is_response: bool) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sender
    argTypes:
    - SyncPushSender
    constantsTouched: []
    func_position:
      end: 1897
      start: 1895
    functionDepth: 0
    functionLinenumber: 1895
    functionLinenumberEnd: 1897
    functionName: Connection::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_push_sender(&mut self, sender: SyncPushSender)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::is_empty
      Src: /src/redis-rs/redis/src/connection.rs:1900,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1901,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/connection.rs:1901,1
    - Dst: send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1903,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1904,1
    - Dst: TlsFilePaths::is_connection_dropped
      Src: /src/redis-rs/redis/src/connection.rs:1906,1
    - Dst: Connection::send_disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1908,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1911
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 1911
    functionName: Connection::send_bytes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Vec::is_empty
    - Err
    - Connection::send_disconnect
    - supports_resp3
    - send_bytes
    - TlsFilePaths::is_connection_dropped
    - RedisError::make_empty_command
    linkageType: ''
    returnType: RedisResult
    signature: 'fn send_bytes(&mut self, bytes: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1917,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1918,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1918,1
    - Dst: '&mut Self::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1918,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - channel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1922
      start: 1916
    functionDepth: 25
    functionLinenumber: 1916
    functionLinenumberEnd: 1922
    functionName: Connection::subscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - Cmd::arg
    - '&mut Self::exec'
    - '&mut Self::set_no_response'
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn subscribe_resp3<T: ToRedisArgs>(&mut self, channel: T) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1928,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1929,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1929,1
    - Dst: '&mut Self::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1929,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pchannel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1933
      start: 1927
    functionDepth: 25
    functionLinenumber: 1927
    functionLinenumberEnd: 1933
    functionName: Connection::psubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - Cmd::arg
    - '&mut Self::exec'
    - '&mut Self::set_no_response'
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn psubscribe_resp3<T: ToRedisArgs>(&mut self, pchannel: T) ->
      RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1939,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1940,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1940,1
    - Dst: '&mut Self::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1940,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - channel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1944
      start: 1938
    functionDepth: 25
    functionLinenumber: 1938
    functionLinenumberEnd: 1944
    functionName: Connection::unsubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - Cmd::arg
    - '&mut Self::exec'
    - '&mut Self::set_no_response'
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn unsubscribe_resp3<T: ToRedisArgs>(&mut self, channel: T) ->
      RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1950,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1951,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1951,1
    - Dst: '&mut Self::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1951,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pchannel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1955
      start: 1949
    functionDepth: 25
    functionLinenumber: 1949
    functionLinenumberEnd: 1955
    functionName: Connection::punsubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - Cmd::arg
    - '&mut Self::exec'
    - '&mut Self::set_no_response'
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn punsubscribe_resp3<T: ToRedisArgs>(&mut self, pchannel: T)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1961,1
    - Dst: Connection::exit_pubsub
      Src: /src/redis-rs/redis/src/connection.rs:1963,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1966,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/connection.rs:1967,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1968,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:1971,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1976,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1979
      start: 1960
    functionDepth: 12
    functionLinenumber: 1960
    functionLinenumberEnd: 1979
    functionName: Connection::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::read
    - Cmd::is_no_response
    - Cmd::get_packed_command
    - Ok
    - Connection::send_bytes
    - Connection::exit_pubsub
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::exit_pubsub
      Src: /src/redis-rs/redis/src/connection.rs:1982,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1985,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:1987,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1992,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1995
      start: 1980
    functionDepth: 14
    functionLinenumber: 1980
    functionLinenumberEnd: 1995
    functionName: Connection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::read
    - Connection::send_bytes
    - Ok
    - Connection::exit_pubsub
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_command(&mut self, cmd: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::exit_pubsub
      Src: /src/redis-rs/redis/src/connection.rs:2004,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:2006,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:2017,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:2021,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:2023,1
    - Dst: Value::ServerError
      Src: /src/redis-rs/redis/src/connection.rs:2023,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:2036,1
    - Dst: None::is_none
      Src: /src/redis-rs/redis/src/connection.rs:2040,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2041,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/connection.rs:2048,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:2049,1
    - Dst: RedisError::make_aborted_transaction
      Src: /src/redis-rs/redis/src/connection.rs:2049,1
    - Dst: None::map_or
      Src: /src/redis-rs/redis/src/connection.rs:2052,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2052,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 60
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 2053
      start: 1997
    functionDepth: 22
    functionLinenumber: 1997
    functionLinenumberEnd: 2053
    functionName: Connection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::read
    - None::map_or
    - None::is_none
    - Err
    - RedisError::make_aborted_transaction
    - push
    - is_empty
    - Value::ServerError
    - Ok
    - Some
    - Connection::send_bytes
    - Connection::exit_pubsub
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_commands(&mut self,cmd: &[u8],offset: usize,count: usize,)
      -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2057
      start: 2055
    functionDepth: 0
    functionLinenumber: 2055
    functionLinenumberEnd: 2057
    functionName: Connection::get_db
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: fn get_db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2060,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/src/connection.rs:2060,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/connection.rs:2060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2061
      start: 2059
    functionDepth: 2
    functionLinenumber: 2059
    functionLinenumberEnd: 2061
    functionName: Connection::check_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - cmd::cmd
    - is_ok
    linkageType: ''
    returnType: bool
    signature: fn check_connection(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_open
      Src: /src/redis-rs/redis/src/connection.rs:2064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2065
      start: 2063
    functionDepth: 1
    functionLinenumber: 2063
    functionLinenumberEnd: 2065
    functionName: Connection::is_open
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - is_open
    linkageType: ''
    returnType: bool
    signature: fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::deref_mut
      Src: /src/redis-rs/redis/src/connection.rs:2074,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2074,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 2075
      start: 2073
    functionDepth: 13
    functionLinenumber: 2073
    functionLinenumberEnd: 2075
    functionName: T::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - req_packed_command
    - T::deref_mut
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_command(&mut self, cmd: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::deref_mut
      Src: /src/redis-rs/redis/src/connection.rs:2083,1
    - Dst: req_packed_commands
      Src: /src/redis-rs/redis/src/connection.rs:2083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 2084
      start: 2077
    functionDepth: 16
    functionLinenumber: 2077
    functionLinenumberEnd: 2084
    functionName: T::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - T::deref_mut
    - req_packed_commands
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_commands(&mut self,cmd: &[u8],offset: usize,count: usize,)
      -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::deref_mut
      Src: /src/redis-rs/redis/src/connection.rs:2087,1
    - Dst: req_command
      Src: /src/redis-rs/redis/src/connection.rs:2087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 2088
      start: 2086
    functionDepth: 26
    functionLinenumber: 2086
    functionLinenumberEnd: 2088
    functionName: T::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - req_command
    - T::deref_mut
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::deref
      Src: /src/redis-rs/redis/src/connection.rs:2091,1
    - Dst: '&Self::Target::get_db'
      Src: /src/redis-rs/redis/src/connection.rs:2091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2092
      start: 2090
    functionDepth: 1
    functionLinenumber: 2090
    functionLinenumberEnd: 2092
    functionName: T::get_db
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - '&Self::Target::get_db'
    - T::deref
    linkageType: ''
    returnType: i64
    signature: fn get_db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::deref
      Src: /src/redis-rs/redis/src/connection.rs:2095,1
    - Dst: '&Self::Target::supports_pipelining'
      Src: /src/redis-rs/redis/src/connection.rs:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2094
    functionDepth: 1
    functionLinenumber: 2094
    functionLinenumberEnd: 2096
    functionName: T::supports_pipelining
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - '&Self::Target::supports_pipelining'
    - T::deref
    linkageType: ''
    returnType: bool
    signature: fn supports_pipelining(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::deref_mut
      Src: /src/redis-rs/redis/src/connection.rs:2099,1
    - Dst: check_connection
      Src: /src/redis-rs/redis/src/connection.rs:2099,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2100
      start: 2098
    functionDepth: 1
    functionLinenumber: 2098
    functionLinenumberEnd: 2100
    functionName: T::check_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - check_connection
    - T::deref_mut
    linkageType: ''
    returnType: bool
    signature: fn check_connection(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: T::deref
      Src: /src/redis-rs/redis/src/connection.rs:2103,1
    - Dst: '&Self::Target::is_open'
      Src: /src/redis-rs/redis/src/connection.rs:2103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2104
      start: 2102
    functionDepth: 1
    functionLinenumber: 2102
    functionLinenumberEnd: 2104
    functionName: T::is_open
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - '&Self::Target::is_open'
    - T::deref
    linkageType: ''
    returnType: bool
    signature: fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:388,1
    - Dst: Self::framed
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:388,1
    - Dst: super::setup_connection
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:389,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:396,1
    - Dst: PubSubSink::new
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:397,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:398,1
    - Dst: Self::spawn
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:398,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:399,1
    - Dst: SharedHandleContainer::new
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:399,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - connection_info
    - stream
    argTypes:
    - '&RedisConnectionInfo'
    - C
    constantsTouched: []
    func_position:
      end: 406
      start: 384
    functionDepth: 12
    functionLinenumber: 384
    functionLinenumberEnd: 406
    functionName: PubSub::new
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 2
    functionsReached:
    - Runtime::locate
    - Self::spawn
    - tokio::sync::mpsc::unbounded_channel
    - super::setup_connection
    - Self::framed
    - PubSubSink::new
    - Ok
    - Some
    - ValueCodec::default
    - SharedHandleContainer::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn new<C>(connection_info: &RedisConnectionInfo, stream:
      C) -> RedisResult<Self>whereC: Unpin + AsyncRead + AsyncWrite + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/connection.rs:2141,1
    - Dst: Cmd::set_no_response
      Src: /src/redis-rs/redis/src/connection.rs:2142,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2144,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2144,1
    - Dst: recv_response
      Src: /src/redis-rs/redis/src/connection.rs:2147,1
    - Dst: Msg::from_value
      Src: /src/redis-rs/redis/src/connection.rs:2148,1
    - Dst: push_back
      Src: /src/redis-rs/redis/src/connection.rs:2149,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - cmd
    - is_sub_unsub
    argTypes:
    - '&mut Cmd'
    - bool
    constantsTouched: []
    func_position:
      end: 2154
      start: 2136
    functionDepth: 12
    functionLinenumber: 2136
    functionLinenumberEnd: 2154
    functionName: PubSub::cache_messages_until_received_response
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - send_packed_command
    - push_back
    - recv_response
    - Cmd::set_no_response
    - Msg::from_value
    - supports_resp3
    - Cmd::get_packed_command
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn cache_messages_until_received_response(&mut self,cmd: &mut Cmd,is_sub_unsub:
      bool,) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:422,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 22
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: PubSub::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 2
    functionsReached:
    - subscribe
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn subscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: psubscribe
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:455,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: PubSub::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - psubscribe
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn psubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:439,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 440
      start: 438
    functionDepth: 22
    functionLinenumber: 438
    functionLinenumberEnd: 440
    functionName: PubSub::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - unsubscribe
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn unsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: punsubscribe
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 472
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 472
    functionName: PubSub::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - punsubscribe
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn punsubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ping_message
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 485
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 485
    functionName: PubSub::ping_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - ping_message
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn ping_message<T: FromRedisValue>(&mut self,message: impl
      ToRedisArgs,) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ping
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 475
    functionDepth: 12
    functionLinenumber: 475
    functionLinenumberEnd: 477
    functionName: PubSub::ping
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - ping
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn ping<T: FromRedisValue>(&mut self) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pop_front
      Src: /src/redis-rs/redis/src/connection.rs:2200,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2201,1
    - Dst: Msg::from_owned_value
      Src: /src/redis-rs/redis/src/connection.rs:2204,1
    - Dst: read
      Src: /src/redis-rs/redis/src/connection.rs:2204,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2199
    functionDepth: 23
    functionLinenumber: 2199
    functionLinenumberEnd: 2210
    functionName: PubSub::get_message
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 2
    functionsReached:
    - read
    - pop_front
    - Ok
    - Msg::from_owned_value
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_message(&mut self) -> RedisResult<Msg>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:2218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 2219
      start: 2217
    functionDepth: 1
    functionLinenumber: 2217
    functionLinenumberEnd: 2219
    functionName: PubSub::set_read_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - set_read_timeout
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn set_read_timeout(&self, dur: Option<Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: exit_pubsub
      Src: /src/redis-rs/redis/src/connection.rs:2224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2223
    functionDepth: 14
    functionLinenumber: 2223
    functionLinenumberEnd: 2225
    functionName: PubSub::drop
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - exit_pubsub
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_owned_value
      Src: /src/redis-rs/redis/src/connection.rs:2233,1
    - Dst: impl combine::Parser::clone
      Src: /src/redis-rs/redis/src/connection.rs:2233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2234
      start: 2232
    functionDepth: 1
    functionLinenumber: 2232
    functionLinenumberEnd: 2234
    functionName: Msg::from_value
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Self::from_owned_value
    - impl combine::Parser::clone
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_value(value: &Value) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_push_info
      Src: /src/redis-rs/redis/src/connection.rs:2243,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:2245,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/connection.rs:2245,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2246,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:2247,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2247,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/connection.rs:2247,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2249,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2250,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2252,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2252,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2253,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2254,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 1
    argNames:
    - value
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2264
      start: 2237
    functionDepth: 9
    functionLinenumber: 2237
    functionLinenumberEnd: 2264
    functionName: Msg::from_owned_value
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - from_redis_value
    - into_iter
    - next
    - Self::from_push_info
    - Some
    - Result::ok
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_owned_value(value: Value) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2272,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2274,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2275,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2277,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2277,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2278,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2279,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2284,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 1
    argNames:
    - push_info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 2289
      start: 2267
    functionDepth: 2
    functionLinenumber: 2267
    functionLinenumberEnd: 2289
    functionName: Msg::from_push_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - next
    - Some
    linkageType: ''
    returnType: Option
    signature: 'pub fn from_push_info(push_info: PushInfo) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2293,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2292
    functionDepth: 10
    functionLinenumber: 2292
    functionLinenumberEnd: 2294
    functionName: Msg::get_channel
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn get_channel<T: FromRedisValue>(&self) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/connection.rs:2302,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:2302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2305
      start: 2300
    functionDepth: 0
    functionLinenumber: 2300
    functionLinenumberEnd: 2305
    functionName: Msg::get_channel_name
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - std::str::from_utf8
    linkageType: ''
    returnType: '&str'
    signature: pub fn get_channel_name(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2309,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2310
      start: 2308
    functionDepth: 10
    functionLinenumber: 2308
    functionLinenumberEnd: 2310
    functionName: Msg::get_payload
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn get_payload<T: FromRedisValue>(&self) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2320
      start: 2315
    functionDepth: 0
    functionLinenumber: 2315
    functionLinenumberEnd: 2320
    functionName: Msg::get_payload_bytes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[u8]'
    signature: pub fn get_payload_bytes(&self) -> &[u8]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/connection.rs:2326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2327
      start: 2325
    functionDepth: 0
    functionLinenumber: 2325
    functionLinenumberEnd: 2327
    functionName: Msg::from_pattern
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - is_some
    linkageType: ''
    returnType: bool
    signature: pub fn from_pattern(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2334,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2335,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2336,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2333
    functionDepth: 10
    functionLinenumber: 2333
    functionLinenumberEnd: 2338
    functionName: Msg::get_pattern
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - from_redis_value_ref
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn get_pattern<T: FromRedisValue>(&self) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2385,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:2385,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/src/connection.rs:2385,1
    - Dst: cmd::pipe
      Src: /src/redis-rs/redis/src/connection.rs:2386,1
    - Dst: func
      Src: /src/redis-rs/redis/src/connection.rs:2387,1
    - Dst: atomic
      Src: /src/redis-rs/redis/src/connection.rs:2387,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2395,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/src/connection.rs:2395,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2396,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - con
    - keys
    - func
    argTypes:
    - '&mut C'
    - '&[K]'
    - F
    constantsTouched: []
    func_position:
      end: 2400
      start: 2373
    functionDepth: 25
    functionLinenumber: 2373
    functionLinenumberEnd: 2400
    functionName: transaction
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 3
    functionsReached:
    - atomic
    - func
    - Cmd::exec
    - Cmd::arg
    - Ok
    - '&mut Self::exec'
    - cmd::pipe
    - cmd::cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn transaction<C: ConnectionLike,K: ToRedisArgs,T,F: FnMut(&mut
      C, &mut Pipeline) -> RedisResult<Option<T>>,>(con: &mut C,keys: &[K],func: F,)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushKind::first
      Src: /src/redis-rs/redis/src/connection.rs:2410,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - received_unsub
    - received_punsub
    - kind
    - num
    argTypes:
    - '&mut bool'
    - '&mut bool'
    - '&[u8]'
    - isize
    constantsTouched: []
    func_position:
      end: 2416
      start: 2404
    functionDepth: 1
    functionLinenumber: 2404
    functionLinenumberEnd: 2416
    functionName: resp2_is_pub_sub_state_cleared
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - PushKind::first
    linkageType: ''
    returnType: bool
    signature: 'pub fn resp2_is_pub_sub_state_cleared(received_unsub: &mut bool,received_punsub:
      &mut bool,kind: &[u8],num: isize,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - received_unsub
    - received_punsub
    - kind
    - num
    argTypes:
    - '&mut bool'
    - '&mut bool'
    - '&PushKind'
    - isize
    constantsTouched: []
    func_position:
      end: 2431
      start: 2419
    functionDepth: 0
    functionLinenumber: 2419
    functionLinenumberEnd: 2431
    functionName: resp3_is_pub_sub_state_cleared
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn resp3_is_pub_sub_state_cleared(received_unsub: &mut bool,received_punsub:
      &mut bool,kind: &PushKind,num: isize,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: details
      Src: /src/redis-rs/redis/src/connection.rs:2438,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/connection.rs:2440,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2441,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/connection.rs:2440,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/connection.rs:2444,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2445,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/connection.rs:2444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 3
    argNames:
    - received_unsub
    - received_punsub
    - err
    argTypes:
    - '&mut bool'
    - '&mut bool'
    - '&ServerError'
    constantsTouched: []
    func_position:
      end: 2448
      start: 2433
    functionDepth: 7
    functionLinenumber: 2433
    functionLinenumberEnd: 2448
    functionName: no_sub_err_is_pub_sub_state_cleared
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Option::starts_with
    - unwrap_or_default
    - Option::map
    - details
    linkageType: ''
    returnType: bool
    signature: 'pub fn no_sub_err_is_pub_sub_state_cleared(received_unsub: &mut bool,received_punsub:
      &mut bool,err: &ServerError,) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: detail
      Src: /src/redis-rs/redis/src/connection.rs:2452,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2453,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:2455,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - err
    argTypes:
    - RedisError
    constantsTouched: []
    func_position:
      end: 2462
      start: 2451
    functionDepth: 1
    functionLinenumber: 2451
    functionLinenumberEnd: 2462
    functionName: get_resp3_hello_command_error
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Option::starts_with
    - into
    - detail
    linkageType: ''
    returnType: RedisError
    signature: 'pub fn get_resp3_hello_command_error(err: RedisError) -> RedisError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connection::connection_setup_pipeline
      Src: /src/redis-rs/redis/src/connection.rs:2477,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/connection.rs:2485,1
    - Dst: map
      Src: /src/redis-rs/redis/src/connection.rs:2485,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2488,1
    - Dst: "commands\n                .iter()\n                .map(|c| c.get_packed_command())\n\
        \                .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/connection.rs:2485,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2491,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:2491,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/connection.rs:2491,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:2491,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2491,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2498,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:2498,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/connection.rs:2498,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:2498,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 3
    argNames:
    - redis_connection_info
    - expected_lib_name
    - expected_lib_ver
    argTypes:
    - '&RedisConnectionInfo'
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 2504
      start: 2471
    functionDepth: 26
    functionLinenumber: 2471
    functionLinenumberEnd: 2504
    functionName: tests::assert_lib_name_in_connection_setup_pipeline
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - "commands\n                .iter()\n                .map(|c| c.get_packed_command())\n\
      \                .collect::<Vec<_>>"
    - '&mut Self::arg'
    - map
    - arg
    - Cmd::arg
    - iter
    - get_packed_command
    - cmd::cmd
    - connection::connection_setup_pipeline
    linkageType: ''
    returnType: void
    signature: 'pub fn assert_lib_name_in_connection_setup_pipeline(redis_connection_info:
      &RedisConnectionInfo,expected_lib_name: &str,expected_lib_ver: &str,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2527,1
    - Dst: parse_redis_url
      Src: /src/redis-rs/redis/src/connection.rs:2528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2535
      start: 2511
    functionDepth: 1
    functionLinenumber: 2511
    functionLinenumberEnd: 2535
    functionName: tests::test_parse_redis_url
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - parse_redis_url
    linkageType: ''
    returnType: void
    signature: fn test_parse_redis_url()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2597,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2598,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/src/connection.rs:2598,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/connection.rs:2598,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2613
      start: 2538
    functionDepth: 23
    functionLinenumber: 2538
    functionLinenumberEnd: 2613
    functionName: tests::test_url_to_tcp_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - String::clone
    - into_iter
    - url_to_tcp_connection_info
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_url_to_tcp_connection_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2644,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2645,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/connection.rs:2645,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:2647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2651
      start: 2616
    functionDepth: 23
    functionLinenumber: 2616
    functionLinenumberEnd: 2651
    functionName: tests::test_url_to_tcp_connection_info_failed
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - to_string
    - into_iter
    - url_to_tcp_connection_info
    - RedisResult::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_url_to_tcp_connection_info_failed()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2744,1
    - Dst: url_to_unix_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2750,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/src/connection.rs:2750,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/connection.rs:2750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2765
      start: 2655
    functionDepth: 6
    functionLinenumber: 2655
    functionLinenumberEnd: 2765
    functionName: tests::test_url_to_unix_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - String::clone
    - into_iter
    - url_to_unix_connection_info
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_url_to_unix_connection_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/connection.rs:2769,1
    - Dst: assert_lib_name_in_connection_setup_pipeline
      Src: /src/redis-rs/redis/src/connection.rs:2776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2781
      start: 2768
    functionDepth: 27
    functionLinenumber: 2768
    functionLinenumberEnd: 2781
    functionName: tests::redis_connection_info_lib_name_default
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - assert_lib_name_in_connection_setup_pipeline
    - RedisConnectionInfo::default
    linkageType: ''
    returnType: void
    signature: fn redis_connection_info_lib_name_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/connection.rs:2785,1
    - Dst: Self::set_skip_set_lib_name
      Src: /src/redis-rs/redis/src/connection.rs:2788,1
    - Dst: Self::set_lib_name
      Src: /src/redis-rs/redis/src/connection.rs:2792,1
    - Dst: assert_lib_name_in_connection_setup_pipeline
      Src: /src/redis-rs/redis/src/connection.rs:2800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2801
      start: 2784
    functionDepth: 27
    functionLinenumber: 2784
    functionLinenumberEnd: 2801
    functionName: tests::redis_connection_info_lib_name_custom
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - assert_lib_name_in_connection_setup_pipeline
    - RedisConnectionInfo::default
    - Self::set_lib_name
    - Self::set_skip_set_lib_name
    linkageType: ''
    returnType: void
    signature: fn redis_connection_info_lib_name_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - username
    - password
    argTypes:
    - String
    - String
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: BasicAuth::new
    functionSourceFile: /src/redis-rs/redis/src/auth.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(username: String, password: String) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: BasicAuth::username
    functionSourceFile: /src/redis-rs/redis/src/auth.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: pub fn username(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: BasicAuth::password
    functionSourceFile: /src/redis-rs/redis/src/auth.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: pub fn password(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - username
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: BasicAuth::set_username
    functionSourceFile: /src/redis-rs/redis/src/auth.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_username(&mut self, username: String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - password
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: BasicAuth::set_password
    functionSourceFile: /src/redis-rs/redis/src/auth.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'pub fn set_password(&mut self, password: String)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:45,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:48,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:51,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:54,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:57,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:60,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:63,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 69
      start: 39
    functionDepth: 23
    functionLinenumber: 39
    functionLinenumberEnd: 69
    functionName: BloomFilterInfoType::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: BloomFilterInfoTypeResponse::deref
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Self::Target'
    signature: fn deref(&self) -> &Self::Target
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&f64'
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: BloomFilterInfoTypeResponse::eq
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &f64) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/bloom.rs:101,1
    - Dst: next
      Src: /src/redis-rs/redis/src/bloom.rs:102,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/bloom.rs:103,1
    - Dst: next
      Src: /src/redis-rs/redis/src/bloom.rs:106,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/bloom.rs:106,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/bloom.rs:107,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/bloom.rs:112,1
    - Dst: f64::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:113,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/bloom.rs:119,1
    - Dst: next
      Src: /src/redis-rs/redis/src/bloom.rs:120,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/bloom.rs:121,1
    - Dst: next
      Src: /src/redis-rs/redis/src/bloom.rs:124,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/bloom.rs:124,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/bloom.rs:125,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/bloom.rs:128,1
    - Dst: f64::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:129,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/bloom.rs:134,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/bloom.rs:137,1
    - Dst: f64::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:138,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 141
      start: 97
    functionDepth: 8
    functionLinenumber: 97
    functionLinenumberEnd: 141
    functionName: BloomFilterInfoTypeResponse::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - errors::invalid_type_error
    - f64::from_redis_value
    - into_iter
    - next
    - Ok
    - is_some
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:161,1
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/bloom.rs:162,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 23
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: BloomFilterScalingOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - Self::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/bloom.rs:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    functionName: BloomFilterInsertOptions::nocreate
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: pub fn nocreate(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/bloom.rs:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - scale_option
    argTypes:
    - BloomFilterScalingOptions
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: BloomFilterInsertOptions::expansion
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn expansion(mut self, scale_option: BloomFilterScalingOptions)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/bloom.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - error_rate
    argTypes:
    - f64
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: BloomFilterInsertOptions::error_rate
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn error_rate(mut self, error_rate: f64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/bloom.rs:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: BloomFilterInsertOptions::capacity
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn capacity(mut self, capacity: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/bloom.rs:210,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:211,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:215,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/bloom.rs:216,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/bloom.rs:220,1
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/bloom.rs:221,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/bloom.rs:225,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 227
      start: 206
    functionDepth: 23
    functionLinenumber: 206
    functionLinenumberEnd: 227
    functionName: BloomFilterInsertOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - Some
    - Self::write_redis_args
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/bloom.rs:244,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/bloom.rs:247,1
    - Dst: next
      Src: /src/redis-rs/redis/src/bloom.rs:250,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/bloom.rs:252,1
    - Dst: next
      Src: /src/redis-rs/redis/src/bloom.rs:256,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/bloom.rs:258,1
    - Dst: next
      Src: /src/redis-rs/redis/src/bloom.rs:262,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/bloom.rs:262,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/bloom.rs:263,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/bloom.rs:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 268
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 268
    functionName: BloomFilterDumpChunk::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - errors::invalid_type_error
    - into_iter
    - next
    - Ok
    - is_some
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - con
    - key
    argTypes:
    - '&''a mut Connection'
    - '&''a str'
    constantsTouched: []
    func_position:
      end: 304
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 304
    functionName: BloomFilterDumpIterator::new
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(con: &''a mut Connection, key: &''a str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bf_scandump
      Src: /src/redis-rs/redis/src/bloom.rs:315,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/bloom.rs:323,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/bloom.rs:328,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/bloom.rs:328,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 331
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 331
    functionName: BloomFilterDumpIterator::next
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - Err
    - Some
    - bf_scandump
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/src/bloom.rs:346,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/bloom.rs:346,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:349,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 354
      start: 342
    functionDepth: 9
    functionLinenumber: 342
    functionLinenumberEnd: 354
    functionName: tests::info_type_response_from_value_wrong_type
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - '&str::to_string'
    - Result::expect_err
    - Value::SimpleString
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_wrong_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/bloom.rs:361,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:364,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 358
    functionDepth: 9
    functionLinenumber: 358
    functionLinenumberEnd: 369
    functionName: tests::info_type_response_from_value_array_missing_item
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Result::expect_err
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_array_missing_item()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/bloom.rs:376,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:379,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 384
      start: 373
    functionDepth: 9
    functionLinenumber: 373
    functionLinenumberEnd: 384
    functionName: tests::info_type_response_from_value_array_extra_item
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Result::expect_err
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_array_extra_item()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/bloom.rs:391,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:394,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 399
      start: 388
    functionDepth: 9
    functionLinenumber: 388
    functionLinenumberEnd: 399
    functionName: tests::info_type_response_from_value_array_wrong_type
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Result::expect_err
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_array_wrong_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/bloom.rs:406,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:409,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 414
      start: 403
    functionDepth: 9
    functionLinenumber: 403
    functionLinenumberEnd: 414
    functionName: tests::info_type_response_from_value_map_missing_item
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Result::expect_err
    - Value::Map
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_map_missing_item()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/bloom.rs:421,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:427,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 418
    functionDepth: 9
    functionLinenumber: 418
    functionLinenumberEnd: 432
    functionName: tests::info_type_response_from_value_map_extra_item
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Result::expect_err
    - Value::Map
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_map_extra_item()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/bloom.rs:440,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:443,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 448
      start: 436
    functionDepth: 9
    functionLinenumber: 436
    functionLinenumberEnd: 448
    functionName: tests::info_type_response_from_value_map_wrong_type
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Result::expect_err
    - Value::Map
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_map_wrong_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/bloom.rs:455,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:458,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis/src/bloom.rs:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 452
    functionDepth: 9
    functionLinenumber: 452
    functionLinenumberEnd: 463
    functionName: tests::info_type_response_from_value_ok_resp2
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Result::expect
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_ok_resp2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/bloom.rs:470,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:476,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis/src/bloom.rs:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 467
    functionDepth: 9
    functionLinenumber: 467
    functionLinenumberEnd: 481
    functionName: tests::info_type_response_from_value_ok_resp3
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Value::Map
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_ok_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/bloom.rs:487,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:490,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis/src/bloom.rs:490,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 485
    functionDepth: 9
    functionLinenumber: 485
    functionLinenumberEnd: 495
    functionName: tests::info_type_response_from_value_ok_int
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Value::Int
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_ok_int()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/src/bloom.rs:501,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/bloom.rs:501,1
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:504,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis/src/bloom.rs:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 499
    functionDepth: 9
    functionLinenumber: 499
    functionLinenumberEnd: 509
    functionName: tests::info_type_response_from_value_ok_float_in_string
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - '&str::to_string'
    - Value::SimpleString
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_ok_float_in_string()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BloomFilterInfoTypeResponse::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:518,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis/src/bloom.rs:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 523
      start: 513
    functionDepth: 9
    functionLinenumber: 513
    functionLinenumberEnd: 523
    functionName: tests::info_type_response_from_value_ok_nil
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterInfoTypeResponse::from_redis_value
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn info_type_response_from_value_ok_nil()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/bloom.rs:530,1
    - Dst: BloomFilterDumpChunk::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:534,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 538
    functionName: tests::dump_chunk_from_value_no_array
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterDumpChunk::from_redis_value
    - Value::Int
    - Result::expect_err
    linkageType: ''
    returnType: void
    signature: fn dump_chunk_from_value_no_array()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/bloom.rs:545,1
    - Dst: BloomFilterDumpChunk::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:552,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 556
      start: 542
    functionDepth: 3
    functionLinenumber: 542
    functionLinenumberEnd: 556
    functionName: tests::dump_chunk_from_value_first_item_wrong_type
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterDumpChunk::from_redis_value
    - Result::expect_err
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn dump_chunk_from_value_first_item_wrong_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/bloom.rs:563,1
    - Dst: BloomFilterDumpChunk::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:567,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 560
    functionDepth: 3
    functionLinenumber: 560
    functionLinenumberEnd: 571
    functionName: tests::dump_chunk_from_value_second_item_wrong_type
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterDumpChunk::from_redis_value
    - Result::expect_err
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn dump_chunk_from_value_second_item_wrong_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/bloom.rs:578,1
    - Dst: BloomFilterDumpChunk::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:582,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 586
      start: 575
    functionDepth: 3
    functionLinenumber: 575
    functionLinenumberEnd: 586
    functionName: tests::dump_chunk_from_value_missing_item
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterDumpChunk::from_redis_value
    - Result::expect_err
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn dump_chunk_from_value_missing_item()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/bloom.rs:593,1
    - Dst: BloomFilterDumpChunk::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:601,1
    - Dst: Result::expect_err
      Src: /src/redis-rs/redis/src/bloom.rs:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 605
      start: 590
    functionDepth: 3
    functionLinenumber: 590
    functionLinenumberEnd: 605
    functionName: tests::dump_chunk_from_value_extra_item
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterDumpChunk::from_redis_value
    - Result::expect_err
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn dump_chunk_from_value_extra_item()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/bloom.rs:611,1
    - Dst: BloomFilterDumpChunk::from_redis_value
      Src: /src/redis-rs/redis/src/bloom.rs:618,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis/src/bloom.rs:618,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis/src/bloom.rs:623,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/bloom.rs:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 626
      start: 609
    functionDepth: 5
    functionLinenumber: 609
    functionLinenumberEnd: 626
    functionName: tests::dump_chunk_from_value_ok
    functionSourceFile: /src/redis-rs/redis/src/bloom.rs
    functionUses: 0
    functionsReached:
    - BloomFilterDumpChunk::from_redis_value
    - to_vec
    - '&str::as_bytes'
    - Value::Array
    - Result::expect
    linkageType: ''
    returnType: void
    signature: fn dump_chunk_from_value_ok()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Sha1::new
      Src: /src/redis-rs/redis/src/script.rs:36,1
    - Dst: update
      Src: /src/redis-rs/redis/src/script.rs:37,1
    - Dst: Option::as_bytes
      Src: /src/redis-rs/redis/src/script.rs:37,1
    - Dst: Option::to_string
      Src: /src/redis-rs/redis/src/script.rs:39,1
    - Dst: digest
      Src: /src/redis-rs/redis/src/script.rs:40,1
    - Dst: String::to_string
      Src: /src/redis-rs/redis/src/script.rs:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - code
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 11
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: Script::new
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 10
    functionsReached:
    - Sha1::new
    - Option::as_bytes
    - digest
    - Option::to_string
    - update
    - String::to_string
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(code: &str) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Script::get_hash
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: pub fn get_hash(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/script.rs:51,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/script.rs:52,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/script.rs:52,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/script.rs:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 25
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Script::load_cmd
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - cmd
    - as_bytes
    - '&mut Self::arg'
    - Cmd::arg
    linkageType: ''
    returnType: Cmd
    signature: pub(crate) fn load_cmd(&self) -> Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Script::load_cmd
      Src: /src/redis-rs/redis/src/script.rs:59,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/script.rs:59,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/script.rs:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 26
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: Script::load
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Cmd::query
    - Ok
    - Script::load_cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn load(&self, con: &mut dyn ConnectionLike) -> RedisResult<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Script::load_cmd
      Src: /src/redis-rs/redis/src/script.rs:73,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/script.rs:73,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/script.rs:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 78
      start: 69
    functionDepth: 26
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: Script::load_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Cmd::query_async
    - Ok
    - Script::load_cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn load_async<C>(&self, con: &mut C) -> RedisResult<String>whereC:
      crate::aio::ConnectionLike,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/script.rs:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: Script::key
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - to_redis_args
    linkageType: ''
    returnType: ScriptInvocation
    signature: 'pub fn key<T: ToRedisArgs>(&self, key: T) -> ScriptInvocation<''_>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/script.rs:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 98
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 98
    functionName: Script::arg
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - to_redis_args
    linkageType: ''
    returnType: ScriptInvocation
    signature: 'pub fn arg<T: ToRedisArgs>(&self, arg: T) -> ScriptInvocation<''_>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: Script::prepare_invoke
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ScriptInvocation
    signature: pub fn prepare_invoke(&self) -> ScriptInvocation<'_>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: invoke
      Src: /src/redis-rs/redis/src/script.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: Script::invoke
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - invoke
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn invoke<T: FromRedisValue>(&self, con: &mut dyn ConnectionLike)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: invoke_async
      Src: /src/redis-rs/redis/src/script.rs:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 138
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 138
    functionName: Script::invoke_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - invoke_async
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn invoke_async<C, T>(&self, con: &mut C) -> RedisResult<T>whereC:
      crate::aio::ConnectionLike,T: FromRedisValue,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/script.rs:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 24
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: ScriptInvocation::arg
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    linkageType: ''
    returnType: '&''b mut Self'
    signature: 'pub fn arg<''b, T: ToRedisArgs>(&''b mut self, arg: T) -> &''b mut
      Selfwhere''a: ''b,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/script.rs:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 173
      start: 167
    functionDepth: 24
    functionLinenumber: 167
    functionLinenumberEnd: 173
    functionName: ScriptInvocation::key
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    linkageType: ''
    returnType: '&''b mut Self'
    signature: 'pub fn key<''b, T: ToRedisArgs>(&''b mut self, key: T) -> &''b mut
      Selfwhere''a: ''b,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScriptInvocation::eval_cmd
      Src: /src/redis-rs/redis/src/script.rs:178,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/script.rs:179,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/script.rs:180,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/script.rs:182,1
    - Dst: ErrorKind::Server
      Src: /src/redis-rs/redis/src/script.rs:182,1
    - Dst: ScriptInvocation::load
      Src: /src/redis-rs/redis/src/script.rs:183,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/script.rs:184,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/script.rs:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 190
      start: 177
    functionDepth: 27
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: ScriptInvocation::invoke
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - kind
    - Err
    - ErrorKind::Server
    - Cmd::query
    - ScriptInvocation::load
    - Ok
    - ScriptInvocation::eval_cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn invoke<T: FromRedisValue>(&self, con: &mut dyn ConnectionLike)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ScriptInvocation::eval_cmd
      Src: /src/redis-rs/redis/src/script.rs:199,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/script.rs:200,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/script.rs:203,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/script.rs:207,1
    - Dst: ErrorKind::Server
      Src: /src/redis-rs/redis/src/script.rs:207,1
    - Dst: ScriptInvocation::load_async
      Src: /src/redis-rs/redis/src/script.rs:208,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/script.rs:209,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/script.rs:211,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 215
      start: 195
    functionDepth: 25
    functionLinenumber: 195
    functionLinenumberEnd: 215
    functionName: ScriptInvocation::invoke_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - kind
    - Cmd::query_async
    - ErrorKind::Server
    - Err
    - ScriptInvocation::load_async
    - Ok
    - ScriptInvocation::eval_cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn invoke_async<T: FromRedisValue>(&self,con: &mut impl
      crate::aio::ConnectionLike,) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/redis-rs/redis/src/script.rs:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 221
    functionName: ScriptInvocation::load
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 2
    functionsReached:
    - load
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn load(&self, con: &mut dyn ConnectionLike) -> RedisResult<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load_async
      Src: /src/redis-rs/redis/src/script.rs:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 27
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: ScriptInvocation::load_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 2
    functionsReached:
    - load_async
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn load_async<C>(&self, con: &mut C) -> RedisResult<String>whereC:
      crate::aio::ConnectionLike,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/script.rs:234,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/script.rs:234,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/script.rs:237,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/script.rs:234,1
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/script.rs:238,1
    - Dst: len
      Src: /src/redis-rs/redis/src/script.rs:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 12
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: ScriptInvocation::estimate_buflen
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::len
    - len
    - fold
    - iter
    - chain
    linkageType: ''
    returnType: usize
    signature: fn estimate_buflen(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/script.rs:246,1
    - Dst: len
      Src: /src/redis-rs/redis/src/script.rs:246,1
    - Dst: Cmd::with_capacity
      Src: /src/redis-rs/redis/src/script.rs:247,1
    - Dst: ScriptInvocation::estimate_buflen
      Src: /src/redis-rs/redis/src/script.rs:247,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/script.rs:248,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/script.rs:248,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/script.rs:249,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/script.rs:248,1
    - Dst: len
      Src: /src/redis-rs/redis/src/script.rs:250,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/script.rs:248,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/script.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 25
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: ScriptInvocation::eval_cmd
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 2
    functionsReached:
    - '&mut Self::arg'
    - len
    - arg
    - Cmd::arg
    - Cmd::with_capacity
    - as_bytes
    - ScriptInvocation::estimate_buflen
    linkageType: ''
    returnType: Cmd
    signature: pub(crate) fn eval_cmd(&self) -> Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Script::new
      Src: /src/redis-rs/redis/src/script.rs:263,1
    - Dst: key
      Src: /src/redis-rs/redis/src/script.rs:264,1
    - Dst: estimate_buflen
      Src: /src/redis-rs/redis/src/script.rs:265,1
    - Dst: eval_cmd
      Src: /src/redis-rs/redis/src/script.rs:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 273
      start: 262
    functionDepth: 26
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: tests::script_eval_should_work
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Script::new
    - eval_cmd
    - estimate_buflen
    - key
    linkageType: ''
    returnType: void
    signature: fn script_eval_should_work()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: io::Error::from
      Src: /src/redis-rs/redis/src/aio/runtime.rs:191,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/aio/runtime.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames: []
    argTypes:
    - Elapsed
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: RedisError::from
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 28
    functionsReached:
    - Self::into
    - io::Error::from
    linkageType: ''
    returnType: Self
    signature: 'fn from(_: Elapsed) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&Self'
    constantsTouched: []
    func_position:
      end: 97
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 97
    functionName: RedisError::eq
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &Self) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:154,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:155,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: RedisError::source
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn source(&self) -> Option<&(dyn error::Error + 'static)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:172,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:173,1
    - Dst: fmt::Debug::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:174,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:176,1
    - Dst: Option::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:177,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:179,1
    - Dst: std::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:182,1
    - Dst: std::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:183,1
    - Dst: std::fmt
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:184,1
    - Dst: len
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:186,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:187,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:189,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:192,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:200,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:203,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:206,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:214,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 77
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 217
      start: 169
    functionDepth: 11
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: RedisError::fmt
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - len
    - Option::fmt
    - Ok
    - iter
    - std::fmt
    - fmt::Debug::fmt
    - write_str
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> Result<(), fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:250,1
    - Dst: ErrorKind::Server
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:251,1
    - Dst: first
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:254,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:254,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:256,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:256,1
    - Dst: PushKind::into
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:256,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:254,1
    - Dst: ErrorKind::Server
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 260
      start: 246
    functionDepth: 7
    functionLinenumber: 246
    functionLinenumberEnd: 260
    functionName: RedisError::kind
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - kind
    - PushKind::into
    - and_then
    - ErrorKind::Server
    - map
    - unwrap_or
    - first
    linkageType: ''
    returnType: ErrorKind
    signature: pub fn kind(&self) -> ErrorKind
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::as_ref
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:265,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:265,1
    - Dst: Option::as_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:265,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:266,1
    - Dst: details
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:267,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 263
    functionDepth: 7
    functionLinenumber: 263
    functionLinenumberEnd: 270
    functionName: RedisError::detail
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - details
    - map
    - Option::as_ref
    - Option::as_str
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn detail(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:274,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:275,1
    - Dst: PushKind::code
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:275,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:277,1
    - Dst: code
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 281
      start: 273
    functionDepth: 8
    functionLinenumber: 273
    functionLinenumberEnd: 281
    functionName: RedisError::code
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - RedisError::kind
    - Some
    - code
    - PushKind::code
    linkageType: ''
    returnType: Option
    signature: pub fn code(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 284
    functionDepth: 8
    functionLinenumber: 284
    functionLinenumberEnd: 317
    functionName: RedisError::category
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - RedisError::kind
    linkageType: ''
    returnType: '&str'
    signature: pub fn category(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 322
      start: 320
    functionDepth: 8
    functionLinenumber: 320
    functionLinenumberEnd: 322
    functionName: RedisError::is_io_error
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - RedisError::kind
    linkageType: ''
    returnType: bool
    signature: pub fn is_io_error(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: downcast_ref
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 329
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 329
    functionName: RedisError::as_io_error
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - downcast_ref
    linkageType: ''
    returnType: Option
    signature: pub(crate) fn as_io_error(&self) -> Option<&io::Error>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 340
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 340
    functionName: RedisError::is_cluster_error
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_cluster_error(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::as_io_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:347,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:347,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 358
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 358
    functionName: RedisError::is_connection_refusal
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - kind
    - RedisError::as_io_error
    - Option::is_some_and
    linkageType: ''
    returnType: bool
    signature: pub fn is_connection_refusal(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::as_io_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:363,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 369
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 369
    functionName: RedisError::is_timeout
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - RedisError::as_io_error
    - Option::is_some_and
    linkageType: ''
    returnType: bool
    signature: pub fn is_timeout(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::as_io_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:375,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 390
    functionName: RedisError::is_connection_dropped
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - RedisError::as_io_error
    - Option::is_some_and
    linkageType: ''
    returnType: bool
    signature: pub fn is_connection_dropped(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::retry_method
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 405
    functionName: RedisError::is_unrecoverable_error
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - RedisError::retry_method
    linkageType: ''
    returnType: bool
    signature: pub fn is_unrecoverable_error(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::detail
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:417,1
    - Dst: split_ascii_whitespace
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:417,1
    - Dst: next
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:418,1
    - Dst: parse
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:418,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:418,1
    - Dst: next
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:419,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:420,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 8
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: RedisError::redirect_node
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - split_ascii_whitespace
    - RedisError::detail
    - next
    - ok
    - Some
    - parse
    linkageType: ''
    returnType: Option
    signature: pub fn redirect_node(&self) -> Option<(&str, u16)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:430,1
    - Dst: retry_method
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:431,1
    - Dst: RedisError::is_connection_dropped
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:450,1
    - Dst: RedisError::as_io_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:453,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:453,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:454,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 465
      start: 429
    functionDepth: 8
    functionLinenumber: 429
    functionLinenumberEnd: 465
    functionName: RedisError::retry_method
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - kind
    - Option::map
    - RedisError::is_connection_dropped
    - unwrap_or
    - retry_method
    - RedisError::kind
    - RedisError::as_io_error
    linkageType: ''
    returnType: RetryMethod
    signature: pub fn retry_method(&self) -> RetryMethod
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:473,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:474,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:475,1
    - Dst: Arc::from
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 478
      start: 471
    functionDepth: 2
    functionLinenumber: 471
    functionLinenumberEnd: 478
    functionName: RedisError::into_server_errors
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Some
    - Arc::from
    linkageType: ''
    returnType: Option
    signature: pub fn into_server_errors(self) -> Option<Arc<[(usize, ServerError)]>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorRepr::Pipeline
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:482,1
    - Dst: Arc::from
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - errors
    argTypes:
    - Vec<(usize, ServerError)>
    constantsTouched: []
    func_position:
      end: 484
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 484
    functionName: RedisError::pipeline
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - ErrorRepr::Pipeline
    - Arc::from
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn pipeline(errors: Vec<(usize, ServerError)>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorRepr::TransactionAborted
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:488,1
    - Dst: Arc::from
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - errs
    argTypes:
    - Vec<(usize, ServerError)>
    constantsTouched: []
    func_position:
      end: 490
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 490
    functionName: RedisError::make_aborted_transaction
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - ErrorRepr::TransactionAborted
    - Arc::from
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn make_aborted_transaction(errs: Vec<(usize, ServerError)>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorRepr::General
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 496
    functionName: RedisError::make_empty_command
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - ErrorRepr::General
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn make_empty_command() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorRepr::Server
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:514,1
    - Dst: '{

        ParsingError,

        errors::server_error::ServerError'
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:514,1
    - Dst: Option::into
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:515,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:516,1
    - Dst: Option::into
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - code
    - detail
    argTypes:
    - String
    - Option<String>
    constantsTouched: []
    func_position:
      end: 519
      start: 512
    functionDepth: 7
    functionLinenumber: 512
    functionLinenumberEnd: 519
    functionName: make_extension_error
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - Option::into
    - '{

      ParsingError,

      errors::server_error::ServerError'
    - Option::map
    - ErrorRepr::Server
    linkageType: ''
    returnType: RedisError
    signature: 'pub fn make_extension_error(code: String, detail: Option<String>)
      -> RedisError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::Server
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kind
    argTypes:
    - ServerErrorKind
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 556
    functionName: ErrorKind::from
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Self::Server
    linkageType: ''
    returnType: Self
    signature: 'fn from(kind: ServerErrorKind) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:572,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - RedisError
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: ServerError::try_from
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(err: RedisError) -> Result<Self, RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:584,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:584,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:584,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:584,1
    - Dst: redirect_node
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:588,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 24
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: tests::test_redirect_node
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - redirect_node
    - extract_error
    - unwrap_err
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_redirect_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 58
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 58
    functionName: ServerErrorKind::code
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static str'
    signature: pub(crate) fn code(self) -> &'static str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 81
    functionName: ServerErrorKind::retry_method
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RetryMethod
    signature: pub(crate) fn retry_method(self) -> RetryMethod
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/server_error.rs:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: ServerError::kind
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: pub fn kind(&self) -> Option<ServerErrorKind>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PushKind::code
      Src: /src/redis-rs/redis/src/errors/server_error.rs:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 9
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: ServerError::code
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached:
    - PushKind::code
    linkageType: ''
    returnType: '&str'
    signature: pub fn code(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::as_ref
      Src: /src/redis-rs/redis/src/errors/server_error.rs:120,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/server_error.rs:120,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/errors/server_error.rs:120,1
    - Dst: Option::as_ref
      Src: /src/redis-rs/redis/src/errors/server_error.rs:121,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/server_error.rs:121,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/errors/server_error.rs:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 7
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: ServerError::details
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached:
    - as_str
    - map
    - Option::as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn details(&self) -> Option<&str>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: ServerError::requires_action
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub(crate) fn requires_action(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fmt::Debug::fmt
      Src: /src/redis-rs/redis/src/errors/server_error.rs:140,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/server_error.rs:142,1
    - Dst: Option::fmt
      Src: /src/redis-rs/redis/src/errors/server_error.rs:143,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/errors/server_error.rs:145,1
    - Dst: fmt::Debug::fmt
      Src: /src/redis-rs/redis/src/errors/server_error.rs:148,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/server_error.rs:150,1
    - Dst: Option::fmt
      Src: /src/redis-rs/redis/src/errors/server_error.rs:151,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/errors/server_error.rs:153,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 156
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 156
    functionName: ServerError::fmt
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached:
    - Option::fmt
    - fmt::Debug::fmt
    - write_str
    - Ok
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/errors/mod.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 13
      start: 9
    functionDepth: 1
    functionLinenumber: 9
    functionLinenumberEnd: 13
    functionName: invalid_type_error_inner
    functionSourceFile: /src/redis-rs/redis/src/errors/mod.rs
    functionUses: 0
    functionsReached:
    - ParsingError::from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fail
      Src: /src/redis-rs/redis/src/errors/mod.rs:1,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 18
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 18
    functionName: invalid_type_error
    functionSourceFile: /src/redis-rs/redis/src/errors/mod.rs
    functionUses: 2
    functionsReached:
    - fail
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/errors/mod.rs:27,1
    - Dst: io::Error::from
      Src: /src/redis-rs/redis/src/errors/mod.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: closed_connection_error
    functionSourceFile: /src/redis-rs/redis/src/errors/mod.rs
    functionUses: 1
    functionsReached:
    - RedisError::from
    - io::Error::from
    linkageType: ''
    returnType: RedisError
    signature: pub(crate) fn closed_connection_error() -> RedisError
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/errors/mod.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: tests::test_closed_connection_error
    functionSourceFile: /src/redis-rs/redis/src/errors/mod.rs
    functionUses: 0
    functionsReached:
    - closed_connection_error
    linkageType: ''
    returnType: void
    signature: fn test_closed_connection_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/parsing_error.rs:13,1
    - Dst: std::fmt
      Src: /src/redis-rs/redis/src/errors/parsing_error.rs:14,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: ParsingError::fmt
    functionSourceFile: /src/redis-rs/redis/src/errors/parsing_error.rs
    functionUses: 0
    functionsReached:
    - write_str
    - std::fmt
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - err
    argTypes:
    - ArcStr
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: ParsingError::from
    functionSourceFile: /src/redis-rs/redis/src/errors/parsing_error.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(err: ArcStr) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: TcpSettings::nodelay
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn nodelay(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/io/tcp.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: TcpSettings::keepalive
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn keepalive(&self) -> Option<&socket2::TcpKeepalive>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: TcpSettings::user_timeout
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn user_timeout(&self) -> Option<Duration>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - nodelay
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: TcpSettings::set_nodelay
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_nodelay(self, nodelay: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/io/tcp.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keepalive
    argTypes:
    - socket2::TcpKeepalive
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: TcpSettings::set_keepalive
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_keepalive(self, keepalive: socket2::TcpKeepalive) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/io/tcp.rs:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - linger
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 68
    functionName: TcpSettings::set_linger_time
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_linger_time(self, linger: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/io/tcp.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user_timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: TcpSettings::set_user_timeout
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_user_timeout(self, user_timeout: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: TcpSettings::default
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TcpStream::set_nodelay
      Src: /src/redis-rs/redis/src/io/tcp.rs:98,1
    - Dst: TcpStream::into
      Src: /src/redis-rs/redis/src/io/tcp.rs:101,1
    - Dst: set_tcp_keepalive
      Src: /src/redis-rs/redis/src/io/tcp.rs:103,1
    - Dst: set_linger
      Src: /src/redis-rs/redis/src/io/tcp.rs:106,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/io/tcp.rs:106,1
    - Dst: set_tcp_user_timeout
      Src: /src/redis-rs/redis/src/io/tcp.rs:109,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/io/tcp.rs:110,1
    - Dst: into
      Src: /src/redis-rs/redis/src/io/tcp.rs:110,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/io/tcp.rs:114,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 2
    argNames:
    - socket
    - settings
    argTypes:
    - TcpStream
    - '&TcpSettings'
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: stream_with_settings
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 2
    functionsReached:
    - set_linger
    - into
    - set_tcp_keepalive
    - Ok
    - Some
    - set_tcp_user_timeout
    - TcpStream::into
    - TcpStream::set_nodelay
    linkageType: ''
    returnType: io::Result
    signature: 'pub(crate) fn stream_with_settings(socket: TcpStream,settings: &TcpSettings,)
      -> io::Result<TcpStream>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:73,1
    - Dst: ErrorOrErrors::Errors
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:74,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - expectation
    argTypes:
    - Option<PipelineResponseExpectation>
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 11
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: ResponseAggregate::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - ErrorOrErrors::Errors
    - Vec::new
    linkageType: ''
    returnType: Self
    signature: 'fn new(expectation: Option<PipelineResponseExpectation>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_tuple
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:109,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:109,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 22
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Pipeline::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - debug_tuple
    - field
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - push_sender
    - info
    argTypes:
    - '&Option<Arc<dyn AsyncPushSender>>'
    - PushInfo
    constantsTouched: []
    func_position:
      end: 140
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 140
    functionName: send_push
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 2
    functionsReached:
    - Self::send
    linkageType: ''
    returnType: void
    signature: 'fn send_push(push_sender: &Option<Arc<dyn AsyncPushSender>>, info:
      PushInfo)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: send_push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:143,1
    - Dst: PushInfo::disconnect
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - push_sender
    argTypes:
    - '&Option<Arc<dyn AsyncPushSender>>'
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: send_disconnect
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 2
    functionsReached:
    - PushInfo::disconnect
    - send_push
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn send_disconnect(push_sender: &Option<Arc<dyn AsyncPushSender>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: VecDeque::new
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sink_stream
    - sender
    argTypes:
    - T
    - UnboundedSender<Msg>
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 11
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: PipelineSink::new
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 1
    functionsReached:
    - VecDeque::new
    linkageType: ''
    returnType: Self
    signature: 'fn new(sink_stream: T, sender: UnboundedSender<Msg>) -> SelfwhereT:
      Sink<Vec<u8>, Error = RedisError> + Stream<Item = RedisResult<Value>> + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::as_mut
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:97,1
    - Dst: project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:97,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:98,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:99,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:99,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:106,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:106,1
    - Dst: PipelineSink::as_mut
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:108,1
    - Dst: handle_message
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 110
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 110
    functionName: PipelineSink::poll_read
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - handle_message
    - Poll::Ready
    - project
    - Err
    - PipelineSink::as_mut
    - is_closed
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_read(mut self: Pin<&mut Self>, cx: &mut task::Context) ->
      Poll<Result<(), ()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::project
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:189,1
    - Dst: PushKind::has_reply
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:192,1
    - Dst: Self::handle_push_value
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:195,1
    - Dst: send_push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:197,1
    - Dst: PushKind::has_reply
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:202,1
    - Dst: send_push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:203,1
    - Dst: PushKind::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:206,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:207,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:210,1
    - Dst: pop_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:215,1
    - Dst: take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:222,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:223,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:244,1
    - Dst: ErrorOrErrors::FirstError
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:246,1
    - Dst: push_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:252,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:258,1
    - Dst: ErrorOrErrors::FirstError
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:262,1
    - Dst: len
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:267,1
    - Dst: push_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:269,1
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:274,1
    - Dst: ErrorOrErrors::Errors
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:274,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:274,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:276,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:277,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:277,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:277,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:279,1
    - Dst: RedisError::make_aborted_transaction
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:279,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:282,1
    - Dst: take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:288,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:289,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 125
    argCount: 2
    argNames:
    - result
    argTypes:
    - Pin<&mut Self>
    - RedisResult<Value>
    constantsTouched: []
    func_position:
      end: 293
      start: 188
    functionDepth: 22
    functionLinenumber: 188
    functionLinenumberEnd: 293
    functionName: PipelineSink::send_result
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - len
    - Err
    - Ok
    - PushKind::clone
    - std::mem::take
    - clone
    - take
    - send
    - Self::handle_push_value
    - ErrorOrErrors::FirstError
    - ErrorOrErrors::Errors
    - std::mem::replace
    - is_empty
    - send_push
    - pop_front
    - PipelineSink::project
    - RedisError::make_aborted_transaction
    - push
    - push_front
    - Value::Array
    - PushKind::has_reply
    - Vec::new
    linkageType: ''
    returnType: void
    signature: 'fn send_result(self: Pin<&mut Self>, result: RedisResult<Value>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::as_mut
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:178,1
    - Dst: project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:178,1
    - Dst: poll_ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:178,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 183
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 183
    functionName: PipelineSink::poll_ready
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - map_err
    - PipelineSink::as_mut
    - project
    - poll_ready
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_ready(mut self: Pin<&mut Self>,cx: &mut task::Context,) ->
      Poll<Result<(), Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::as_mut
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:189,1
    - Dst: project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:189,1
    - Dst: start_send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:191,1
    - Dst: push_back
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:193,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:194,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:197,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:197,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:198,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 2
    argNames: []
    argTypes:
    - Pin<&mut Self>
    - PipelineMessage
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: PipelineSink::start_send
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - push_back
    - project
    - send
    - Err
    - PipelineSink::as_mut
    - start_send
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn start_send(mut self: Pin<&mut Self>,PipelineMessage'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::poll_read
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 217
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 217
    functionName: PipelineSink::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - PipelineSink::poll_read
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>,cx: &mut task::Context,) ->
      Poll<Result<(), Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:225,1
    - Dst: PipelineSink::as_mut
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:228,1
    - Dst: project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:228,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:230,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:231,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:231,1
    - Dst: PipelineSink::handle_message
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:236,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:239,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 241
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 241
    functionName: PipelineSink::poll_close
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - project
    - Poll::Ready
    - PipelineSink::handle_message
    - PipelineSink::as_mut
    - Ok
    - is_closed
    - is_empty
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_close(mut self: Pin<&mut Self>,cx: &mut task::Context,) ->
      Poll<Result<(), Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: Pipeline::resolve_buffer_size
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    linkageType: ''
    returnType: usize
    signature: 'fn resolve_buffer_size(size: Option<usize>) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<u8>::is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:449,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:450,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:450,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:455,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:455,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:464,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:467,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:469,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:473,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:469,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:478,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:478,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:482,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:486,1
    - Dst: Self::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:486,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:488,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:488,1
    - Dst: into
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:488,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:485,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:492,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 4
    argNames:
    - input
    - expectation
    - timeout
    - skip_response
    argTypes:
    - Vec<u8>
    - Option<PipelineResponseExpectation>
    - Option<Duration>
    - bool
    constantsTouched: []
    func_position:
      end: 493
      start: 440
    functionDepth: 24
    functionLinenumber: 440
    functionLinenumberEnd: 493
    functionName: Pipeline::send_recv
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - send
    - map_err
    - Vec<u8>::is_empty
    - Err
    - and_then
    - Self::timeout
    - into
    - oneshot::channel
    - unwrap_or_else
    - Ok
    - RedisError::make_empty_command
    - Runtime::locate
    - Some
    linkageType: ''
    returnType: Result
    signature: 'async fn send_recv(&mut self,input: Vec<u8>,// If `None`, this is
      a single request, not a pipeline of multiple requests.// If `Some`, the value
      inside defines how the response should look likeexpectation: Option<PipelineResponseExpectation>,timeout:
      Option<Duration>,skip_response: bool,) -> Result<Value, RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:506,1
    - Dst: max
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:506,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - count
    - limit
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 507
      start: 505
    functionDepth: 26
    functionLinenumber: 505
    functionLinenumberEnd: 507
    functionName: permit_vec_capacity
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - min
    - max
    linkageType: ''
    returnType: usize
    signature: 'fn permit_vec_capacity(count: usize, limit: usize) -> usize'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:512,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:512,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:516,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:516,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:518,1
    - Dst: async_lock::Semaphore::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:518,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:520,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - limit
    argTypes:
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 522
      start: 510
    functionDepth: 11
    functionLinenumber: 510
    functionLinenumberEnd: 522
    functionName: build_concurrency_limiter
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Err
    - async_lock::Semaphore::new
    - RedisError::from
    - Arc::new
    - Ok
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'fn build_concurrency_limiter(limit: Option<usize>) -> RedisResult<Option<ConcurrencyLimiter>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cfg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:566,1
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:570,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:570,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:570,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:570,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:570,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 576
      start: 556
    functionDepth: 26
    functionLinenumber: 556
    functionLinenumberEnd: 576
    functionName: MultiplexedConnection::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - field
    - finish
    - cfg
    - debug_struct
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:589,1
    - Dst: AsyncConnectionConfig::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:589,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - connection_info
    - stream
    argTypes:
    - '&RedisConnectionInfo'
    - C
    constantsTouched: []
    func_position:
      end: 590
      start: 582
    functionDepth: 20
    functionLinenumber: 582
    functionLinenumberEnd: 590
    functionName: MultiplexedConnection::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Self::new_with_config
    - AsyncConnectionConfig::default
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn new<C>(connection_info: &RedisConnectionInfo,stream:
      C,) -> RedisResult<(Self, impl Future<Output = ()>)>whereC: Unpin + AsyncRead
      + AsyncWrite + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:602,1
    - Dst: Self::framed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:602,1
    - Dst: set_backpressure_boundary
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:604,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:606,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:607,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:614,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:614,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:620,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:623,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:629,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:629,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:632,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:620,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:638,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:640,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:645,1
    - Dst: next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:645,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:647,1
    - Dst: ArcStr::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:647,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:648,1
    - Dst: ArcStr::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:648,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:652,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:655,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:660,1
    - Dst: setup_connection
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:665,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:672,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:673,1
    - Dst: Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:679,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:683,1
    - Dst: Pipeline::resolve_buffer_size
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:684,1
    - Dst: build_concurrency_limiter
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:687,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:705,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:706,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:708,1
    - Dst: Self::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:708,1
    - Dst: next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:709,1
    - Dst: re_authenticate_with_credentials
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:712,1
    - Dst: is_connection_dropped
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:716,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:735,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:737,1
    - Dst: SharedHandleContainer::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:737,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:746,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 143
    argCount: 3
    argNames:
    - connection_info
    - stream
    - config
    argTypes:
    - '&RedisConnectionInfo'
    - C
    - AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 747
      start: 594
    functionDepth: 32
    functionLinenumber: 594
    functionLinenumberEnd: 747
    functionName: MultiplexedConnection::new_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 1
    functionsReached:
    - Err
    - RedisError::from
    - build_concurrency_limiter
    - Self::framed
    - Ok
    - ArcStr::from
    - Some
    - Runtime::locate
    - map
    - Self::spawn
    - clone
    - next
    - as_ref
    - set_backpressure_boundary
    - Pipeline::resolve_buffer_size
    - ValueCodec::default
    - is_connection_dropped
    - transpose
    - Pipeline::new
    - redis::ConnectionInfo::clone
    - CacheManager::new
    - setup_connection
    - re_authenticate_with_credentials
    - check_resp3
    - subscribe
    - SharedHandleContainer::new
    - is_some
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn new_with_config<C>(connection_info: &RedisConnectionInfo,stream:
      C,config: AsyncConnectionConfig,) -> RedisResult<(Self, impl Future<Output =
      ()> + ''static)>whereC: Unpin + AsyncRead + AsyncWrite + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:752,1
    - Dst: SharedHandleContainer::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TaskHandle
    constantsTouched: []
    func_position:
      end: 753
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 753
    functionName: MultiplexedConnection::set_task_handle
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - SharedHandleContainer::new
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn set_task_handle(&mut self, handle: TaskHandle)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - std::time::Duration
    constantsTouched: []
    func_position:
      end: 758
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 758
    functionName: MultiplexedConnection::set_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: void
    signature: 'pub fn set_response_timeout(&mut self, timeout: std::time::Duration)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:766,1
    - Dst: acquire
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:766,1
    - Dst: Self::get_cached_cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:772,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:773,1
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:775,1
    - Dst: pack_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:776,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:778,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:781,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:782,1
    - Dst: len
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:784,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:789,1
    - Dst: crate::types::from_redis_value
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:792,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:793,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:793,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:798,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:800,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:803,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 58
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 806
      start: 762
    functionDepth: 25
    functionLinenumber: 762
    functionLinenumberEnd: 806
    functionName: MultiplexedConnection::send_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - acquire
    - Cmd::is_no_response
    - len
    - resolve
    - pack_command
    - send_recv
    - get_packed_pipeline
    - Self::get_cached_cmd
    - Ok
    - crate::Pipeline::new
    - into_iter
    - Cmd::get_packed_command
    - crate::types::from_redis_value
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn send_packed_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: permit_vec_capacity
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:822,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:823,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:824,1
    - Dst: acquire
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:824,1
    - Dst: try_acquire
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:826,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:827,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:833,1
    - Dst: Self::get_cached_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:838,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:839,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:840,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:840,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:840,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:842,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:845,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:846,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:857,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:859,1
    - Dst: Cmd::get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:862,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:863,1
    - Dst: Cmd::is_transaction
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:866,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:874,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:875,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 72
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 877
      start: 811
    functionDepth: 27
    functionLinenumber: 811
    functionLinenumberEnd: 877
    functionName: MultiplexedConnection::send_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - try_acquire
    - acquire
    - resolve
    - permit_vec_capacity
    - push
    - send_recv
    - get_packed_pipeline
    - Ok
    - Self::get_cached_pipeline
    - Value::Array
    - Cmd::is_transaction
    - Some
    - is_empty
    - Vec::new
    - Vec::with_capacity
    - Cmd::get_packed_pipeline
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn send_packed_commands(&mut self,cmd: &crate::Pipeline,offset:
      usize,count: usize,) -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:883,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:883,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 884
      start: 882
    functionDepth: 7
    functionLinenumber: 882
    functionLinenumberEnd: 884
    functionName: MultiplexedConnection::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - statistics
    - map
    linkageType: ''
    returnType: Option
    signature: pub fn get_cache_statistics(&self) -> Option<CacheStatistics>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MultiplexedConnection::send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:889,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:889,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 890
      start: 888
    functionDepth: 26
    functionLinenumber: 888
    functionLinenumberEnd: 890
    functionName: MultiplexedConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - MultiplexedConnection::send_packed_command
    - boxed
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_command<''a>(&''a mut self, cmd: &''a Cmd) -> RedisFuture<''a,
      Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MultiplexedConnection::send_packed_commands
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:898,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pipeline
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 899
      start: 892
    functionDepth: 28
    functionLinenumber: 892
    functionLinenumberEnd: 899
    functionName: MultiplexedConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - MultiplexedConnection::send_packed_commands
    - boxed
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,pipeline: &''a crate::Pipeline,offset:
      usize,count: usize,) -> RedisFuture<''a, Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 903
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 903
    functionName: MultiplexedConnection::get_db
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: fn get_db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:924,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:925,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:926,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:927,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:928,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 929
      start: 923
    functionDepth: 25
    functionLinenumber: 923
    functionLinenumberEnd: 929
    functionName: MultiplexedConnection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn subscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:946,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:947,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:948,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:949,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:950,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 951
      start: 945
    functionDepth: 25
    functionLinenumber: 945
    functionLinenumberEnd: 951
    functionName: MultiplexedConnection::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn unsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:972,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:973,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:974,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:975,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 977
      start: 971
    functionDepth: 25
    functionLinenumber: 971
    functionLinenumberEnd: 977
    functionName: MultiplexedConnection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn psubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:983,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:984,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:985,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:986,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:987,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 988
      start: 982
    functionDepth: 25
    functionLinenumber: 982
    functionLinenumberEnd: 988
    functionName: MultiplexedConnection::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn punsubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::connection::authenticate_cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1002,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1002,1
    - Dst: MultiplexedConnection::send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1004,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1004,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1004,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - credentials
    argTypes:
    - '&crate::auth::BasicAuth'
    constantsTouched: []
    func_position:
      end: 1008
      start: 997
    functionDepth: 26
    functionLinenumber: 997
    functionLinenumberEnd: 1008
    functionName: MultiplexedConnection::re_authenticate_with_credentials
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - MultiplexedConnection::send_packed_command
    - map
    - crate::connection::authenticate_cmd
    - extract_error
    - Some
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn re_authenticate_with_credentials(&mut self,credentials: &crate::auth::BasicAuth,)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1018
    functionName: tests::test_pipeline_resolve_buffer_size_default
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_resolve_buffer_size_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1023
    functionName: tests::test_pipeline_resolve_buffer_size_custom
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_resolve_buffer_size_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1033
    functionName: tests::test_permit_vec_capacity_is_bounded_by_limit
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_permit_vec_capacity_is_bounded_by_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_concurrency_limiter
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1038,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1038,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1036
    functionDepth: 12
    functionLinenumber: 1036
    functionLinenumberEnd: 1040
    functionName: tests::test_build_concurrency_limiter_rejects_zero
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - build_concurrency_limiter
    - Some
    - RedisResult::unwrap_err
    linkageType: ''
    returnType: void
    signature: fn test_build_concurrency_limiter_rejects_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_concurrency_limiter
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1045,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1045,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1045,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1043
    functionDepth: 12
    functionLinenumber: 1043
    functionLinenumberEnd: 1047
    functionName: tests::test_build_concurrency_limiter_allows_none_and_positive
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - build_concurrency_limiter
    - Some
    - unwrap
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_build_concurrency_limiter_allows_none_and_positive()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1049
    functionDepth: 12
    functionLinenumber: 1049
    functionLinenumberEnd: 1054
    functionName: tests::mock_conn_info
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: RedisConnectionInfo
    signature: fn mock_conn_info() -> RedisConnectionInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::io::duplex
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1067,1
    - Dst: tokio::sync::mpsc::channel::<()>
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1068,1
    - Dst: tokio::sync::mpsc::channel::<()>
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1069,1
    - Dst: tokio::io::split
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1071,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1073,1
    - Dst: FramedRead::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1074,1
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1074,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1075,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1076,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1080,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1081,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1081,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1082,1
    - Dst: flush
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1083,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1087,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1087,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1087,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1087,1
    - Dst: MultiplexedConnection::new_with_config
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1093,1
    - Dst: mock_conn_info
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1093,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1093,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1096,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 1
    argNames:
    - concurrency_limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1099
      start: 1056
    functionDepth: 25
    functionLinenumber: 1056
    functionLinenumberEnd: 1099
    functionName: tests::create_mock_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - tokio::io::duplex
    - FramedRead::new
    - unwrap
    - Self::set_connection_timeout
    - Self::set_concurrency_limit
    - tokio::io::split
    - recv
    - flush
    - MultiplexedConnection::new_with_config
    - mock_conn_info
    - ValueCodec::default
    - send
    - tokio::sync::mpsc::channel::<()>
    - write_all
    - tokio::spawn
    - Self::set_response_timeout
    - Self::next
    - AsyncConnectionConfig::new
    - is_some
    linkageType: ''
    returnType: "(\n        MultiplexedConnection,\n        tokio::sync::mpsc::Receiver"
    signature: 'async fn create_mock_connection(concurrency_limit: usize,) -> (MultiplexedConnection,tokio::sync::mpsc::Receiver<()>,tokio::sync::mpsc::Sender<()>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_mock_connection
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1103,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1105,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1106,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1107,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1107,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1109,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1110,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1111,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1111,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1113,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1114,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1115,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1115,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1118,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1118,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1119,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1119,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1121,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1121,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1121,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1127,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1127,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1129,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1129,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1131,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1131,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1132,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1132,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1134,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1134,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1135,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1135,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1136,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1136,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1102
    functionDepth: 26
    functionLinenumber: 1102
    functionLinenumberEnd: 1137
    functionName: tests::test_concurrency_limit_enforced
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - send_packed_command
    - send
    - create_mock_connection
    - tokio::spawn
    - Option::clone
    - tokio::time::timeout
    - recv
    - unwrap
    - Duration::from_millis
    - cmd
    linkageType: ''
    returnType: void
    signature: async fn test_concurrency_limit_enforced()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_mock_connection
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1141,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1143,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1144,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1145,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1145,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1148,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1148,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1150,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1151,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1153,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1155,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1160,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1160,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1160,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1166,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1166,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1167,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1167,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1169,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1169,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1170,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1170,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1140
    functionDepth: 26
    functionLinenumber: 1140
    functionLinenumberEnd: 1171
    functionName: tests::test_no_limit_bypasses_concurrency_limit
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - send_packed_command
    - send
    - create_mock_connection
    - tokio::spawn
    - Option::clone
    - tokio::time::timeout
    - recv
    - unwrap
    - Duration::from_millis
    - cmd
    linkageType: ''
    returnType: void
    signature: async fn test_no_limit_bypasses_concurrency_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_mock_connection
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1175,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1177,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1178,1
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1180,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1181,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1181,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1181,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1182,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1182,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1182,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1183,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1183,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1183,1
    - Dst: send_packed_commands
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1184,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1189,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1189,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1192,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1193,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1194,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1194,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1198,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1198,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1198,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1205,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1205,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1208,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1208,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1209,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1209,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1211,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1211,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1212,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1212,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1174
    functionDepth: 26
    functionLinenumber: 1174
    functionLinenumberEnd: 1213
    functionName: tests::test_pipeline_acquires_multiple_permits
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Pipeline::cmd
    - send_packed_command
    - redis::Cmd::arg
    - '&mut Self::arg'
    - send
    - create_mock_connection
    - tokio::spawn
    - Option::clone
    - tokio::time::timeout
    - send_packed_commands
    - recv
    - unwrap
    - Duration::from_millis
    - crate::Pipeline::new
    - cmd
    linkageType: ''
    returnType: void
    signature: async fn test_pipeline_acquires_multiple_permits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_mock_connection
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1217,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1219,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1220,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1221,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1221,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1223,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1223,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1225,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1226,1
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1228,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1230,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1230,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1230,1
    - Dst: send_packed_commands
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1232,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1237,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1237,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1237,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1244,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1244,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1251,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1251,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1252,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1252,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1216
    functionDepth: 26
    functionLinenumber: 1216
    functionLinenumberEnd: 1253
    functionName: tests::test_pipeline_proceeds_with_partial_permits
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - send_packed_command
    - Pipeline::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - send
    - create_mock_connection
    - tokio::spawn
    - Option::clone
    - tokio::time::timeout
    - recv
    - send_packed_commands
    - unwrap
    - Duration::from_millis
    - crate::Pipeline::new
    - cmd
    linkageType: ''
    returnType: void
    signature: async fn test_pipeline_proceeds_with_partial_permits()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: create_mock_connection
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1257,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1259,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1260,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1261,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1261,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1263,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1263,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1266,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1267,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1268,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1268,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1270,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1270,1
    - Dst: abort
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1271,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1275,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1275,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1276,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1276,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1280,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1281,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1282,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1282,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1286,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1286,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1286,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1292,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1292,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1293,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1293,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1256
    functionDepth: 26
    functionLinenumber: 1256
    functionLinenumberEnd: 1294
    functionName: tests::test_permit_released_on_cancellation
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - send_packed_command
    - tokio::time::sleep
    - send
    - create_mock_connection
    - tokio::spawn
    - Option::clone
    - tokio::time::timeout
    - recv
    - unwrap
    - Duration::from_millis
    - cmd
    - abort
    linkageType: ''
    returnType: void
    signature: async fn test_permit_released_on_cancellation()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::io::duplex
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1347,1
    - Dst: tokio::io::split
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1348,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1353,1
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1354,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1354,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1355,1
    - Dst: std::iter::repeat_n
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1355,1
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1356,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1362,1
    - Dst: FramedRead::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1363,1
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1363,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1365,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1369,1
    - Dst: is_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1369,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1375,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1375,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1375,1
    - Dst: MultiplexedConnection::new_with_config
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1379,1
    - Dst: mock_conn_info
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1379,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1379,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1382,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1388,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1390,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1391,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1391,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1392,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1393,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1393,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1394,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1399,1
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1399,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1401,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1406,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1406,1
    - Dst: abort
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1409,1
    - Dst: abort
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1410,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1412,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1419,1
    - Dst: std::iter::Chain::enumerate
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1419,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1420,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1421,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 102
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1423
      start: 1335
    functionDepth: 33
    functionLinenumber: 1335
    functionLinenumberEnd: 1423
    functionName: tests::test_deadlock_when_writes_blocked_with_pending_response
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - tokio::io::duplex
    - std::iter::repeat_n
    - FramedRead::new
    - unwrap
    - Self::set_connection_timeout
    - tokio::io::split
    - Vec::with_capacity
    - send_packed_command
    - Self::len
    - unwrap_or_else
    - tokio::time::timeout
    - RedisResult::push
    - MultiplexedConnection::new_with_config
    - cmd
    - Duration::from_secs
    - mock_conn_info
    - ValueCodec::default
    - Option::clone
    - arg
    - is_err
    - RedisResult::into_iter
    - write_all
    - extend_from_slice
    - expect
    - std::iter::Chain::enumerate
    - tokio::spawn
    - Self::set_response_timeout
    - Self::next
    - extend
    - Self::push
    - AsyncConnectionConfig::new
    - as_bytes
    - abort
    linkageType: ''
    returnType: void
    signature: async fn test_deadlock_when_writes_blocked_with_pending_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::io::duplex
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1431,1
    - Dst: tokio::sync::mpsc::channel::<()>
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1432,1
    - Dst: tokio::io::split
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1434,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1436,1
    - Dst: FramedRead::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1437,1
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1437,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1438,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1439,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1443,1
    - Dst: futures_util::future::pending::<()>
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1444,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1445,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1448,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1448,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1448,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1450,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1450,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1448,1
    - Dst: MultiplexedConnection::new_with_config
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1454,1
    - Dst: mock_conn_info
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1454,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1454,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1457,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1460,1
    - Dst: Self::send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1461,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1461,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1461,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1463,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1463,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1467,1
    - Dst: Self::send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1468,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1468,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1468,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1470,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1470,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1426
    functionDepth: 33
    functionLinenumber: 1426
    functionLinenumberEnd: 1471
    functionName: tests::test_permit_released_on_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - tokio::io::duplex
    - FramedRead::new
    - unwrap
    - Some
    - Self::set_connection_timeout
    - Self::set_concurrency_limit
    - tokio::io::split
    - recv
    - MultiplexedConnection::new_with_config
    - cmd
    - mock_conn_info
    - ValueCodec::default
    - send
    - Self::send_packed_command
    - Option::clone
    - tokio::sync::mpsc::channel::<()>
    - write_all
    - tokio::spawn
    - Self::set_response_timeout
    - Self::next
    - futures_util::future::pending::<()>
    - Duration::from_millis
    - AsyncConnectionConfig::new
    - unwrap_err
    linkageType: ''
    returnType: void
    signature: async fn test_permit_released_on_response_timeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: detach
      Src: /src/redis-rs/redis/src/aio/runtime.rs:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: TaskHandle::detach
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - detach
    linkageType: ''
    returnType: void
    signature: pub(crate) fn detach(self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/redis-rs/redis/src/aio/runtime.rs:48,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/runtime.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TaskHandle
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: HandleContainer::new
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 3
    functionsReached:
    - Some
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(handle: TaskHandle) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/redis-rs/redis/src/aio/runtime.rs:54,1
    - Dst: abort
      Src: /src/redis-rs/redis/src/aio/runtime.rs:57,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/aio/runtime.rs:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 61
    functionName: HandleContainer::drop
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - take
    - drop
    - abort
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/redis-rs/redis/src/aio/runtime.rs:71,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/runtime.rs:71,1
    - Dst: HandleContainer::new
      Src: /src/redis-rs/redis/src/aio/runtime.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TaskHandle
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 11
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: SharedHandleContainer::new
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 3
    functionsReached:
    - HandleContainer::new
    - Self
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(handle: TaskHandle) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/redis-rs/redis/src/aio/runtime.rs:82,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/runtime.rs:82,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/runtime.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - Runtime
    constantsTouched: []
    func_position:
      end: 85
      start: 79
    functionDepth: 7
    functionLinenumber: 79
    functionLinenumberEnd: 85
    functionName: set_runtime
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - RedisError::from
    - set
    - map_err
    linkageType: ''
    returnType: Result
    signature: 'fn set_runtime(runtime: Runtime) -> Result<(), RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_runtime
      Src: /src/redis-rs/redis/src/aio/runtime.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 8
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: prefer_smol
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 1
    functionsReached:
    - set_runtime
    linkageType: ''
    returnType: Result
    signature: pub fn prefer_smol() -> Result<(), RedisError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set_runtime
      Src: /src/redis-rs/redis/src/aio/runtime.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 8
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: prefer_tokio
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 1
    functionsReached:
    - set_runtime
    linkageType: ''
    returnType: Result
    signature: pub fn prefer_tokio() -> Result<(), RedisError>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/aio/runtime.rs:110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 108
    functionDepth: 31
    functionLinenumber: 108
    functionLinenumberEnd: 138
    functionName: Runtime::locate
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 5
    functionsReached:
    - get
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn locate() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate_tokio::Tokio::spawn
      Src: /src/redis-rs/redis/src/aio/runtime.rs:144,1
    - Dst: crate_smol::Smol::spawn
      Src: /src/redis-rs/redis/src/aio/runtime.rs:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl Future<Output = ()> + Send + 'static
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: Runtime::spawn
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - crate_smol::Smol::spawn
    - crate_tokio::Tokio::spawn
    linkageType: ''
    returnType: TaskHandle
    signature: 'pub(crate) fn spawn(self, f: impl Future<Output = ()> + Send + ''static)
      -> TaskHandle'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/runtime.rs:157,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/runtime.rs:157,1
    - Dst: Elapsed
      Src: /src/redis-rs/redis/src/aio/runtime.rs:159,1
    - Dst: F::timeout
      Src: /src/redis-rs/redis/src/aio/runtime.rs:161,1
    - Dst: ok_or
      Src: /src/redis-rs/redis/src/aio/runtime.rs:161,1
    - Dst: Elapsed
      Src: /src/redis-rs/redis/src/aio/runtime.rs:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - duration
    - future
    argTypes:
    - Duration
    - F
    constantsTouched: []
    func_position:
      end: 163
      start: 150
    functionDepth: 24
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: Runtime::timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - map_err
    - F::timeout
    - tokio::time::timeout
    - ok_or
    - Elapsed
    linkageType: ''
    returnType: Result
    signature: 'pub(crate) async fn timeout<F: Future>(&self,duration: Duration,future:
      F,) -> Result<F::Output, Elapsed>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/aio/runtime.rs:170,1
    - Dst: smol::Timer::after
      Src: /src/redis-rs/redis/src/aio/runtime.rs:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 178
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 178
    functionName: Runtime::sleep
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - tokio::time::sleep
    - smol::Timer::after
    linkageType: ''
    returnType: void
    signature: 'pub(crate) async fn sleep(&self, duration: Duration)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::locate
      Src: /src/redis-rs/redis/src/aio/runtime.rs:182,1
    - Dst: Self::sleep
      Src: /src/redis-rs/redis/src/aio/runtime.rs:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 32
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: Runtime::locate_and_sleep
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - Self::sleep
    - Self::locate
    linkageType: ''
    returnType: void
    signature: 'pub(crate) async fn locate_and_sleep(duration: Duration)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cfg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:72,1
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:75,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:76,1
    - Dst: Self::is_some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:88,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:96,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:99,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:101,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 59
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 109
      start: 57
    functionDepth: 26
    functionLinenumber: 57
    functionLinenumberEnd: 109
    functionName: ConnectionManagerConfig::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::field
    - Self::is_some
    - field
    - debug_struct
    - finish
    - is_some
    - cfg
    linkageType: ''
    returnType: Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> Result<(), std::fmt::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 12
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: ConnectionManagerConfig::new
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 12
    functionsReached:
    - Self::default
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: ConnectionManagerConfig::min_delay
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Duration
    signature: pub fn min_delay(&self) -> Duration
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: ConnectionManagerConfig::max_delay
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn max_delay(&self) -> Option<Duration>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: ConnectionManagerConfig::exponent_base
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: f32
    signature: pub fn exponent_base(&self) -> f32
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    functionName: ConnectionManagerConfig::number_of_retries
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn number_of_retries(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: ConnectionManagerConfig::response_timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn response_timeout(&self) -> Option<Duration>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 154
    functionName: ConnectionManagerConfig::connection_timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: pub fn connection_timeout(&self) -> Option<Duration>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: ConnectionManagerConfig::automatic_resubscription
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn automatic_resubscription(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: ConnectionManagerConfig::cache_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: Option
    signature: pub fn cache_config(&self) -> Option<&crate::caching::CacheConfig>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - min_delay
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ConnectionManagerConfig::set_min_delay
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_min_delay(mut self, min_delay: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - time
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: ConnectionManagerConfig::set_max_delay
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_max_delay(mut self, time: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 184
    functionName: ConnectionManagerConfig::set_exponent_base
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_exponent_base(mut self, base: f32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 190
    functionName: ConnectionManagerConfig::set_number_of_retries
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_number_of_retries(mut self, amount: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 198
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 198
    functionName: ConnectionManagerConfig::set_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_response_timeout(mut self, duration: Option<Duration>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ConnectionManagerConfig::set_connection_timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_connection_timeout(mut self, duration: Option<Duration>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:234,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 11
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: ConnectionManagerConfig::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_push_sender(mut self, sender: impl AsyncPushSender) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: ConnectionManagerConfig::set_automatic_resubscription
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn set_automatic_resubscription(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - crate::caching::CacheConfig
    constantsTouched: []
    func_position:
      end: 251
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 251
    functionName: ConnectionManagerConfig::set_cache_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_cache_config(self, cache_config: crate::caching::CacheConfig)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    functionName: ConnectionManagerConfig::set_pipeline_buffer_size
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_pipeline_buffer_size(mut self, size: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: ConnectionManagerConfig::set_concurrency_limit
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_concurrency_limit(mut self, limit: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - boundary
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 287
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 287
    functionName: ConnectionManagerConfig::set_write_backpressure_boundary
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_write_backpressure_boundary(mut self, boundary: usize)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:315,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: ConnectionManagerConfig::set_credentials_provider
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_credentials_provider<P>(mut self, provider: P) -> SelfwhereP:
      crate::auth::StreamingCredentialsProvider + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 339
    functionName: ConnectionManagerConfig::default
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:393,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:393,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:393,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 397
      start: 392
    functionDepth: 26
    functionLinenumber: 392
    functionLinenumberEnd: 397
    functionName: ConnectionManager::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - field
    - finish
    - debug_struct
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsFilePaths::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:3,1
    - Dst: Self::reconnect
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:4,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:4,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 404
    functionDepth: 34
    functionLinenumber: 404
    functionLinenumberEnd: 412
    functionName: reconnect_if_dropped
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::is_unrecoverable_error
    - Self::reconnect
    - Arc::downgrade
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsFilePaths::is_io_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:3,1
    - Dst: Self::reconnect
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:4,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:4,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:6,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 416
    functionDepth: 35
    functionLinenumber: 416
    functionLinenumberEnd: 425
    functionName: reconnect_if_io_error
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Err
    - Self::reconnect
    - Arc::downgrade
    - TlsFilePaths::is_io_error
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:433,1
    - Dst: Self::new_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - client
    argTypes:
    - Client
    constantsTouched: []
    func_position:
      end: 435
      start: 432
    functionDepth: 20
    functionLinenumber: 432
    functionLinenumberEnd: 435
    functionName: ConnectionManager::new
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 1
    functionsReached:
    - ConnectionManagerConfig::new
    - Self::new_with_config
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn new(client: Client) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_lazy_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:453,1
    - Dst: load
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:456,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:457,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - client
    - config
    argTypes:
    - Client
    - ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 460
      start: 448
    functionDepth: 6
    functionLinenumber: 448
    functionLinenumberEnd: 460
    functionName: ConnectionManager::new_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 3
    functionsReached:
    - clone
    - Self::new_lazy_with_config
    - load
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn new_with_config(client: Client,config: ConnectionManagerConfig,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:473,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:475,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:476,1
    - Dst: into
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:476,1
    - Dst: ExponentialBuilder::default
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:479,1
    - Dst: Self::with_factor
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:479,1
    - Dst: with_min_delay
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:479,1
    - Dst: with_max_times
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:479,1
    - Dst: with_jitter
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:479,1
    - Dst: with_max_delay
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:485,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:488,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:488,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:488,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:496,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:496,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:499,1
    - Dst: Self::as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:501,1
    - Dst: Self::set_cache_manager
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:502,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:502,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:507,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:510,1
    - Dst: HandleContainer::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:511,1
    - Dst: tokio::runtime::Runtime::spawn
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:512,1
    - Dst: Self::check_for_disconnect_pushes
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:512,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:516,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:517,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:522,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:523,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:523,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:526,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:526,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:527,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:528,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:529,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:532,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:532,1
    - Dst: then
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:535,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:537,1
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:537,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:539,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:541,1
    - Dst: Self::new_connection
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:545,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:544,1
    - Dst: shared
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:544,1
    - Dst: Self
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:556,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:556,1
    - Dst: ArcSwap::from_pointee
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:558,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:569,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:571,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:569,1
    - Dst: crate::RedisError::from
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:576,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:583,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 153
    argCount: 2
    argNames:
    - client
    - config
    argTypes:
    - Client
    - ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 584
      start: 469
    functionDepth: 32
    functionLinenumber: 469
    functionLinenumberEnd: 584
    functionName: ConnectionManager::new_lazy_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 1
    functionsReached:
    - with_max_times
    - Self::set_push_sender_internal
    - Err
    - shared
    - Ok
    - Mutex::new
    - Some
    - Self::set_connection_timeout
    - Runtime::locate
    - Self::new_connection
    - boxed
    - map
    - Self::set_cache_manager
    - clone
    - SubscriptionTracker::default
    - is_none
    - Self::with_factor
    - as_ref
    - Self::as_ref
    - Arc::downgrade
    - send
    - map_err
    - tokio::runtime::Runtime::spawn
    - HandleContainer::new
    - ExponentialBuilder::default
    - oneshot::channel
    - Arc::new
    - then
    - CacheManager::new
    - with_max_delay
    - Self
    - with_min_delay
    - Self::set_response_timeout
    - into
    - check_resp3
    - tokio::sync::mpsc::unbounded_channel
    - ArcSwap::from_pointee
    - Self::check_for_disconnect_pushes
    - supports_resp3
    - AsyncConnectionConfig::new
    - crate::RedisError::from
    - Self::clone
    - with_jitter
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new_lazy_with_config(client: Client,config: ConnectionManagerConfig,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:592,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:594,1
    - Dst: retry
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:598,1
    - Dst: sleep
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:598,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:600,1
    - Dst: Self::sleep
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:600,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:604,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:606,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - client
    - exponential_backoff
    - connection_config
    - additional_commands
    argTypes:
    - '&Client'
    - ExponentialBuilder
    - '&AsyncConnectionConfig'
    - Option<Pipeline>
    constantsTouched: []
    func_position:
      end: 607
      start: 586
    functionDepth: 33
    functionLinenumber: 586
    functionLinenumberEnd: 607
    functionName: ConnectionManager::new_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - retry
    - sleep
    - exec_async
    - Ok
    - Self::clone
    - Runtime::locate
    - get_multiplexed_async_connection_with_config
    - Self::sleep
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn new_connection(client: &Client,exponential_backoff: ExponentialBuilder,connection_config:
      &AsyncConnectionConfig,additional_commands: Option<Pipeline>,) -> RedisResult<MultiplexedConnection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Weak<Internals>::upgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:617,1
    - Dst: Weak<Internals>::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:620,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:622,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:624,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:626,1
    - Dst: clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:627,1
    - Dst: set_cache_manager
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:628,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:632,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:633,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:633,1
    - Dst: Self::new_connection
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:641,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:648,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:630,1
    - Dst: shared
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:630,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:654,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:654,1
    - Dst: compare_and_swap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:655,1
    - Dst: Arc::ptr_eq
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:660,1
    - Dst: spawn
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:662,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:662,1
    - Dst: detach
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:662,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 66
    argCount: 2
    argNames:
    - internals
    - current
    argTypes:
    - Weak<Internals>
    - arc_swap::Guard<Arc<SharedRedisFuture<MultiplexedConnection>>>
    constantsTouched: []
    func_position:
      end: 664
      start: 613
    functionDepth: 26
    functionLinenumber: 613
    functionLinenumberEnd: 664
    functionName: ConnectionManager::reconnect
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - clone_and_increase_epoch
    - shared
    - get_subscription_pipeline
    - Arc::ptr_eq
    - Ok
    - detach
    - Some
    - Self::new_connection
    - boxed
    - map
    - clone
    - Weak<Internals>::clone
    - Weak<Internals>::upgrade
    - lock
    - as_ref
    - spawn
    - Arc::new
    - set_cache_manager
    - compare_and_swap
    linkageType: ''
    returnType: void
    signature: 'fn reconnect(internals: Weak<Internals>,current: arc_swap::Guard<Arc<SharedRedisFuture<MultiplexedConnection>>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:676,1
    - Dst: upgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:678,1
    - Dst: Self::reconnect
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:681,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:681,1
    - Dst: load
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:681,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:683,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:684,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 1
    argNames:
    - receiver
    argTypes:
    - "oneshot::Receiver<(\n            Weak<Internals>,\n            UnboundedReceiver<PushInfo>,\n\
      \            OptionalPushSender,\n        )>"
    constantsTouched: []
    func_position:
      end: 687
      start: 666
    functionDepth: 23
    functionLinenumber: 666
    functionLinenumberEnd: 687
    functionName: ConnectionManager::check_for_disconnect_pushes
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::reconnect
    - Arc::downgrade
    - Self::send
    - recv
    - load
    - as_ref
    - upgrade
    linkageType: ''
    returnType: void
    signature: 'async fn check_for_disconnect_pushes(receiver: oneshot::Receiver<(Weak<Internals>,UnboundedReceiver<PushInfo>,OptionalPushSender,)>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:693,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:694,1
    - Dst: reconnect_if_io_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:695,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:696,1
    - Dst: reconnect_if_dropped
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:697,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 699
      start: 691
    functionDepth: 36
    functionLinenumber: 691
    functionLinenumberEnd: 699
    functionName: ConnectionManager::send_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - send_packed_command
    - reconnect_if_dropped
    - clone
    - load
    - reconnect_if_io_error
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn send_packed_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:711,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:712,1
    - Dst: reconnect_if_io_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:713,1
    - Dst: send_packed_commands
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:714,1
    - Dst: reconnect_if_dropped
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:717,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 719
      start: 704
    functionDepth: 36
    functionLinenumber: 704
    functionLinenumberEnd: 719
    functionName: ConnectionManager::send_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - reconnect_if_dropped
    - clone
    - send_packed_commands
    - load
    - reconnect_if_io_error
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn send_packed_commands(&mut self,cmd: &crate::Pipeline,offset:
      usize,count: usize,) -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:729,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:729,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:730,1
    - Dst: update_with_request
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - action
    - args
    argTypes:
    - SubscriptionAction
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 734
      start: 721
    functionDepth: 30
    functionLinenumber: 721
    functionLinenumberEnd: 734
    functionName: ConnectionManager::update_subscription_tracker
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - lock
    - update_with_request
    - to_redis_args
    linkageType: ''
    returnType: void
    signature: 'async fn update_subscription_tracker(&self,action: SubscriptionAction,args:
      impl ToRedisArgs,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:757,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:758,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:759,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:760,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:761,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:764,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 765
      start: 756
    functionDepth: 25
    functionLinenumber: 756
    functionLinenumberEnd: 765
    functionName: ConnectionManager::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - ConnectionManager::update_subscription_tracker
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn subscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:771,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:772,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:773,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:774,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:775,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:777,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 778
      start: 770
    functionDepth: 25
    functionLinenumber: 770
    functionLinenumberEnd: 778
    functionName: ConnectionManager::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - ConnectionManager::update_subscription_tracker
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn unsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:801,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:802,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:803,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:804,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:805,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:807,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 808
      start: 800
    functionDepth: 25
    functionLinenumber: 800
    functionLinenumberEnd: 808
    functionName: ConnectionManager::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - ConnectionManager::update_subscription_tracker
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn psubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:814,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:815,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:816,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:817,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:818,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 821
      start: 813
    functionDepth: 25
    functionLinenumber: 813
    functionLinenumberEnd: 821
    functionName: ConnectionManager::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - ConnectionManager::update_subscription_tracker
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn punsubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:827,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:827,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 826
    functionDepth: 7
    functionLinenumber: 826
    functionLinenumberEnd: 828
    functionName: ConnectionManager::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - statistics
    - map
    linkageType: ''
    returnType: Option
    signature: pub fn get_cache_statistics(&self) -> Option<crate::caching::CacheStatistics>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManager::send_packed_command
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:833,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:833,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 834
      start: 832
    functionDepth: 37
    functionLinenumber: 832
    functionLinenumberEnd: 834
    functionName: ConnectionManager::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - boxed
    - ConnectionManager::send_packed_command
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_command<''a>(&''a mut self, cmd: &''a Cmd) -> RedisFuture<''a,
      Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManager::send_packed_commands
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:842,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:842,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - pipeline
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 843
      start: 836
    functionDepth: 37
    functionLinenumber: 836
    functionLinenumberEnd: 843
    functionName: ConnectionManager::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - boxed
    - ConnectionManager::send_packed_commands
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,pipeline: &''a crate::Pipeline,offset:
      usize,count: usize,) -> RedisFuture<''a, Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connection_info
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 847
      start: 845
    functionDepth: 14
    functionLinenumber: 845
    functionLinenumberEnd: 847
    functionName: ConnectionManager::get_db
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - connection_info
    linkageType: ''
    returnType: i64
    signature: fn get_db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 855
    functionDepth: 13
    functionLinenumber: 855
    functionLinenumberEnd: 858
    functionName: tests::test_connection_manager_config_pipeline_buffer_size_default
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManagerConfig::new
    linkageType: ''
    returnType: void
    signature: fn test_connection_manager_config_pipeline_buffer_size_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:862,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 864
      start: 861
    functionDepth: 13
    functionLinenumber: 861
    functionLinenumberEnd: 864
    functionName: tests::test_connection_manager_config_pipeline_buffer_size_custom
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManagerConfig::new
    - Self::set_pipeline_buffer_size
    linkageType: ''
    returnType: void
    signature: fn test_connection_manager_config_pipeline_buffer_size_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 870
      start: 867
    functionDepth: 13
    functionLinenumber: 867
    functionLinenumberEnd: 870
    functionName: tests::test_connection_manager_config_concurrency_limit_default
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManagerConfig::new
    linkageType: ''
    returnType: void
    signature: fn test_connection_manager_config_concurrency_limit_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:874,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 13
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: tests::test_connection_manager_config_concurrency_limit_custom
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManagerConfig::new
    - Self::set_concurrency_limit
    linkageType: ''
    returnType: void
    signature: fn test_connection_manager_config_concurrency_limit_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 882
      start: 879
    functionDepth: 13
    functionLinenumber: 879
    functionLinenumberEnd: 882
    functionName: tests::test_connection_manager_config_write_backpressure_boundary_default
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManagerConfig::new
    linkageType: ''
    returnType: void
    signature: fn test_connection_manager_config_write_backpressure_boundary_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:887,1
    - Dst: Self::set_write_backpressure_boundary
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 889
      start: 885
    functionDepth: 13
    functionLinenumber: 885
    functionLinenumberEnd: 889
    functionName: tests::test_connection_manager_config_write_backpressure_boundary_custom
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManagerConfig::new
    - Self::set_write_backpressure_boundary
    linkageType: ''
    returnType: void
    signature: fn test_connection_manager_config_write_backpressure_boundary_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:894,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:894,1
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:895,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:895,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:895,1
    - Dst: Self::set_number_of_retries
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:895,1
    - Dst: ConnectionManager::new_lazy_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:899,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 901
      start: 892
    functionDepth: 33
    functionLinenumber: 892
    functionLinenumberEnd: 901
    functionName: tests::test_lazy_connection_manager_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManagerConfig::new
    - Self::set_pipeline_buffer_size
    - Client::open
    - ConnectionManager::new_lazy_with_config
    - unwrap
    - Self::set_number_of_retries
    - Self::set_concurrency_limit
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_lazy_connection_manager_with_config()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:905,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:905,1
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:907,1
    - Dst: Self::set_write_backpressure_boundary
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:907,1
    - Dst: ConnectionManager::new_lazy_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:908,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:908,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 904
    functionDepth: 33
    functionLinenumber: 904
    functionLinenumberEnd: 913
    functionName: tests::test_lazy_connection_manager_wires_write_backpressure_boundary
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::set_write_backpressure_boundary
    - ConnectionManagerConfig::new
    - Client::open
    - ConnectionManager::new_lazy_with_config
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: async fn test_lazy_connection_manager_wires_write_backpressure_boundary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:918,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:918,1
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:919,1
    - Dst: Self::set_automatic_resubscription
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:919,1
    - Dst: ConnectionManager::new_lazy_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 922
      start: 916
    functionDepth: 33
    functionLinenumber: 916
    functionLinenumberEnd: 922
    functionName: tests::test_lazy_connection_manager_rejects_invalid_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManagerConfig::new
    - Client::open
    - ConnectionManager::new_lazy_with_config
    - Self::set_automatic_resubscription
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_lazy_connection_manager_rejects_invalid_config()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PipelineSink::project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:113,1
    - Dst: impl combine::Parser::first
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:117,1
    - Dst: pop_front
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:123,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:124,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:124,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:124,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:126,1
    - Dst: Msg::from_owned_value
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:129,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:129,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:130,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:131,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:133,1
    - Dst: PushKind::has_reply
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:138,1
    - Dst: pop_front
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:139,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:140,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:140,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:142,1
    - Dst: Msg::from_push_info
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:145,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:146,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:147,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:149,1
    - Dst: is_unrecoverable_error
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:153,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:153,1
    - Dst: pop_front
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:156,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:157,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:158,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:160,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 75
    argCount: 2
    argNames:
    - result
    argTypes:
    - Pin<&mut Self>
    - RedisResult<Value>
    constantsTouched: []
    func_position:
      end: 164
      start: 112
    functionDepth: 10
    functionLinenumber: 112
    functionLinenumberEnd: 164
    functionName: PipelineSink::handle_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 1
    functionsReached:
    - pop_front
    - send
    - PipelineSink::project
    - Err
    - impl combine::Parser::first
    - Msg::from_owned_value
    - Msg::from_push_info
    - Ok
    - is_unrecoverable_error
    - Value::Array
    - PushKind::has_reply
    linkageType: ''
    returnType: Result
    signature: 'fn handle_message(self: Pin<&mut Self>, result: RedisResult<Value>)
      -> Result<(), ()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:254,1
    - Dst: PipelineSink::new
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:255,1
    - Dst: stream::poll_fn
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:256,1
    - Dst: "(\n        PendingRequest::poll_recv"
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:257,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:256,1
    - Dst: forward
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:256,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 2
    argNames:
    - sink_stream
    - messages_sender
    argTypes:
    - T
    - UnboundedSender<Msg>
    constantsTouched: []
    func_position:
      end: 268
      start: 245
    functionDepth: 12
    functionLinenumber: 245
    functionLinenumberEnd: 268
    functionName: PubSubSink::new
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 1
    functionsReached:
    - "(\n        PendingRequest::poll_recv"
    - map
    - forward
    - tokio::sync::mpsc::unbounded_channel
    - PipelineSink::new
    - stream::poll_fn
    linkageType: ''
    returnType: (Self, impl Future
    signature: 'fn new<T>(sink_stream: T,messages_sender: UnboundedSender<Msg>,) ->
      (Self, impl Future<Output = ()>)whereT: Sink<Vec<u8>, Error = RedisError>,T:
      Stream<Item = RedisResult<Value>>,T: Unpin + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:271,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:273,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:273,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:278,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:281,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - input
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 283
      start: 270
    functionDepth: 11
    functionLinenumber: 270
    functionLinenumberEnd: 283
    functionName: PubSubSink::send_recv
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - closed_connection_error
    - send
    - map_err
    - Err
    - oneshot::channel
    linkageType: ''
    returnType: Result
    signature: 'async fn send_recv(&mut self, input: Vec<u8>) -> Result<Value, RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:298,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:298,1
    - Dst: '&mut Self::get_packed_command'
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:298,1
    - Dst: PubSubSink::send_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:299,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 25
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: PubSubSink::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - map
    - '&mut Self::get_packed_command'
    - Cmd::arg
    - PubSubSink::send_recv
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn subscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:315,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:315,1
    - Dst: '&mut Self::get_packed_command'
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:315,1
    - Dst: PubSubSink::send_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:316,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 25
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: PubSubSink::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - map
    - '&mut Self::get_packed_command'
    - Cmd::arg
    - PubSubSink::send_recv
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn unsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:332,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:332,1
    - Dst: '&mut Self::get_packed_command'
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:332,1
    - Dst: PubSubSink::send_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:333,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 334
      start: 331
    functionDepth: 25
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: PubSubSink::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - map
    - '&mut Self::get_packed_command'
    - Cmd::arg
    - PubSubSink::send_recv
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn psubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:349,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:349,1
    - Dst: '&mut Self::get_packed_command'
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:349,1
    - Dst: PubSubSink::send_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:352,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 353
      start: 348
    functionDepth: 25
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: PubSubSink::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - map
    - '&mut Self::get_packed_command'
    - Cmd::arg
    - PubSubSink::send_recv
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn punsubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:360,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:360,1
    - Dst: '&mut Self::get_packed_command'
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:360,1
    - Dst: PubSubSink::send_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:361,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:362,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - message
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 363
      start: 356
    functionDepth: 25
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: PubSubSink::ping_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::get_packed_command'
    - Cmd::arg
    - from_redis_value
    - PubSubSink::send_recv
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn ping_message<T: FromRedisValue>(&mut self,message: impl
      ToRedisArgs,) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:367,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:367,1
    - Dst: PubSubSink::send_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:368,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:369,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:369,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 12
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: PubSubSink::ping
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - from_redis_value
    - Cmd::get_packed_command
    - PubSubSink::send_recv
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn ping<T: FromRedisValue>(&mut self) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 493
    functionName: PubSub::on_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: impl Stream
    signature: pub fn on_message(&mut self) -> impl Stream<Item = Msg> + '_
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 503
    functionName: PubSub::into_on_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: PubSubStream
    signature: pub fn into_on_message(self) -> PubSubStream
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    functionName: PubSub::split
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: (PubSubSink, PubSubStream)
    signature: pub fn split(self) -> (PubSubSink, PubSubStream)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PubSubStream::project
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:516,1
    - Dst: poll_recv
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: PubSubStream::poll_next
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - poll_recv
    - PubSubStream::project
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_next(self: Pin<&mut Self>, cx: &mut task::Context<''_>) ->
      Poll<Option<Self::Item>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:64,1
    - Dst: Self::poll_write
      Src: /src/redis-rs/redis/src/aio/tokio.rs:64,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:66,1
    - Dst: Self::poll_write
      Src: /src/redis-rs/redis/src/aio/tokio.rs:66,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:68,1
    - Dst: Self::poll_write
      Src: /src/redis-rs/redis/src/aio/tokio.rs:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 11
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Tokio::poll_write
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - Self::poll_write
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_write(mut self: Pin<&mut Self>,cx: &mut task::Context,buf:
      &[u8],) -> Poll<io::Result<usize>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:74,1
    - Dst: Self::poll_flush
      Src: /src/redis-rs/redis/src/aio/tokio.rs:74,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:76,1
    - Dst: Self::poll_flush
      Src: /src/redis-rs/redis/src/aio/tokio.rs:76,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:78,1
    - Dst: Self::poll_flush
      Src: /src/redis-rs/redis/src/aio/tokio.rs:78,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 11
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: Tokio::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - Self::poll_flush
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>, cx: &mut task::Context) ->
      Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:84,1
    - Dst: Self::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/tokio.rs:84,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:86,1
    - Dst: Self::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/tokio.rs:86,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:88,1
    - Dst: Self::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/tokio.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 11
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: Tokio::poll_shutdown
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - Self::poll_shutdown
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut task::Context)
      -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:100,1
    - Dst: Self::poll_read
      Src: /src/redis-rs/redis/src/aio/tokio.rs:100,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:102,1
    - Dst: Self::poll_read
      Src: /src/redis-rs/redis/src/aio/tokio.rs:102,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:104,1
    - Dst: Self::poll_read
      Src: /src/redis-rs/redis/src/aio/tokio.rs:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    - '&mut ReadBuf<''_>'
    constantsTouched: []
    func_position:
      end: 106
      start: 94
    functionDepth: 11
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: Tokio::poll_read
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - Self::poll_read
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_read(mut self: Pin<&mut Self>,cx: &mut task::Context,buf:
      &mut ReadBuf<''_>,) -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/tokio.rs:114,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/aio/tokio.rs:114,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/tokio.rs:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - socket_addr
    - tcp_settings
    argTypes:
    - SocketAddr
    - '&crate::io::tcp::TcpSettings'
    constantsTouched: []
    func_position:
      end: 117
      start: 110
    functionDepth: 24
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: Tokio::connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - map
    - connect_tcp
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_tcp(socket_addr: SocketAddr,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connection::create_rustls_config
      Src: /src/redis-rs/redis/src/aio/tokio.rs:155,1
    - Dst: '&Option<TlsConnParams>::clone'
      Src: /src/redis-rs/redis/src/aio/tokio.rs:155,1
    - Dst: TlsConnector::from
      Src: /src/redis-rs/redis/src/aio/tokio.rs:156,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:156,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/tokio.rs:158,1
    - Dst: Self::connect
      Src: /src/redis-rs/redis/src/aio/tokio.rs:158,1
    - Dst: rustls::pki_types::ServerName::try_from
      Src: /src/redis-rs/redis/src/aio/tokio.rs:160,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/aio/tokio.rs:160,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/aio/tokio.rs:161,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/tokio.rs:158,1
    - Dst: Self::TcpTls
      Src: /src/redis-rs/redis/src/aio/tokio.rs:164,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/aio/tokio.rs:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 5
    argNames:
    - hostname
    - socket_addr
    - insecure
    - tls_params
    - tcp_settings
    argTypes:
    - '&str'
    - SocketAddr
    - bool
    - '&Option<TlsConnParams>'
    - '&crate::io::tcp::TcpSettings'
    constantsTouched: []
    func_position:
      end: 165
      start: 148
    functionDepth: 30
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: Tokio::connect_tcp_tls
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - TlsConnector::from
    - Self::connect
    - rustls::pki_types::ServerName::try_from
    - map
    - Self::TcpTls
    - Arc::new
    - to_owned
    - connect_tcp
    - Ok
    - Box::new
    - '&Option<TlsConnParams>::clone'
    - connection::create_rustls_config
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_tcp_tls(hostname: &str,socket_addr: SocketAddr,insecure:
      bool,tls_params: &Option<TlsConnParams>,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/tokio.rs:169,1
    - Dst: UnixStreamTokio::connect
      Src: /src/redis-rs/redis/src/aio/tokio.rs:169,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/tokio.rs:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 23
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Tokio::connect_unix
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - map
    - UnixStreamTokio::connect
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_unix(path: &Path) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TaskHandle::Tokio
      Src: /src/redis-rs/redis/src/aio/tokio.rs:173,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/tokio.rs:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl Future<Output = ()> + Send + 'static
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: Tokio::spawn
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 1
    functionsReached:
    - tokio::spawn
    - TaskHandle::Tokio
    linkageType: ''
    returnType: TaskHandle
    signature: 'fn spawn(f: impl Future<Output = ()> + Send + ''static) -> TaskHandle'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/tokio.rs:178,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/tokio.rs:180,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/tokio.rs:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 184
    functionName: Tokio::boxed
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    linkageType: ''
    returnType: Pin
    signature: fn boxed(self) -> Pin<Box<dyn AsyncStream + Send + Sync>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/monitor.rs:30,1
    - Dst: Self::framed
      Src: /src/redis-rs/redis/src/aio/monitor.rs:30,1
    - Dst: super::setup_connection
      Src: /src/redis-rs/redis/src/aio/monitor.rs:31,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/monitor.rs:38,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/monitor.rs:38,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/aio/monitor.rs:38,1
    - Dst: next
      Src: /src/redis-rs/redis/src/aio/monitor.rs:39,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/aio/monitor.rs:39,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/aio/monitor.rs:40,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/monitor.rs:42,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 2
    argNames:
    - connection_info
    - stream
    argTypes:
    - '&RedisConnectionInfo'
    - C
    constantsTouched: []
    func_position:
      end: 43
      start: 23
    functionDepth: 12
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: Monitor::new
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 1
    functionsReached:
    - send
    - ok_or_else
    - super::setup_connection
    - Self::framed
    - Cmd::get_packed_command
    - next
    - Box::new
    - Ok
    - cmd
    - ValueCodec::default
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) async fn new<C>(connection_info: &RedisConnectionInfo,stream:
      C,) -> RedisResult<Self>whereC: Unpin + AsyncRead + AsyncWrite + Send + Sync
      + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Monitor::on_message
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: impl Stream
    signature: 'pub fn on_message<''a, T: FromRedisValue + ''a>(&''a mut self) ->
      impl Stream<Item = T> + ''a'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: Monitor::into_on_message
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: impl Stream
    signature: 'pub fn into_on_message<T: FromRedisValue>(self) -> impl Stream<Item
      = T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::ok
      Src: /src/redis-rs/redis/src/aio/monitor.rs:72,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/monitor.rs:72,1
    - Dst: T::from_redis_value
      Src: /src/redis-rs/redis/src/aio/monitor.rs:72,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/aio/monitor.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - value
    argTypes:
    - RedisResult<Value>
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 8
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: convert_value
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::ok
    - and_then
    - T::from_redis_value
    - Result::ok
    linkageType: ''
    returnType: Option
    signature: 'fn convert_value<T>(value: RedisResult<Value>) -> Option<T>whereT:
      FromRedisValue,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/monitor.rs:82,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/monitor.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: MonitorStream::poll_next
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached:
    - and_then
    - Poll::Ready
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<''_>) -> Poll<Option<Self::Item>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/aio/monitor.rs:99,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/monitor.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut Context<''_>'
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: MonitorStreamRef::poll_next
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached:
    - and_then
    - Poll::Ready
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<''_>) -> Poll<Option<Self::Item>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/mod.rs:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: RedisRuntime::boxed
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    linkageType: ''
    returnType: Pin
    signature: fn boxed(self) -> Pin<Box<dyn AsyncStream + Send + Sync>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::tokio::sync::mpsc::UnboundedSender::send
      Src: /src/redis-rs/redis/src/aio/mod.rs:190,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:191,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: ::tokio::sync::mpsc::UnboundedSender::send
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - Err
    - Ok
    - ::tokio::sync::mpsc::UnboundedSender::send
    linkageType: ''
    returnType: Result
    signature: 'fn send(&self, info: PushInfo) -> Result<(), SendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::tokio::sync::broadcast::Sender::send
      Src: /src/redis-rs/redis/src/aio/mod.rs:199,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:200,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: ::tokio::sync::broadcast::Sender::send
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - Err
    - ::tokio::sync::broadcast::Sender::send
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn send(&self, info: PushInfo) -> Result<(), SendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:209,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 212
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 212
    functionName: Func::send
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn send(&self, info: PushInfo) -> Result<(), SendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::sync::mpsc::Sender::send
      Src: /src/redis-rs/redis/src/aio/mod.rs:217,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:218,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: std::sync::mpsc::Sender::send
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - std::sync::mpsc::Sender::send
    - Err
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn send(&self, info: PushInfo) -> Result<(), SendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: futures_channel::mpsc::UnboundedSender::unbounded_send
      Src: /src/redis-rs/redis/src/aio/mod.rs:227,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:228,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 231
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 231
    functionName: futures_channel::mpsc::UnboundedSender::send
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - futures_channel::mpsc::UnboundedSender::unbounded_send
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn send(&self, info: PushInfo) -> Result<(), SendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::sync::Arc::as_ref
      Src: /src/redis-rs/redis/src/aio/mod.rs:239,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/mod.rs:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 240
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 240
    functionName: std::sync::Arc::send
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::as_ref
    - send
    linkageType: ''
    returnType: Result
    signature: 'fn send(&self, info: PushInfo) -> Result<(), SendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/mod.rs:253,1
    - Dst: get_socket_addrs
      Src: /src/redis-rs/redis/src/aio/mod.rs:253,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/aio/mod.rs:253,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:254,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/aio/mod.rs:254,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/mod.rs:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - '&''b str'
    - u16
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 10
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: DefaultAsyncDNSResolver::resolve
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - get_socket_addrs
    - into_iter
    - Box::new
    - Ok
    - RedisResult::map
    - Box::pin
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn resolve<''a, ''b: ''a>(&''a self,host: &''b str,port: u16,) ->
      RedisFuture<''a, Box<dyn Iterator<Item = SocketAddr> + Send + ''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/mod.rs:260,1
    - Dst: ::tokio::net::lookup_host
      Src: /src/redis-rs/redis/src/aio/mod.rs:262,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/mod.rs:262,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/mod.rs:262,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/aio/mod.rs:265,1
    - Dst: ::smol::net::resolve
      Src: /src/redis-rs/redis/src/aio/mod.rs:268,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/mod.rs:268,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/aio/mod.rs:273,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:274,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/mod.rs:274,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:279,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - '&str'
    - u16
    constantsTouched: []
    func_position:
      end: 281
      start: 259
    functionDepth: 32
    functionLinenumber: 259
    functionLinenumberEnd: 281
    functionName: get_socket_addrs
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - ::tokio::net::lookup_host
    - map_err
    - Err
    - map
    - RedisResult::is_empty
    - RedisError::from
    - Ok
    - ::smol::net::resolve
    - Runtime::locate
    - collect
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_socket_addrs(host: &str, port: u16) -> RedisResult<Vec<SocketAddr>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection.rs:19,1
    - Dst: Self::resolve
      Src: /src/redis-rs/redis/src/aio/connection.rs:21,1
    - Dst: futures_util::future::select_ok
      Src: /src/redis-rs/redis/src/aio/connection.rs:22,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/aio/connection.rs:23,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/connection.rs:24,1
    - Dst: <T>::connect_tcp
      Src: /src/redis-rs/redis/src/aio/connection.rs:24,1
    - Dst: Self::resolve
      Src: /src/redis-rs/redis/src/aio/connection.rs:37,1
    - Dst: futures_util::future::select_ok
      Src: /src/redis-rs/redis/src/aio/connection.rs:38,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/aio/connection.rs:38,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/connection.rs:39,1
    - Dst: <T>::connect_tcp_tls
      Src: /src/redis-rs/redis/src/aio/connection.rs:39,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/aio/connection.rs:53,1
    - Dst: <T>::connect_unix
      Src: /src/redis-rs/redis/src/aio/connection.rs:60,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/aio/connection.rs:64,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 2
    argNames:
    - connection_info
    - dns_resolver
    argTypes:
    - '&ConnectionInfo'
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 71
      start: 15
    functionDepth: 34
    functionLinenumber: 15
    functionLinenumberEnd: 71
    functionName: connect_simple
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached:
    - futures_util::future::select_ok
    - <T>::connect_unix
    - <T>::connect_tcp
    - <T>::connect_tcp_tls
    - Self::resolve
    - Ok
    - RedisResult::map
    - fail
    - Box::pin
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) async fn connect_simple<T: RedisRuntime>(connection_info:
      &ConnectionInfo,dns_resolver: &dyn AsyncDNSResolver,) -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/connection.rs:143,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/aio/connection.rs:144,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/aio/connection.rs:150,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection.rs:150,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/src/aio/connection.rs:150,1
    - Dst: cmd::pipe
      Src: /src/redis-rs/redis/src/aio/connection.rs:152,1
    - Dst: atomic
      Src: /src/redis-rs/redis/src/aio/connection.rs:153,1
    - Dst: func
      Src: /src/redis-rs/redis/src/aio/connection.rs:154,1
    - Dst: bool::clone
      Src: /src/redis-rs/redis/src/aio/connection.rs:154,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/aio/connection.rs:157,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection.rs:157,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection.rs:159,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - connection
    - keys
    - func
    argTypes:
    - C
    - '&[K]'
    - F
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 25
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: transaction_async
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 6
    functionsReached:
    - atomic
    - bool::clone
    - func
    - Cmd::exec_async
    - '&mut Self::exec_async'
    - Cmd::arg
    - cmd::pipe
    - Ok
    - cmd::cmd
    - fail
    - is_empty
    linkageType: ''
    returnType: Result
    signature: 'pub async fn transaction_async<C: ConnectionLike + Clone,K: ToRedisArgs,T:
      FromRedisValue,F: FnMut(C, Pipeline) -> Fut,Fut: Future<Output = Result<Option<T>,
      RedisError>>,>(mut connection: C,keys: &[K],mut func: F,) -> Result<T, RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: t::e::s::t::s::::::::t::e::s::t::_::i::s::_::s::y::n::c::assert_sync
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'const fn assert_sync<T: Sync>()'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert_sync::<MultiplexedConnection>
      Src: /src/redis-rs/redis/src/aio/connection.rs:175,1
    - Dst: assert_sync::<PubSub>
      Src: /src/redis-rs/redis/src/aio/connection.rs:176,1
    - Dst: assert_sync::<Monitor>
      Src: /src/redis-rs/redis/src/aio/connection.rs:177,1
    - Dst: assert_sync::<ConnectionManager>
      Src: /src/redis-rs/redis/src/aio/connection.rs:179,1
    - Dst: assert_sync::<cluster_async::ClusterConnection>
      Src: /src/redis-rs/redis/src/aio/connection.rs:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: tests::test_is_sync
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached:
    - assert_sync::<ConnectionManager>
    - assert_sync::<MultiplexedConnection>
    - assert_sync::<cluster_async::ClusterConnection>
    - assert_sync::<Monitor>
    - assert_sync::<PubSub>
    linkageType: ''
    returnType: void
    signature: fn test_is_sync()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - inner
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: SmolWrapped::new
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub(super) fn new(inner: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smol::io::AsyncWrite::poll_write
      Src: /src/redis-rs/redis/src/aio/smol.rs:68,1
    - Dst: SmolWrapped::project
      Src: /src/redis-rs/redis/src/aio/smol.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut core::task::Context'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    functionName: SmolWrapped::poll_write
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - smol::io::AsyncWrite::poll_write
    - SmolWrapped::project
    linkageType: ''
    returnType: std::task::Poll
    signature: 'fn poll_write(self: Pin<&mut Self>,cx: &mut core::task::Context,buf:
      &[u8],) -> std::task::Poll<Result<usize, tokio::io::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smol::io::AsyncWrite::poll_flush
      Src: /src/redis-rs/redis/src/aio/smol.rs:75,1
    - Dst: SmolWrapped::project
      Src: /src/redis-rs/redis/src/aio/smol.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut core::task::Context'
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: SmolWrapped::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - smol::io::AsyncWrite::poll_flush
    - SmolWrapped::project
    linkageType: ''
    returnType: std::task::Poll
    signature: 'fn poll_flush(self: Pin<&mut Self>,cx: &mut core::task::Context,)
      -> std::task::Poll<Result<(), tokio::io::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: smol::io::AsyncWrite::poll_close
      Src: /src/redis-rs/redis/src/aio/smol.rs:82,1
    - Dst: SmolWrapped::project
      Src: /src/redis-rs/redis/src/aio/smol.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut core::task::Context'
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: SmolWrapped::poll_shutdown
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - smol::io::AsyncWrite::poll_close
    - SmolWrapped::project
    linkageType: ''
    returnType: std::task::Poll
    signature: 'fn poll_shutdown(self: Pin<&mut Self>,cx: &mut core::task::Context,)
      -> std::task::Poll<Result<(), tokio::io::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut core::task::Context::advance'
      Src: /src/redis-rs/redis/src/aio/smol.rs:100,1
    - Dst: std::task::Poll::Ready
      Src: /src/redis-rs/redis/src/aio/smol.rs:101,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/smol.rs:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut core::task::Context'
    - '&mut ReadBuf<''_>'
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: SmolWrapped::poll_read
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - '&mut core::task::Context::advance'
    - std::task::Poll::Ready
    - Ok
    linkageType: ''
    returnType: std::task::Poll
    signature: 'fn poll_read(self: Pin<&mut Self>,cx: &mut core::task::Context,buf:
      &mut ReadBuf<''_>,) -> std::task::Poll<Result<(), tokio::io::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:124,1
    - Dst: Self::poll_write
      Src: /src/redis-rs/redis/src/aio/smol.rs:124,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:126,1
    - Dst: Self::poll_write
      Src: /src/redis-rs/redis/src/aio/smol.rs:126,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:128,1
    - Dst: Self::poll_write
      Src: /src/redis-rs/redis/src/aio/smol.rs:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 11
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: Smol::poll_write
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - Self::poll_write
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_write(mut self: Pin<&mut Self>,cx: &mut task::Context,buf:
      &[u8],) -> Poll<io::Result<usize>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:134,1
    - Dst: Self::poll_flush
      Src: /src/redis-rs/redis/src/aio/smol.rs:134,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:136,1
    - Dst: Self::poll_flush
      Src: /src/redis-rs/redis/src/aio/smol.rs:136,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:138,1
    - Dst: Self::poll_flush
      Src: /src/redis-rs/redis/src/aio/smol.rs:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 140
      start: 132
    functionDepth: 11
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: Smol::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - Self::poll_flush
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>, cx: &mut task::Context) ->
      Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:144,1
    - Dst: Self::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/smol.rs:144,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:146,1
    - Dst: Self::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/smol.rs:146,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:148,1
    - Dst: Self::poll_shutdown
      Src: /src/redis-rs/redis/src/aio/smol.rs:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 11
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: Smol::poll_shutdown
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - Self::poll_shutdown
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut task::Context)
      -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:160,1
    - Dst: Self::poll_read
      Src: /src/redis-rs/redis/src/aio/smol.rs:160,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:162,1
    - Dst: Self::poll_read
      Src: /src/redis-rs/redis/src/aio/smol.rs:162,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:164,1
    - Dst: Self::poll_read
      Src: /src/redis-rs/redis/src/aio/smol.rs:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - cx
    - buf
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    - '&mut ReadBuf<''_>'
    constantsTouched: []
    func_position:
      end: 166
      start: 154
    functionDepth: 11
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: Smol::poll_read
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - Self::poll_read
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_read(mut self: Pin<&mut Self>,cx: &mut task::Context,buf:
      &mut ReadBuf<''_>,) -> Poll<io::Result<()>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/smol.rs:174,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/aio/smol.rs:174,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/smol.rs:174,1
    - Dst: Self::Tcp
      Src: /src/redis-rs/redis/src/aio/smol.rs:176,1
    - Dst: SmolWrapped::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - socket_addr
    - tcp_settings
    argTypes:
    - SocketAddr
    - '&crate::io::tcp::TcpSettings'
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 24
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: Smol::connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - map
    - Self::Tcp
    - Ok
    - SmolWrapped::new
    - connect_tcp
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_tcp(socket_addr: SocketAddr,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/aio/smol.rs:213,1
    - Dst: connection::create_rustls_config
      Src: /src/redis-rs/redis/src/aio/smol.rs:215,1
    - Dst: '&Option<TlsConnParams>::clone'
      Src: /src/redis-rs/redis/src/aio/smol.rs:215,1
    - Dst: TlsConnector::from
      Src: /src/redis-rs/redis/src/aio/smol.rs:216,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:216,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/smol.rs:218,1
    - Dst: Self::connect
      Src: /src/redis-rs/redis/src/aio/smol.rs:218,1
    - Dst: rustls::pki_types::ServerName::try_from
      Src: /src/redis-rs/redis/src/aio/smol.rs:220,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/aio/smol.rs:220,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/smol.rs:218,1
    - Dst: Self::TcpTls
      Src: /src/redis-rs/redis/src/aio/smol.rs:224,1
    - Dst: SmolWrapped::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:224,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:224,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 5
    argNames:
    - hostname
    - socket_addr
    - insecure
    - tls_params
    - tcp_settings
    argTypes:
    - '&str'
    - SocketAddr
    - bool
    - '&Option<TlsConnParams>'
    - '&crate::io::tcp::TcpSettings'
    constantsTouched: []
    func_position:
      end: 225
      start: 206
    functionDepth: 24
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: Smol::connect_tcp_tls
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - TlsConnector::from
    - Self::connect
    - rustls::pki_types::ServerName::try_from
    - map
    - Self::TcpTls
    - Arc::new
    - to_owned
    - connect_tcp
    - Ok
    - SmolWrapped::new
    - Box::new
    - '&Option<TlsConnParams>::clone'
    - connection::create_rustls_config
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_tcp_tls(hostname: &str,socket_addr: SocketAddr,insecure:
      bool,tls_params: &Option<TlsConnParams>,tcp_settings: &crate::io::tcp::TcpSettings,)
      -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/smol.rs:229,1
    - Dst: UnixStream::connect
      Src: /src/redis-rs/redis/src/aio/smol.rs:229,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/smol.rs:229,1
    - Dst: Self::Unix
      Src: /src/redis-rs/redis/src/aio/smol.rs:231,1
    - Dst: SmolWrapped::new
      Src: /src/redis-rs/redis/src/aio/smol.rs:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - path
    argTypes:
    - '&Path'
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 23
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: Smol::connect_unix
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - map
    - UnixStream::connect
    - Ok
    - SmolWrapped::new
    - Self::Unix
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_unix(path: &Path) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TaskHandle::Smol
      Src: /src/redis-rs/redis/src/aio/smol.rs:235,1
    - Dst: smol::spawn
      Src: /src/redis-rs/redis/src/aio/smol.rs:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - impl Future<Output = ()> + Send + 'static
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 236
    functionName: Smol::spawn
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 1
    functionsReached:
    - smol::spawn
    - TaskHandle::Smol
    linkageType: ''
    returnType: TaskHandle
    signature: 'fn spawn(f: impl Future<Output = ()> + Send + ''static) -> TaskHandle'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/smol.rs:240,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/smol.rs:242,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/aio/smol.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: Smol::boxed
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    linkageType: ''
    returnType: Pin
    signature: fn boxed(self) -> Pin<Box<dyn AsyncStream + Send + Sync>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/caching/config.rs:30,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/caching/config.rs:30,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/config.rs:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 11
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: CacheConfig::new
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 11
    functionsReached:
    - Self::unwrap
    - Duration::from_secs
    - NonZeroUsize::new
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mode
    argTypes:
    - CacheMode
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: CacheConfig::set_mode
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_mode(mut self, mode: CacheMode) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - NonZeroUsize
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: CacheConfig::set_size
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_size(mut self, size: NonZeroUsize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ttl
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: CacheConfig::set_default_client_ttl
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_default_client_ttl(mut self, ttl: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/caching/config.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 11
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: CacheConfig::default
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 8
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::types::from_redis_value
      Src: /src/redis-rs/redis/src/caching/cmd.rs:22,1
    - Dst: crate::types::from_redis_value
      Src: /src/redis-rs/redis/src/caching/cmd.rs:25,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/caching/cmd.rs:27,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cmd.rs:32,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/caching/cmd.rs:34,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cmd.rs:35,1
    - Dst: get_next_reply
      Src: /src/redis-rs/redis/src/caching/cmd.rs:38,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cmd.rs:39,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:44,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:46,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - cache_manager
    - result
    argTypes:
    - '&CacheManager'
    - Value
    constantsTouched: []
    func_position:
      end: 48
      start: 15
    functionDepth: 22
    functionLinenumber: 15
    functionLinenumberEnd: 48
    functionName: CacheablePipeline::resolve
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - resolve
    - get_next_reply
    - push
    - into_iter
    - Ok
    - crate::types::from_redis_value
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn resolve(self,cache_manager: &CacheManager,result: Value,)
      -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_next_reply
      Src: /src/redis-rs/redis/src/caching/cmd.rs:83,1
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:87,1
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:87,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cmd.rs:89,1
    - Dst: bool::clone
      Src: /src/redis-rs/redis/src/caching/cmd.rs:92,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:98,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/caching/cmd.rs:100,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/caching/cmd.rs:100,1
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:113,1
    - Dst: std::iter::zip
      Src: /src/redis-rs/redis/src/caching/cmd.rs:115,1
    - Dst: std::iter::zip
      Src: /src/redis-rs/redis/src/caching/cmd.rs:115,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cmd.rs:118,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/caching/cmd.rs:121,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/caching/cmd.rs:129,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/caching/cmd.rs:129,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:134,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/caching/cmd.rs:134,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 63
    argCount: 2
    argNames:
    - cache_manager
    - replies
    argTypes:
    - '&CacheManager'
    - impl Iterator<Item = Value>
    constantsTouched: []
    func_position:
      end: 137
      start: 76
    functionDepth: 29
    functionLinenumber: 76
    functionLinenumberEnd: 137
    functionName: CacheableCommand::resolve
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - bool::clone
    - impl Iterator<Item = Value>::next
    - Err
    - get_next_reply
    - Self::insert
    - RedisError::from
    - clone
    - Value::Array
    - Ok
    - std::iter::zip
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn resolve(self,cache_manager: &CacheManager,mut replies:
      impl Iterator<Item = Value>,) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/caching/cmd.rs:141,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/caching/cmd.rs:142,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/caching/cmd.rs:142,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/caching/cmd.rs:142,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:143,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:148,1
    - Dst: Cmd::pttl
      Src: /src/redis-rs/redis/src/caching/cmd.rs:148,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:149,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/caching/cmd.rs:149,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/caching/cmd.rs:158,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/caching/cmd.rs:159,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/caching/cmd.rs:161,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/caching/cmd.rs:164,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:166,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:168,1
    - Dst: Cmd::pttl
      Src: /src/redis-rs/redis/src/caching/cmd.rs:168,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 2
    argNames:
    - cache_manager
    - pipeline
    argTypes:
    - '&CacheManager'
    - '&mut Pipeline'
    constantsTouched: []
    func_position:
      end: 172
      start: 139
    functionDepth: 25
    functionLinenumber: 139
    functionLinenumberEnd: 172
    functionName: CacheableCommand::pack_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - add_command
    - arg
    - clone
    - Cmd::arg
    - Cmd::pttl
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn pack_command(&self, cache_manager: &CacheManager, pipeline:
      &mut Pipeline)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:176,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:177,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/caching/cmd.rs:179,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/caching/cmd.rs:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - replies
    argTypes:
    - impl Iterator<Item = Value>
    constantsTouched: []
    func_position:
      end: 184
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 184
    functionName: get_next_reply
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 2
    functionsReached:
    - Err
    - RedisError::from
    - Ok
    - impl Iterator<Item = Value>::next
    linkageType: ''
    returnType: RedisResult
    signature: 'fn get_next_reply(mut replies: impl Iterator<Item = Value>) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fetch_add
      Src: /src/redis-rs/redis/src/caching/statistics.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Statistics::increase_hit
    functionSourceFile: /src/redis-rs/redis/src/caching/statistics.rs
    functionUses: 0
    functionsReached:
    - fetch_add
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn increase_hit(&self, val: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fetch_add
      Src: /src/redis-rs/redis/src/caching/statistics.rs:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Statistics::increase_miss
    functionSourceFile: /src/redis-rs/redis/src/caching/statistics.rs
    functionUses: 0
    functionsReached:
    - fetch_add
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn increase_miss(&self, val: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fetch_add
      Src: /src/redis-rs/redis/src/caching/statistics.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - val
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Statistics::increase_invalidate
    functionSourceFile: /src/redis-rs/redis/src/caching/statistics.rs
    functionUses: 0
    functionsReached:
    - fetch_add
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn increase_invalidate(&self, val: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/redis-rs/redis/src/caching/statistics.rs:40,1
    - Dst: load
      Src: /src/redis-rs/redis/src/caching/statistics.rs:41,1
    - Dst: load
      Src: /src/redis-rs/redis/src/caching/statistics.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - Arc<Statistics>
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: CacheStatistics::from
    functionSourceFile: /src/redis-rs/redis/src/caching/statistics.rs
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: Arc<Statistics>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:31,1
    - Dst: ShardedLRU::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:31,1
    - Dst: Self::increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 11
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: CacheManager::new
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 2
    functionsReached:
    - ShardedLRU::new
    - Self::increase_epoch
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(cache_config: CacheConfig) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:46,1
    - Dst: increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 6
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: CacheManager::clone_and_increase_epoch
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - clone
    - increase_epoch
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn clone_and_increase_epoch(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - redis_key
    - redis_cmd
    argTypes:
    - '&''a [u8]'
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 31
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: CacheManager::get
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn get<''a>(&self, redis_key: &''a [u8], redis_cmd: &''a
      [u8]) -> Option<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:64,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:68,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:68,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:68,1
    - Dst: std::cmp::min
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:69,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 5
    argNames:
    - redis_key
    - cmd_key
    - value
    - client_side_expire_time
    - server_side_ttl_value
    argTypes:
    - '&[u8]'
    - '&[u8]'
    - Value
    - Instant
    - '&Value'
    constantsTouched: []
    func_position:
      end: 75
      start: 56
    functionDepth: 29
    functionLinenumber: 56
    functionLinenumberEnd: 75
    functionName: CacheManager::insert
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Instant::now
    - std::cmp::min
    - add
    - Duration::from_millis
    - insert
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn insert(&self,redis_key: &[u8],cmd_key: &[u8],value:
      Value,client_side_expire_time: Instant,server_side_ttl_value: &Value,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:78,1
    - Dst: into
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 6
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: CacheManager::statistics
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - into
    - clone
    linkageType: ''
    returnType: CacheStatistics
    signature: pub(crate) fn statistics(&self) -> CacheStatistics
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:83,1
    - Dst: first
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:84,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:85,1
    - Dst: invalidate
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - kind
    - data
    argTypes:
    - '&PushKind'
    - '&[Value]'
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 9
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: CacheManager::handle_push_value
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - first
    - invalidate
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn handle_push_value(&self, kind: &PushKind, data: &[Value])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CacheManager::get_cached_cmd_inner
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:93,1
    - Dst: Cmd::get_cache_config
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:95,1
    - Dst: '&Option::as_ref'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:95,1
    - Dst: is_some_and
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:95,1
    - Dst: CacheManager::get_cached_cmd_inner
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 106
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 106
    functionName: CacheManager::get_cached_cmd
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::get_cache_config
    - CacheManager::get_cached_cmd_inner
    - '&Option::as_ref'
    - is_some_and
    linkageType: ''
    returnType: PrepCacheItem
    signature: 'pub(crate) fn get_cached_cmd<''a>(&self, cmd: &''a Cmd) -> PrepCacheItem<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_cache_config
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:109,1
    - Dst: '&Option::as_ref'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:109,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:109,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:109,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:115,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: CacheManager::calculate_expiration_time
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - and_then
    - '&Option::as_ref'
    - unwrap_or
    - add
    - Cmd::get_cache_config
    linkageType: ''
    returnType: Instant
    signature: 'fn calculate_expiration_time(&self, cmd: &Cmd) -> Instant'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:125,1
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:126,1
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:127,1
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 4
    argNames:
    - buffer
    - single_command_name
    - redis_key
    - json_path_key
    argTypes:
    - '&mut Vec<u8>'
    - '&[u8]'
    - '&[u8]'
    - Option<&[u8]>
    constantsTouched: []
    func_position:
      end: 131
      start: 118
    functionDepth: 27
    functionLinenumber: 118
    functionLinenumberEnd: 131
    functionName: CacheManager::prepare_key_buffer
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - extend_from_slice
    - clear
    linkageType: ''
    returnType: void
    signature: 'fn prepare_key_buffer(&self,buffer: &mut Vec<u8>,single_command_name:
      &[u8],redis_key: &[u8],json_path_key: Option<&[u8]>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:134,1
    - Dst: impl Clone + ExactSizeIterator::skip
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:134,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:134,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:137,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 13
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: CacheManager::extract_simple_arguments
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Cmd::args_iter
    - Some
    - filter_map
    - impl Clone + ExactSizeIterator::skip
    - collect
    linkageType: ''
    returnType: Vec
    signature: 'fn extract_simple_arguments<''a>(&self, cmd: &''a Cmd) -> Vec<&''a
      [u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: CacheManager::extract_simple_arguments
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:152,1
    - Dst: bool::then
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:153,1
    - Dst: Vec::pop
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:154,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:154,1
    - Dst: '&mut Vec<&''a [u8]>::push'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:154,1
    - Dst: flatten
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:153,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:156,1
    - Dst: Vec::iter
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:158,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:158,1
    - Dst: CacheManager::prepare_key_buffer
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:159,1
    - Dst: CacheManager::get
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:166,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:167,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:169,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:170,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 6
    argNames:
    - cmd
    - is_json_command
    - single_command_name
    - commands
    - response
    - tail_args
    argTypes:
    - '&''a Cmd'
    - bool
    - '&[u8]'
    - '&mut Vec<(usize, MultipleCachedCommandPart<''a>)>'
    - '&mut Vec<Value>'
    - '&mut Vec<&''a [u8]>'
    constantsTouched: []
    func_position:
      end: 180
      start: 143
    functionDepth: 29
    functionLinenumber: 143
    functionLinenumberEnd: 180
    functionName: CacheManager::process_multi_key_arguments
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Vec::pop
    - flatten
    - CacheManager::get
    - CacheManager::prepare_key_buffer
    - push
    - bool::then
    - '&mut Vec<&''a [u8]>::push'
    - CacheManager::extract_simple_arguments
    - inspect
    - Vec::iter
    - Self::clone
    - enumerate
    - Vec::new
    linkageType: ''
    returnType: void
    signature: 'fn process_multi_key_arguments<''a>(&self,cmd: &''a Cmd,is_json_command:
      bool,single_command_name: &[u8],commands: &mut Vec<(usize, MultipleCachedCommandPart<''a>)>,response:
      &mut Vec<Value>,tail_args: &mut Vec<&''a [u8]>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:189,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:190,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:191,1
    - Dst: '&''a str::starts_with'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:193,1
    - Dst: CacheManager::process_multi_key_arguments
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:195,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:204,1
    - Dst: PrepCacheItem::Cached
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:205,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:205,1
    - Dst: PrepCacheItem::NotCached
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 4
    argNames:
    - cmd
    - command_name_str
    - single_command_name
    - client_side_expire
    argTypes:
    - '&''a Cmd'
    - '&''a str'
    - '&[u8]'
    - Instant
    constantsTouched: []
    func_position:
      end: 215
      start: 182
    functionDepth: 30
    functionLinenumber: 182
    functionLinenumberEnd: 215
    functionName: CacheManager::handle_multi_key_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - CacheManager::process_multi_key_arguments
    - '&''a str::starts_with'
    - PrepCacheItem::NotCached
    - PrepCacheItem::Cached
    - Value::Array
    - is_empty
    - Vec::new
    linkageType: ''
    returnType: PrepCacheItem
    signature: 'fn handle_multi_key_command<''a>(&self,cmd: &''a Cmd,command_name_str:
      &''a str,single_command_name: &[u8],client_side_expire: Instant,) -> PrepCacheItem<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::arg_idx
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:222,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:227,1
    - Dst: CacheManager::get
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:229,1
    - Dst: PrepCacheItem::Cached
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:230,1
    - Dst: PrepCacheItem::NotCached
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:233,1
    - Dst: CacheableCommand::Single
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:233,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - cmd
    - client_side_expire
    argTypes:
    - '&''a Cmd'
    - Instant
    constantsTouched: []
    func_position:
      end: 241
      start: 217
    functionDepth: 32
    functionLinenumber: 217
    functionLinenumberEnd: 241
    functionName: CacheManager::handle_single_key_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - PrepCacheItem::NotCached
    - CacheManager::get
    - PrepCacheItem::Cached
    - as_slice
    - Cmd::arg_idx
    - CacheableCommand::Single
    linkageType: ''
    returnType: PrepCacheItem
    signature: 'fn handle_single_key_command<''a>(&self,cmd: &''a Cmd,client_side_expire:
      Instant,) -> PrepCacheItem<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd_len
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:249,1
    - Dst: Cmd::arg_idx
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:253,1
    - Dst: CacheManager::calculate_expiration_time
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:258,1
    - Dst: is_multi_key
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:260,1
    - Dst: CacheManager::handle_multi_key_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:261,1
    - Dst: crate::commands::is_cachable_cmd
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:269,1
    - Dst: CacheManager::handle_single_key_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:270,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 274
      start: 248
    functionDepth: 31
    functionLinenumber: 248
    functionLinenumberEnd: 274
    functionName: CacheManager::get_cached_cmd_inner
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 1
    functionsReached:
    - CacheManager::calculate_expiration_time
    - crate::commands::is_cachable_cmd
    - CacheManager::handle_multi_key_command
    - CacheManager::handle_single_key_command
    - Cmd::arg_idx
    - is_multi_key
    - cmd::cmd_len
    linkageType: ''
    returnType: PrepCacheItem
    signature: 'fn get_cached_cmd_inner<''a>(&self, cmd: &''a Cmd) -> PrepCacheItem<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pipeline::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:284,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:286,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:286,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:287,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:288,1
    - Dst: Vec::add_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:289,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:289,1
    - Dst: CacheManager::get_cached_cmd
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:292,1
    - Dst: pack_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:296,1
    - Dst: Vec::add_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:300,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:300,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:303,1
    - Dst: CachingResult::Item
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:303,1
    - Dst: Vec::atomic
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:307,1
    - Dst: len
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:308,1
    - Dst: len
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 57
    argCount: 1
    argNames:
    - requested_pipeline
    argTypes:
    - '&''a Pipeline'
    constantsTouched: []
    func_position:
      end: 317
      start: 278
    functionDepth: 22
    functionLinenumber: 278
    functionLinenumberEnd: 317
    functionName: CacheManager::get_cached_pipeline
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - len
    - pack_command
    - enumerate
    - Cmd::clone
    - CacheManager::get_cached_cmd
    - CachingResult::Item
    - push
    - Pipeline::new
    - Vec::add_command
    - Vec::atomic
    - iter
    - contains
    linkageType: ''
    returnType: (CacheablePipeline
    signature: 'pub(crate) fn get_cached_pipeline<''a>(&self,requested_pipeline: &''a
      Pipeline,) -> (CacheablePipeline<''a>, Pipeline, (usize, usize))'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:325,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - command_name
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: is_multi_key
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn is_multi_key(command_name: &[u8]) -> Option<(&''static str, &''static
      [u8])>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:337,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:338,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:339,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:340,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:342,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:342,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:343,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:343,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:343,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:344,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:344,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:344,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:345,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:345,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:345,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:347,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:347,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:347,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:348,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:348,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:348,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:349,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:349,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:349,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:355,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 336
    functionDepth: 29
    functionLinenumber: 336
    functionLinenumberEnd: 371
    functionName: tests::test_custom_command_ttl
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - CacheConfig::new
    - Self::insert
    - Value::Int
    - add
    - '&str::as_slice'
    - Duration::from_millis
    - std::thread::sleep
    - Duration::from_secs
    - CacheManager::new
    linkageType: ''
    returnType: void
    signature: fn test_custom_command_ttl()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:376,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:377,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:378,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:379,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:381,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:381,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:383,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:384,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:385,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:387,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:387,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:387,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:390,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:390,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:390,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:391,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:391,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:391,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:392,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:392,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:392,1
    - Dst: do_inserts
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:407,1
    - Dst: do_hit_gets
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:408,1
    - Dst: do_miss_gets
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:410,1
    - Dst: do_inserts
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:413,1
    - Dst: do_hit_gets
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:414,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 427
      start: 375
    functionDepth: 29
    functionLinenumber: 375
    functionLinenumberEnd: 427
    functionName: tests::test_epoch_on_shared_cache_managers
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Instant::now
    - CacheConfig::new
    - Self::clone_and_increase_epoch
    - Value::Int
    - add
    - '&str::as_slice'
    - do_inserts
    - Duration::from_secs
    - CacheManager::new
    - do_miss_gets
    - insert
    - do_hit_gets
    linkageType: ''
    returnType: void
    signature: fn test_epoch_on_shared_cache_managers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::get
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:39,1
    - Dst: NonZeroUsize::get
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:42,1
    - Dst: NonZeroUsize::get
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:45,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:48,1
    - Dst: LruCache::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:50,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:50,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:50,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:51,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:51,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:53,1
    - Dst: Statistics::default
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:53,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - total_key_size
    argTypes:
    - NonZeroUsize
    constantsTouched: []
    func_position:
      end: 59
      start: 37
    functionDepth: 31
    functionLinenumber: 37
    functionLinenumberEnd: 59
    functionName: ShardedLRU::new
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 1
    functionsReached:
    - Self::unwrap
    - Statistics::default
    - std::sync::Mutex::new
    - AtomicUsize::new
    - Self::push
    - NonZeroUsize::new
    - Arc::new
    - NonZeroUsize::get
    - LruCache::new
    - Vec::with_capacity
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(total_key_size: NonZeroUsize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: DefaultHasher::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:63,1
    - Dst: TlsFilePaths::write
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:64,1
    - Dst: TlsFilePaths::finish
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:65,1
    - Dst: len
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:65,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:66,1
    - Dst: Self::unwrap_or_else
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:66,1
    - Dst: into_inner
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 11
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: ShardedLRU::get_shard
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - len
    - into_inner
    - TlsFilePaths::write
    - Self::unwrap_or_else
    - DefaultHasher::new
    - TlsFilePaths::finish
    - Self::lock
    linkageType: ''
    returnType: std::sync::MutexGuard
    signature: 'pub(crate) fn get_shard(&self, key: &[u8]) -> std::sync::MutexGuard<''_,
      LRUCacheShard>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShardedLRU::get_shard
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:75,1
    - Dst: std::sync::MutexGuard::get_mut
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:76,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:81,1
    - Dst: increase_invalidate
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:83,1
    - Dst: len
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:84,1
    - Dst: increase_miss
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:85,1
    - Dst: std::sync::MutexGuard::pop
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:86,1
    - Dst: increase_hit
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:92,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:93,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:93,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:97,1
    - Dst: increase_miss
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:98,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 54
    argCount: 3
    argNames:
    - redis_key
    - redis_cmd
    - epoch
    argTypes:
    - '&''a [u8]'
    - '&''a [u8]'
    - usize
    constantsTouched: []
    func_position:
      end: 100
      start: 69
    functionDepth: 12
    functionLinenumber: 69
    functionLinenumberEnd: 100
    functionName: ShardedLRU::get
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - std::sync::MutexGuard::get_mut
    - Instant::now
    - len
    - ShardedLRU::get_shard
    - std::sync::MutexGuard::pop
    - increase_miss
    - clone
    - increase_invalidate
    - increase_hit
    - Some
    - drop
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn get<''a>(&self,redis_key: &''a [u8],redis_cmd: &''a
      [u8],epoch: usize,) -> Option<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShardedLRU::get_shard
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:110,1
    - Dst: std::sync::MutexGuard::peek_mut
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:111,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:121,1
    - Dst: '&[u8]::to_vec'
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:122,1
    - Dst: std::sync::MutexGuard::push
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:128,1
    - Dst: '&[u8]::to_vec'
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 5
    argNames:
    - redis_key
    - cmd_key
    - value
    - expire_time
    - epoch
    argTypes:
    - '&[u8]'
    - '&[u8]'
    - Value
    - Instant
    - usize
    constantsTouched: []
    func_position:
      end: 139
      start: 102
    functionDepth: 22
    functionLinenumber: 102
    functionLinenumberEnd: 139
    functionName: ShardedLRU::insert
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - '&[u8]::to_vec'
    - ShardedLRU::get_shard
    - push
    - std::sync::MutexGuard::peek_mut
    - std::sync::MutexGuard::push
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn insert(&self,redis_key: &[u8],cmd_key: &[u8],value:
      Value,expire_time: Instant,epoch: usize,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShardedLRU::get_shard
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:143,1
    - Dst: std::sync::MutexGuard::pop
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:143,1
    - Dst: increase_invalidate
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:145,1
    - Dst: len
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - cache_key
    argTypes:
    - '&Vec<u8>'
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 12
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: ShardedLRU::invalidate
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - std::sync::MutexGuard::pop
    - len
    - increase_invalidate
    - ShardedLRU::get_shard
    linkageType: ''
    returnType: void
    signature: 'pub(crate) fn invalidate(&self, cache_key: &Vec<u8>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: fetch_add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: ShardedLRU::increase_epoch
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - fetch_add
    linkageType: ''
    returnType: usize
    signature: pub(crate) fn increase_epoch(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShardedLRU::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:165,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:165,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:165,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:167,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:170,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:171,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:171,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:171,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:184,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:187,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:188,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:188,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:188,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:196,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 202
      start: 164
    functionDepth: 32
    functionLinenumber: 164
    functionLinenumberEnd: 202
    functionName: tests::test_expire
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - Instant::now
    - Self::insert
    - NonZeroUsize::new
    - add
    - Value::Boolean
    - Duration::from_millis
    - ShardedLRU::new
    - std::thread::sleep
    - Duration::from_secs
    linkageType: ''
    returnType: void
    signature: fn test_expire()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShardedLRU::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:206,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:206,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:206,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:208,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:211,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:212,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:212,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:212,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:216,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:219,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:220,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:220,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:220,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:230,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 241
      start: 205
    functionDepth: 32
    functionLinenumber: 205
    functionLinenumberEnd: 241
    functionName: tests::test_different_cmd_keys
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - Instant::now
    - Self::insert
    - Value::Int
    - NonZeroUsize::new
    - add
    - Duration::from_millis
    - ShardedLRU::new
    - std::thread::sleep
    - Duration::from_secs
    linkageType: ''
    returnType: void
    signature: fn test_different_cmd_keys()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShardedLRU::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:245,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:245,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:245,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:247,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:250,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:251,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:251,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:251,1
    - Dst: Self::invalidate
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:264,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 270
      start: 244
    functionDepth: 32
    functionLinenumber: 244
    functionLinenumberEnd: 270
    functionName: tests::test_invalidate
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - Instant::now
    - Self::insert
    - to_vec
    - NonZeroUsize::new
    - add
    - Value::Boolean
    - ShardedLRU::new
    - Self::invalidate
    - Duration::from_secs
    linkageType: ''
    returnType: void
    signature: fn test_invalidate()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ShardedLRU::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:274,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:274,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:274,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:278,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:281,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:282,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:282,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:282,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:285,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:286,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:288,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:289,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:289,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 273
    functionDepth: 32
    functionLinenumber: 273
    functionLinenumberEnd: 312
    functionName: tests::test_epoch_change
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - Instant::now
    - Self::insert
    - NonZeroUsize::new
    - add
    - Value::Boolean
    - ShardedLRU::new
    - Duration::from_secs
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn test_epoch_change()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BTreeMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:13,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 11
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: SlotRangeMap::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - BTreeMap::new
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - start
    - end
    - value
    argTypes:
    - u16
    - u16
    - V
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 29
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: SlotRangeMap::insert
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: 'pub fn insert(&mut self, start: u16, end: u16, value: V)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: range
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:24,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:24,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:24,1
    - Dst: then_some
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - slot
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 26
    functionLinenumber: 23
    functionLinenumberEnd: 28
    functionName: SlotRangeMap::get
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - and_then
    - next
    - range
    - then_some
    linkageType: ''
    returnType: Option
    signature: 'pub fn get(&self, slot: u16) -> Option<&V>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: values
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:32,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 14
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: SlotRangeMap::values
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - map
    - values
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn values(&self) -> impl Iterator<Item = &V>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:37,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 12
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: SlotRangeMap::iter
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - map
    - iter
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn iter(&self) -> impl Iterator<Item = (u16, u16, &V)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 27
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: SlotRangeMap::clear
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: pub fn clear(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 11
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: SlotRangeMap::default
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotRangeMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:58,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:59,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 68
      start: 57
    functionDepth: 29
    functionLinenumber: 57
    functionLinenumberEnd: 68
    functionName: tests::point_lookup_within_range
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - SlotRangeMap::new
    - insert
    linkageType: ''
    returnType: void
    signature: fn point_lookup_within_range()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotRangeMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:72,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:73,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 29
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: tests::point_lookup_in_gaps_returns_none
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - SlotRangeMap::new
    - insert
    linkageType: ''
    returnType: void
    signature: fn point_lookup_in_gaps_returns_none()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotRangeMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:83,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:84,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:85,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:87,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 29
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: tests::iter_yields_ranges_in_order
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - SlotRangeMap::new
    - iter
    - insert
    - collect
    linkageType: ''
    returnType: void
    signature: fn iter_yields_ranges_in_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:92,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - Option<Route>
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: SingleNodeRoutingInfo::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - impl combine::Parser::map
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: Option<Route>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:124,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:126,1
    - Dst: '&''a impl Routable::arg_idx'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:126,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:128,1
    - Dst: '&''a impl Routable::arg_idx'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - original_cmd
    - indices
    argTypes:
    - '&''a impl Routable'
    - impl Iterator<Item = &'b usize> + 'a
    constantsTouched: []
    func_position:
      end: 131
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 131
    functionName: command_for_multi_slot_indices
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - Self::arg
    - '&''a impl Routable::arg_idx'
    linkageType: ''
    returnType: Cmd
    signature: 'pub(crate) fn command_for_multi_slot_indices<''a, ''b>(original_cmd:
      &''a impl Routable,indices: impl Iterator<Item = &''b usize> + ''a,) -> Cmdwhere''b:
      ''a,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:139,1
    - Dst: std::iter::Chain::try_fold
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:139,1
    - Dst: RedisResult::Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:143,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:144,1
    - Dst: std::cmp::min
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:153,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:156,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:158,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - values
    - op
    argTypes:
    - Vec<Value>
    - AggregateOp
    constantsTouched: []
    func_position:
      end: 159
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 159
    functionName: aggregate
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - std::cmp::min
    - into
    - Value::Int
    - std::iter::Chain::try_fold
    - Ok
    - Self::into_iter
    - RedisResult::Err
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn aggregate(values: Vec<Value>, op: AggregateOp) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:166,1
    - Dst: std::iter::Chain::try_fold
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:166,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:166,1
    - Dst: RedisResult::Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:170,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:171,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:179,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:184,1
    - Dst: std::iter::Chain::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:184,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:188,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:188,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:199,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:201,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:201,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:202,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:202,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:204,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:202,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 2
    argNames:
    - values
    - op
    argTypes:
    - Vec<Value>
    - LogicalAggregateOp
    constantsTouched: []
    func_position:
      end: 207
      start: 162
    functionDepth: 11
    functionLinenumber: 162
    functionLinenumberEnd: 207
    functionName: logical_aggregate
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisResult::into_iter
    - std::iter::Chain::enumerate
    - Err
    - into
    - Value::Int
    - std::iter::Chain::try_fold
    - std::iter::Chain::map
    - Ok
    - Value::Array
    - Self::into_iter
    - RedisResult::Err
    - is_empty
    - Vec::new
    - collect
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn logical_aggregate(values: Vec<Value>, op: LogicalAggregateOp)
      -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:210,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:215,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:217,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:219,1
    - Dst: entry
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:220,1
    - Dst: or_insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:220,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:222,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:222,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:229,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:229,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:234,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:234,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:243,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:243,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:245,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:245,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:243,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:248,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:248,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 249
      start: 209
    functionDepth: 11
    functionLinenumber: 209
    functionLinenumberEnd: 249
    functionName: combine_map_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - Err
    - into
    - Value::Int
    - or_insert
    - std::iter::Chain::map
    - Value::BulkString
    - into_iter
    - next
    - Ok
    - Value::Map
    - entry
    - RedisResult::into_iter
    - collect
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn combine_map_results(values: Vec<Value>) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:253,1
    - Dst: RedisResult::extend
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:257,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:259,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:259,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:268,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 269
      start: 252
    functionDepth: 11
    functionLinenumber: 252
    functionLinenumberEnd: 269
    functionName: combine_array_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisResult::extend
    - Err
    - into
    - Ok
    - Value::Array
    - Vec::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn combine_array_results(values: Vec<Value>) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:304,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:305,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:305,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:314,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:318,1
    - Dst: '&''a [(Route, Vec<usize>)]::iter'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:318,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:318,1
    - Dst: Cow::Borrowed
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:320,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:323,1
    - Dst: '&''a [(Route, Vec<usize>)]::iter'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:323,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:323,1
    - Dst: Cow::Borrowed
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:325,1
    - Dst: Cmd::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:325,1
    - Dst: check_indices_input
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:331,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:332,1
    - Dst: '&''a [(Route, Vec<usize>)]::iter'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:332,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:332,1
    - Dst: Cow::Owned
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:333,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:334,1
    - Dst: RedisResult::step_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:334,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:334,1
    - Dst: "iter()\n                        .step_by(3)\n                        .map(|idx|\
        \ idx / 3)\n                        .collect::<Vec<usize>>"
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:334,1
    - Dst: check_indices_input
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:347,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:348,1
    - Dst: '&''a [(Route, Vec<usize>)]::iter'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:348,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:348,1
    - Dst: Cow::Owned
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:349,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:350,1
    - Dst: RedisResult::step_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:350,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:350,1
    - Dst: "iter()\n                        .step_by(2)\n                        .map(|idx|\
        \ idx / 2)\n                        .collect::<Vec<usize>>"
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:350,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 78
    argCount: 2
    argNames:
    - route_arg_indices
    - args_pattern
    argTypes:
    - '&''a [(Route, Vec<usize>)]'
    - '&MultiSlotArgPattern'
    constantsTouched: []
    func_position:
      end: 359
      start: 298
    functionDepth: 27
    functionLinenumber: 298
    functionLinenumberEnd: 359
    functionName: calculate_multi_slot_result_indices
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Cmd::len
    - '&''a [(Route, Vec<usize>)]::iter'
    - Cow::Borrowed
    - Cow::Owned
    - "iter()\n                        .step_by(2)\n                        .map(|idx|\
      \ idx / 2)\n                        .collect::<Vec<usize>>"
    - Err
    - map
    - RedisError::from
    - RedisResult::step_by
    - check_indices_input
    - Ok
    - "iter()\n                        .step_by(3)\n                        .map(|idx|\
      \ idx / 3)\n                        .collect::<Vec<usize>>"
    - Cmd::iter
    linkageType: ''
    returnType: RedisResult
    signature: 'fn calculate_multi_slot_result_indices<''a>(route_arg_indices: &''a
      [(Route, Vec<usize>)],args_pattern: &MultiSlotArgPattern,) -> RedisResult<MultiSlotResIdxIter<''a>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: calculate_multi_slot_result_indices
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:387,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:388,1
    - Dst: RedisResult::resize
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:389,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:390,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:390,1
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:391,1
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:396,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:396,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:397,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:397,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:408,1
    - Dst: std::iter::Chain::zip
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:408,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:412,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:412,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:417,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:417,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:426,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:426,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 3
    argNames:
    - values
    - route_arg_indices
    - args_pattern
    argTypes:
    - Vec<Value>
    - '&[(Route, Vec<usize>)]'
    - '&MultiSlotArgPattern'
    constantsTouched: []
    func_position:
      end: 427
      start: 382
    functionDepth: 28
    functionLinenumber: 382
    functionLinenumberEnd: 427
    functionName: combine_and_sort_array_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisResult::into_iter
    - zip
    - RedisResult::len
    - std::iter::Chain::zip
    - Self::len
    - Err
    - into
    - RedisError::from
    - RedisResult::resize
    - fold
    - Value::Array
    - Ok
    - iter
    - Self::iter
    - calculate_multi_slot_result_indices
    - Vec::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn combine_and_sort_array_results(values: Vec<Value>,route_arg_indices:
      &[(Route, Vec<usize>)],args_pattern: &MultiSlotArgPattern,) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Route::with_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:431,1
    - Dst: Route::with_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - is_readonly
    - key
    argTypes:
    - bool
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: get_route
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Route::with_key
    linkageType: ''
    returnType: Route
    signature: 'fn get_route(is_readonly: bool, key: &[u8]) -> Route'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: commands::is_readonly_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:488,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:489,1
    - Dst: Option::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:494,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:495,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:496,1
    - Dst: Option::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:498,1
    - Dst: get_route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:499,1
    - Dst: Self::entry
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:500,1
    - Dst: or_insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:500,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:500,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:502,1
    - Dst: incr_add_next_arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:508,1
    - Dst: Option::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:512,1
    - Dst: Option::is_none
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:512,1
    - Dst: Self::values_mut
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:518,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:519,1
    - Dst: incr_add_next_arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:526,1
    - Dst: incr_add_next_arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:528,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:534,1
    - Dst: std::iter::Chain::collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:534,1
    - Dst: Self::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:535,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:539,1
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:539,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:540,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:540,1
    - Dst: Self::pop
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:540,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:540,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:542,1
    - Dst: MultipleNodeRoutingInfo::MultiSlot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:543,1
    - Dst: ResponsePolicy::for_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:544,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 86
    argCount: 4
    argNames:
    - routable
    - cmd
    - first_key_index
    - args_pattern
    argTypes:
    - '&R'
    - '&[u8]'
    - usize
    - MultiSlotArgPattern
    constantsTouched: []
    func_position:
      end: 547
      start: 479
    functionDepth: 22
    functionLinenumber: 479
    functionLinenumberEnd: 547
    functionName: multi_shard
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - get_route
    - RoutingInfo::MultiNode
    - or_insert
    - RoutingInfo::SingleNode
    - unwrap
    - SingleNodeRoutingInfo::SpecificNode
    - Some
    - HashMap::new
    - incr_add_next_arg
    - Self::len
    - Self::values_mut
    - Self::pop
    - Self::is_empty
    - Self::into_iter
    - std::iter::Chain::collect
    - commands::is_readonly_cmd
    - Option::arg_idx
    - MultipleNodeRoutingInfo::MultiSlot
    - Option::is_none
    - Self::entry
    - push
    - ResponsePolicy::for_command
    - Vec::new
    linkageType: ''
    returnType: Option
    signature: 'fn multi_shard<R>(routable: &R,cmd: &[u8],first_key_index: usize,args_pattern:
      MultiSlotArgPattern,) -> Option<RoutingInfo>whereR: Routable + ?Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:553,1
    - Dst: Self::AggregateLogical
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:553,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:556,1
    - Dst: Self::Aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:556,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:558,1
    - Dst: Self::Aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:558,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:565,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:574,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:576,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:578,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:581,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:592,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 596
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 596
    functionName: ResponsePolicy::for_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - Some
    - Self::AggregateLogical
    - Self::Aggregate
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn for_command(cmd: &[u8]) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RouteBy::MultiShard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:667,1
    - Dst: RouteBy::MultiShard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:670,1
    - Dst: RouteBy::MultiShard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:671,1
    - Dst: RouteBy::MultiShard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 768
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 768
    functionName: base_routing
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RouteBy::MultiShard
    linkageType: ''
    returnType: RouteBy
    signature: 'fn base_routing(cmd: &[u8]) -> RouteBy'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionAddr::command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:776,1
    - Dst: base_routing
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:777,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:778,1
    - Dst: Self::MultiNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:778,1
    - Dst: ResponsePolicy::for_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:780,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:783,1
    - Dst: Self::MultiNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:783,1
    - Dst: ResponsePolicy::for_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:785,1
    - Dst: multi_shard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:788,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:790,1
    - Dst: Self::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:790,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:793,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:793,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:795,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:795,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:793,1
    - Dst: parse::<u64>
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:796,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:796,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:798,1
    - Dst: Self::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:798,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:800,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:800,1
    - Dst: Self::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:800,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:804,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:804,1
    - Dst: Self::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:804,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:807,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:807,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:809,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:809,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:807,1
    - Dst: parse::<u64>
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:810,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:810,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:812,1
    - Dst: Self::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:812,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:814,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:814,1
    - Dst: Self::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:814,1
    - Dst: ConnectionAddr::position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:819,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:820,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:820,1
    - Dst: Self::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:821,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:824,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:824,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:826,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:826,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:824,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:827,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:827,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:824,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:824,1
    - Dst: Self::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:830,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:830,1
    - Dst: Route::with_slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:830,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:836,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:837,1
    - Dst: Self::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:837,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:838,1
    - Dst: Self::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:838,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 120
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&R'
    constantsTouched: []
    func_position:
      end: 843
      start: 772
    functionDepth: 33
    functionLinenumber: 772
    functionLinenumberEnd: 843
    functionName: RoutingInfo::for_routable
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Self::MultiNode
    - base_routing
    - SingleNodeRoutingInfo::SpecificNode
    - Some
    - Self::SingleNode
    - Option::map
    - map
    - Route::with_slot
    - ok
    - multi_shard
    - Option::and_then
    - parse::<u16>
    - parse::<u64>
    - and_then
    - std::str::from_utf8
    - ConnectionAddr::command
    - Self::for_key
    - ConnectionAddr::arg_idx
    - ConnectionAddr::position
    - ResponsePolicy::for_command
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn for_routable<R>(r: &R) -> Option<Self>whereR: Routable
      + ?Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:846,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:846,1
    - Dst: get_route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:846,1
    - Dst: commands::is_readonly_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cmd
    - key
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 2
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: RoutingInfo::for_key
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - get_route
    - commands::is_readonly_cmd
    - Self::SingleNode
    - SingleNodeRoutingInfo::SpecificNode
    linkageType: ''
    returnType: Self
    signature: 'fn for_key(cmd: &[u8], key: &[u8]) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Routable::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:858,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:858,1
    - Dst: to_ascii_uppercase
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:858,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:859,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:864,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:868,1
    - Dst: Routable::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:868,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:870,1
    - Dst: reserve
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:871,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:871,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:872,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:873,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:874,1
    - Dst: make_ascii_uppercase
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:875,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 880
      start: 857
    functionDepth: 7
    functionLinenumber: 857
    functionLinenumberEnd: 880
    functionName: Routable::command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - to_ascii_uppercase
    - make_ascii_uppercase
    - Option::map
    - Routable::arg_idx
    - len
    - extend
    - reserve
    - as_slice
    - Some
    linkageType: ''
    returnType: Option
    signature: fn command(&self) -> Option<Vec<u8>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:895,1
    - Dst: impl Clone + ExactSizeIterator::position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:895,1
    - Dst: Self::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - candidate
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 13
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: Cmd::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Self::eq_ignore_ascii_case
    - Cmd::args_iter
    - impl Clone + ExactSizeIterator::position
    linkageType: ''
    returnType: Option
    signature: 'fn position(&self, candidate: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:905,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:906,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 911
      start: 903
    functionDepth: 31
    functionLinenumber: 903
    functionLinenumberEnd: 911
    functionName: Value::arg_idx
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - get
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn arg_idx(&self, idx: usize) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:915,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:915,1
    - Dst: Self::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - candidate
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 921
      start: 913
    functionDepth: 12
    functionLinenumber: 913
    functionLinenumberEnd: 921
    functionName: Value::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - position
    - Self::eq_ignore_ascii_case
    - iter
    linkageType: ''
    returnType: Option
    signature: 'fn position(&self, candidate: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - slot
    - slot_addr
    argTypes:
    - u16
    - SlotAddr
    constantsTouched: []
    func_position:
      end: 953
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 953
    functionName: Route::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(slot: u16, slot_addr: SlotAddr) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - slot_addr
    argTypes:
    - Slot
    - SlotAddr
    constantsTouched: []
    func_position:
      end: 958
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 958
    functionName: Route::with_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 2
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_slot(slot: Slot, slot_addr: SlotAddr) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:962,1
    - Dst: Slot::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - slot_addr
    argTypes:
    - impl AsRef<[u8]>
    - SlotAddr
    constantsTouched: []
    func_position:
      end: 963
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 963
    functionName: Route::with_key
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - Slot::for_key
    - Self::with_slot
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_key(key: impl AsRef<[u8]>, slot_addr: SlotAddr) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 968
      start: 966
    functionDepth: 0
    functionLinenumber: 966
    functionLinenumberEnd: 968
    functionName: Route::slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub(crate) fn slot(self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 973
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 973
    functionName: Route::slot_addr
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SlotAddr
    signature: pub(crate) fn slot_addr(self) -> SlotAddr
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:977,1
    - Dst: Slot::new_random
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 978
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 978
    functionName: Route::new_random_primary
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Self::with_slot
    - Slot::new_random
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn new_random_primary() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:992,1
    - Dst: Self
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - slot
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 996
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 996
    functionName: Slot::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - Some
    - Self
    linkageType: ''
    returnType: Option
    signature: 'pub const fn new(slot: u16) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1002,1
    - Dst: crc16::State::<crc16::XMODEM>::calculate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1003,1
    - Dst: get_hashtag
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1003,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1006
      start: 1001
    functionDepth: 1
    functionLinenumber: 1001
    functionLinenumberEnd: 1006
    functionName: S::l::o::t::::::::f::o::r::_::k::e::y::impl_
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap_or
    - crc16::State::<crc16::XMODEM>::calculate
    - Slot
    - get_hashtag
    linkageType: ''
    returnType: Slot
    signature: 'fn impl_(key: &[u8]) -> Slot'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl_
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1008,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - impl AsRef<[u8]>
    constantsTouched: []
    func_position:
      end: 1009
      start: 999
    functionDepth: 2
    functionLinenumber: 999
    functionLinenumberEnd: 1009
    functionName: Slot::for_key
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - as_ref
    - impl_
    linkageType: ''
    returnType: Self
    signature: 'pub fn for_key(key: impl AsRef<[u8]>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1013,1
    - Dst: Self
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1014,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1015
    functionName: Slot::new_random
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - rand::rng
    - random_range
    - Self
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn new_random() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1019,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1019,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1021,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1021,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1024,1
    - Dst: then_some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1025
      start: 1018
    functionDepth: 12
    functionLinenumber: 1018
    functionLinenumberEnd: 1025
    functionName: get_hashtag
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - position
    - then_some
    - is_empty
    - iter
    linkageType: ''
    returnType: Option
    signature: 'fn get_hashtag(key: &[u8]) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1039,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1040,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1040,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1040,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1042,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1043,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1043,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1043,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1050,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1051,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1051,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1038
    functionDepth: 25
    functionLinenumber: 1038
    functionLinenumberEnd: 1057
    functionName: tests_routing::test_routing_info_mixed_capatalization
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - cmd
    - arg
    - '&mut Self::arg'
    - Cmd::arg
    linkageType: ''
    returnType: void
    signature: fn test_routing_info_mixed_capatalization()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1064,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1065,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1066,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1069,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1070,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1071,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1074,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1075,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1076,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1079,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1080,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1080,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1081,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1084,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1085,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1085,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1085,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1086,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1089,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1090,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1090,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1090,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1091,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1094,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1095,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1095,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1096,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1099,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1100,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1100,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1100,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1101,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1104,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1104,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1104,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1113,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1113,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1113,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1156,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1157,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1158,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1159,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1170,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1170,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1170,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1171,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1171,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1171,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1189,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1189,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1189,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1189,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1193,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1193,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1194,1
    - Dst: Route::with_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1194,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1198,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1198,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1198,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1198,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1198,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1198,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1204,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1204,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: Route::with_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1212,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1212,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1212,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1213,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1213,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1214,1
    - Dst: Route::with_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1214,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1221,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1221,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1221,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1221,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1221,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1221,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1227,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1227,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1228,1
    - Dst: Route::with_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1228,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1235,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1235,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1235,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1235,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1235,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1235,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1235,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1235,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1243,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1243,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1244,1
    - Dst: Route::with_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1244,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 207
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1258
      start: 1060
    functionDepth: 22
    functionLinenumber: 1060
    functionLinenumberEnd: 1258
    functionName: tests_routing::test_routing_info
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RedisResult::arg
    - '&mut Self::arg'
    - arg
    - push
    - Cmd::arg
    - RoutingInfo::SingleNode
    - Cmd::get_packed_command
    - Route::with_key
    - SingleNodeRoutingInfo::SpecificNode
    - cmd
    - Some
    - parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_routing_info()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1280
    functionName: tests_routing::test_slot_for_packed_cmd
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn test_slot_for_packed_cmd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1284,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1285,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1285,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1285,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1285,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1286,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1287,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1288,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1288,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1289,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1289,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1300,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1301,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1301,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1301,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1301,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1302,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1303,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1304,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1304,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1305,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1305,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1306,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1283
    functionDepth: 25
    functionLinenumber: 1283
    functionLinenumberEnd: 1315
    functionName: tests_routing::test_multi_shard_keys_only
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - '&mut Self::arg'
    - arg
    - Self::insert
    - std::collections::HashMap::new
    - Cmd::arg
    - Route
    - cmd
    - crate::cmd
    linkageType: ''
    returnType: void
    signature: fn test_multi_shard_keys_only()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1319,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1320,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1320,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1320,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1320,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1320,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1320,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1326,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1327,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1328,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1328,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1329,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1329,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1318
    functionDepth: 25
    functionLinenumber: 1318
    functionLinenumberEnd: 1338
    functionName: tests_routing::test_multi_shard_key_value_pairs
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - '&mut Self::arg'
    - arg
    - Self::insert
    - std::collections::HashMap::new
    - Cmd::arg
    - Route
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_multi_shard_key_value_pairs()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1342,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1343,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1343,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1343,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1343,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1343,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1348,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1349,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1350,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1350,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1351,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1351,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1352,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1361
      start: 1341
    functionDepth: 25
    functionLinenumber: 1341
    functionLinenumberEnd: 1361
    functionName: tests_routing::test_multi_shard_keys_and_path
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - '&mut Self::arg'
    - arg
    - Self::insert
    - std::collections::HashMap::new
    - Cmd::arg
    - Route
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_multi_shard_keys_and_path()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1365,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1366,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1376,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1377,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1379,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1388
      start: 1364
    functionDepth: 38
    functionLinenumber: 1364
    functionLinenumberEnd: 1388
    functionName: tests_routing::test_multi_shard_key_with_two_arg_triples
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - '&mut Self::arg'
    - arg
    - Self::insert
    - std::collections::HashMap::new
    - Cmd::arg
    - Route
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_multi_shard_key_with_two_arg_triples()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1392,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1393,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1393,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1393,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1393,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1398,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1405,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1405,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1405,1
    - Dst: Cmd::sort_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1408,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1408,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1408,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1408,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1408,1
    - Dst: Option::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1408,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1408,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1408,1
    - Dst: Cmd::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1410,1
    - Dst: std::iter::Chain::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1410,1
    - Dst: command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1411,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1411,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1414,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1419
      start: 1391
    functionDepth: 38
    functionLinenumber: 1391
    functionLinenumberEnd: 1419
    functionName: tests_routing::test_command_creation_for_multi_shard
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - Option::unwrap
    - Cmd::sort_by
    - collect
    - '&mut Self::arg'
    - Cmd::into_iter
    - into_iter
    - next
    - iter
    - cmd
    - Cmd::iter
    - arg
    - Cmd::arg
    - std::iter::Chain::map
    - command_for_multi_slot_indices
    - cmp
    - RoutingInfo::for_routable
    - std::iter::Chain::enumerate
    - Option::iter
    - enumerate
    linkageType: ''
    returnType: void
    signature: fn test_command_creation_for_multi_shard()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1423,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1424,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1424,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1424,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1436
      start: 1422
    functionDepth: 38
    functionLinenumber: 1422
    functionLinenumberEnd: 1436
    functionName: tests_routing::test_combine_multi_shard_to_single_node_when_all_keys_are_in_same_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - '&mut Self::arg'
    - arg
    - Cmd::arg
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_combine_multi_shard_to_single_node_when_all_keys_are_in_same_slot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1441,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1442,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1446,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1447,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1450,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1451,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1439
    functionDepth: 33
    functionLinenumber: 1439
    functionLinenumberEnd: 1468
    functionName: tests_routing::test_combining_results_into_single_array_only_keys
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - super::combine_and_sort_array_results
    - Route
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_combining_results_into_single_array_only_keys()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1473,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1474,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1475,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1478,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1471
    functionDepth: 33
    functionLinenumber: 1471
    functionLinenumberEnd: 1492
    functionName: tests_routing::test_combining_results_into_single_array_key_value_paires
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - super::combine_and_sort_array_results
    - Route
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_combining_results_into_single_array_key_value_paires()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1497,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1498,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1499,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1502,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1495
    functionDepth: 33
    functionLinenumber: 1495
    functionLinenumberEnd: 1516
    functionName: tests_routing::test_combining_results_into_single_array_keys_and_path
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - super::combine_and_sort_array_results
    - Route
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_combining_results_into_single_array_keys_and_path()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1521,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1522,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1523,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1526,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1540
      start: 1519
    functionDepth: 33
    functionLinenumber: 1519
    functionLinenumberEnd: 1540
    functionName: tests_routing::test_combining_results_into_single_array_key_with_two_arg_triples
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - super::combine_and_sort_array_results
    - Route
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_combining_results_into_single_array_key_with_two_arg_triples()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: super::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1545,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1545,1
    - Dst: super::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1562,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1562,1
    - Dst: sort_unstable_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1568,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1569,1
    - Dst: sort_unstable_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1576,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1577,1
    - Dst: super::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1583,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1543
    functionDepth: 31
    functionLinenumber: 1543
    functionLinenumberEnd: 1585
    functionName: tests_routing::test_combine_map_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - cmp
    - super::combine_map_results
    - sort_unstable_by
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_combine_map_results()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 106
    functionName: RetryParams::default
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: u64::max
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:114,1
    - Dst: min
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:114,1
    - Dst: u64::saturating_add
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - base_wait
    - min_wait
    - max_wait
    argTypes:
    - u64
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 39
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: cluster_retry_wait_upper_ms
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - min
    - u64::saturating_add
    - u64::max
    linkageType: ''
    returnType: u64
    signature: 'fn cluster_retry_wait_upper_ms(base_wait: u64, min_wait: u64, max_wait:
      u64) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pow
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:124,1
    - Dst: cluster_retry_wait_upper_ms
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:126,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:127,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:127,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - retry
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 129
      start: 123
    functionDepth: 40
    functionLinenumber: 123
    functionLinenumberEnd: 129
    functionName: RetryParams::wait_time_for_retry
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - cluster_retry_wait_upper_ms
    - pow
    - random_range
    - Duration::from_millis
    linkageType: ''
    returnType: Duration
    signature: 'pub(crate) fn wait_time_for_retry(&self, retry: u32) -> Duration'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:181,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:181,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:183,1
    - Dst: None::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:188,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:196,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:202,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:202,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:205,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:207,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:214,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 1
    argNames:
    - value
    argTypes:
    - BuilderParams
    constantsTouched: []
    func_position:
      end: 242
      start: 175
    functionDepth: 31
    functionLinenumber: 175
    functionLinenumberEnd: 242
    functionName: ClusterParams::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - map
    - unwrap_or
    - transpose
    - CacheManager::new
    - unwrap
    - Ok
    - as_ref
    - Some
    - None::unwrap_or
    linkageType: ''
    returnType: RedisResult
    signature: 'fn from(value: BuilderParams) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:252,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 261
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 261
    functionName: ClusterParams::with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'fn with_config(mut self, config: cluster::ClusterConfig) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:276,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:276,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:278,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:276,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - initial_nodes
    argTypes:
    - impl IntoIterator<Item = T>
    constantsTouched: []
    func_position:
      end: 282
      start: 274
    functionDepth: 31
    functionLinenumber: 274
    functionLinenumberEnd: 282
    functionName: ClusterClientBuilder::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 7
    functionsReached:
    - into_connection_info
    - Default::default
    - std::iter::Chain::map
    - into_iter
    - collect
    linkageType: ''
    returnType: Self
    signature: 'pub fn new<T: IntoConnectionInfo>(initial_nodes: impl IntoIterator<Item
      = T>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:299,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:302,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:302,1
    - Dst: ClusterParams::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:309,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:310,1
    - Dst: clone_from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:311,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:313,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:313,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:313,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:318,1
    - Dst: clone_from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:319,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:321,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:321,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:321,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:326,1
    - Dst: tls_mode
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:327,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:332,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:333,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:342,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:347,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:347,1
    - Dst: '&''static str::is_some'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:353,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:353,1
    - Dst: '&''static str::as_deref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:353,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:354,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:354,1
    - Dst: '&''static str::is_some'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:360,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:360,1
    - Dst: '&''static str::as_deref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:360,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:361,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:361,1
    - Dst: ProtocolVersion::is_some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:366,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:366,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:367,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:367,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:373,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:373,1
    - Dst: TlsFilePaths::is_some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:379,1
    - Dst: tls_mode
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:379,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:380,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:380,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:387,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 174
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 296
    functionDepth: 32
    functionLinenumber: 296
    functionLinenumberEnd: 391
    functionName: ClusterClientBuilder::build
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - tls_mode
    - clone_from
    - Err
    - map
    - into
    - '&''static str::as_deref'
    - RedisError::from
    - ClusterParams::from
    - as_deref
    - TlsFilePaths::is_some
    - is_none
    - Ok
    - '&''static str::is_some'
    - as_ref
    - Some
    - first
    - ProtocolVersion::is_some
    linkageType: ''
    returnType: RedisResult
    signature: pub fn build(self) -> RedisResult<ClusterClient>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:395,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:395,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 397
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 397
    functionName: ClusterClientBuilder::password
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn password(mut self, password: impl AsRef<str>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:401,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:401,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: ClusterClientBuilder::username
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - '&''static str::as_ref'
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn username(mut self, username: impl AsRef<str>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - retries
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: ClusterClientBuilder::retries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 38
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn retries(mut self, retries: u32) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - max_wait
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 415
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 415
    functionName: ClusterClientBuilder::max_retry_wait
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn max_retry_wait(mut self, max_wait: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - min_wait
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 421
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 421
    functionName: ClusterClientBuilder::min_retry_wait
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn min_retry_wait(mut self, min_wait: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - factor
    - exponent_base
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: ClusterClientBuilder::retry_wait_formula
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn retry_wait_formula(mut self, factor: u64, exponent_base: u64)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 438
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: ClusterClientBuilder::tls
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn tls(mut self, tls: TlsMode) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - insecure
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 457
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 457
    functionName: ClusterClientBuilder::danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn danger_accept_invalid_hostnames(mut self, insecure: bool) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:477,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:478,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:481,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 483
      start: 476
    functionDepth: 0
    functionLinenumber: 476
    functionLinenumberEnd: 483
    functionName: ClusterClientBuilder::certs
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - is_none
    linkageType: ''
    returnType: Self
    signature: 'pub fn certs(mut self, certificates: TlsCertificates) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:491,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 490
    functionDepth: 30
    functionLinenumber: 490
    functionLinenumberEnd: 493
    functionName: ClusterClientBuilder::read_from_replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: pub fn read_from_replicas(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:548,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - strategy
    argTypes:
    - impl ReadRoutingStrategyFactory + 'static
    constantsTouched: []
    func_position:
      end: 550
      start: 544
    functionDepth: 30
    functionLinenumber: 544
    functionLinenumberEnd: 550
    functionName: ClusterClientBuilder::read_routing_strategy
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 2
    functionsReached:
    - Some
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn read_routing_strategy(mut self,strategy: impl ReadRoutingStrategyFactory
      + ''static,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - connection_timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 558
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 558
    functionName: ClusterClientBuilder::connection_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn connection_timeout(mut self, connection_timeout: Duration)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - response_timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: ClusterClientBuilder::response_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn response_timeout(mut self, response_timeout: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OverallResponseTimeout::Explicit
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 585
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 585
    functionName: ClusterClientBuilder::overall_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - OverallResponseTimeout::Explicit
    linkageType: ''
    returnType: Self
    signature: 'pub fn overall_response_timeout(mut self, timeout: Option<Duration>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 591
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 591
    functionName: ClusterClientBuilder::use_protocol
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 3
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn use_protocol(mut self, protocol: ProtocolVersion) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - database_id
    argTypes:
    - i64
    constantsTouched: []
    func_position:
      end: 608
      start: 605
    functionDepth: 0
    functionLinenumber: 605
    functionLinenumberEnd: 608
    functionName: ClusterClientBuilder::database_id
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn database_id(mut self, database_id: i64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:641,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - push_sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 643
      start: 640
    functionDepth: 30
    functionLinenumber: 640
    functionLinenumberEnd: 643
    functionName: ClusterClientBuilder::push_sender
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn push_sender(mut self, push_sender: impl AsyncPushSender) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tcp_settings
    argTypes:
    - TcpSettings
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: ClusterClientBuilder::tcp_settings
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn tcp_settings(mut self, tcp_settings: TcpSettings) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - map
    argTypes:
    - HashMap<NodeAddress, NodeAddress>
    constantsTouched: []
    func_position:
      end: 665
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 665
    functionName: ClusterClientBuilder::node_address_map
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn node_address_map(mut self, map: HashMap<NodeAddress, NodeAddress>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:672,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - impl AsyncDNSResolver
    constantsTouched: []
    func_position:
      end: 674
      start: 671
    functionDepth: 30
    functionLinenumber: 671
    functionLinenumberEnd: 674
    functionName: ClusterClientBuilder::async_dns_resolver
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn async_dns_resolver(mut self, resolver: impl AsyncDNSResolver)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 681
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 681
    functionName: ClusterClientBuilder::cache_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn cache_config(mut self, cache_config: CacheConfig) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 705
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 705
    functionName: ClusterClientBuilder::connection_concurrency_limit
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn connection_concurrency_limit(mut self, limit: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - boundary
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 717
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 717
    functionName: ClusterClientBuilder::write_backpressure_boundary
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn write_backpressure_boundary(mut self, boundary: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:729,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - provider
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 731
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 731
    functionName: ClusterClientBuilder::set_credentials_provider
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_credentials_provider<P>(mut self, provider: P) -> SelfwhereP:
      StreamingCredentialsProvider + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:739,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - max_attempts
    argTypes:
    - NonZeroUsize
    constantsTouched: []
    func_position:
      end: 741
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 741
    functionName: ClusterClientBuilder::max_connection_attempts
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn max_connection_attempts(mut self, max_attempts: NonZeroUsize)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::builder
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:764,1
    - Dst: build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - initial_nodes
    argTypes:
    - impl IntoIterator<Item = T>
    constantsTouched: []
    func_position:
      end: 765
      start: 761
    functionDepth: 33
    functionLinenumber: 761
    functionLinenumberEnd: 765
    functionName: ClusterClient::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::builder
    - build
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new<T: IntoConnectionInfo>(initial_nodes: impl IntoIterator<Item
      = T>,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - initial_nodes
    argTypes:
    - impl IntoIterator<Item = T>
    constantsTouched: []
    func_position:
      end: 772
      start: 768
    functionDepth: 32
    functionLinenumber: 768
    functionLinenumberEnd: 772
    functionName: ClusterClient::builder
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 48
    functionsReached:
    - ClusterClientBuilder::new
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn builder<T: IntoConnectionInfo>(initial_nodes: impl IntoIterator<Item
      = T>,) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster::ClusterConnection::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:781,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:781,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 782
      start: 780
    functionDepth: 6
    functionLinenumber: 780
    functionLinenumberEnd: 782
    functionName: ClusterClient::get_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - clone
    - cluster::ClusterConnection::new
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_connection(&self) -> RedisResult<cluster::ClusterConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster::ClusterConnection::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:794,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:795,1
    - Dst: with_config
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:795,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 798
      start: 790
    functionDepth: 27
    functionLinenumber: 790
    functionLinenumberEnd: 798
    functionName: ClusterClient::get_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - with_config
    - clone
    - cluster::ClusterConnection::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn get_connection_with_config(&self,config: cluster::ClusterConfig,)
      -> RedisResult<cluster::ClusterConnection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_async::ClusterConnection::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:808,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:808,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 807
    functionDepth: 6
    functionLinenumber: 807
    functionLinenumberEnd: 810
    functionName: ClusterClient::get_async_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - cluster_async::ClusterConnection::new
    - clone
    linkageType: ''
    returnType: RedisResult
    signature: pub async fn get_async_connection(&self) -> RedisResult<cluster_async::ClusterConnection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_async::ClusterConnection::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:823,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:825,1
    - Dst: with_config
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 828
      start: 819
    functionDepth: 27
    functionLinenumber: 819
    functionLinenumberEnd: 828
    functionName: ClusterClient::get_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - with_config
    - cluster_async::ClusterConnection::new
    - clone
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn get_async_connection_with_config(&self,config: cluster::ClusterConfig,)
      -> RedisResult<cluster_async::ClusterConnection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_async::ClusterConnection::new_pending
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:838,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:840,1
    - Dst: with_config
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 842
      start: 834
    functionDepth: 27
    functionLinenumber: 834
    functionLinenumberEnd: 842
    functionName: ClusterClient::get_pending_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - with_config
    - cluster_async::ClusterConnection::new_pending
    - clone
    linkageType: ''
    returnType: cluster_async::ClusterConnection
    signature: 'pub fn get_pending_async_connection_with_config(&self,config: cluster::ClusterConfig,)
      -> cluster_async::ClusterConnection'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster::ClusterConnection::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:849,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:849,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 850
      start: 845
    functionDepth: 6
    functionLinenumber: 845
    functionLinenumberEnd: 850
    functionName: ClusterClient::get_generic_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - clone
    - cluster::ClusterConnection::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn get_generic_connection<C>(&self) -> RedisResult<cluster::ClusterConnection<C>>whereC:
      crate::ConnectionLike + crate::cluster::Connect + Send,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_async::ClusterConnection::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:866,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 868
      start: 854
    functionDepth: 6
    functionLinenumber: 854
    functionLinenumberEnd: 868
    functionName: ClusterClient::get_async_generic_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - cluster_async::ClusterConnection::new
    - clone
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn get_async_generic_connection<C>(&self,) -> RedisResult<cluster_async::ClusterConnection<C>>whereC:
      crate::aio::ConnectionLike+ cluster_async::Connect+ Clone+ Send+ Sync+ Unpin+
      ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 882
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 882
    functionName: tests::get_connection_data
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn get_connection_data() -> Vec<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 896
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 896
    functionName: tests::get_connection_data_with_password
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn get_connection_data_with_password() -> Vec<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 910
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 910
    functionName: tests::get_connection_data_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Vec
    signature: fn get_connection_data_with_username_and_password() -> Vec<ConnectionInfo>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:914,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:914,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 916
      start: 913
    functionDepth: 34
    functionLinenumber: 913
    functionLinenumberEnd: 916
    functionName: tests::give_no_password
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data
    - ClusterClient::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn give_no_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:920,1
    - Dst: get_connection_data_with_password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:920,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 922
      start: 919
    functionDepth: 34
    functionLinenumber: 919
    functionLinenumberEnd: 922
    functionName: tests::give_password_by_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    - RedisResult::unwrap
    - get_connection_data_with_password
    linkageType: ''
    returnType: void
    signature: fn give_password_by_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:926,1
    - Dst: get_connection_data_with_username_and_password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:926,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 929
      start: 925
    functionDepth: 34
    functionLinenumber: 925
    functionLinenumberEnd: 929
    functionName: tests::give_username_and_password_by_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data_with_username_and_password
    - ClusterClient::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn give_username_and_password_by_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 939
      start: 932
    functionDepth: 34
    functionLinenumber: 932
    functionLinenumberEnd: 939
    functionName: tests::fail_if_received_different_password_between_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    linkageType: ''
    returnType: void
    signature: fn fail_if_received_different_password_between_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 949
      start: 942
    functionDepth: 34
    functionLinenumber: 942
    functionLinenumberEnd: 949
    functionName: tests::fail_if_received_different_username_between_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    linkageType: ''
    returnType: void
    signature: fn fail_if_received_different_username_between_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 959
      start: 952
    functionDepth: 34
    functionLinenumber: 952
    functionLinenumberEnd: 959
    functionName: tests::fail_if_received_different_protocol_between_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    linkageType: ''
    returnType: void
    signature: fn fail_if_received_different_protocol_between_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 969
      start: 962
    functionDepth: 34
    functionLinenumber: 962
    functionLinenumberEnd: 969
    functionName: tests::fail_if_received_different_tls_between_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    linkageType: ''
    returnType: void
    signature: fn fail_if_received_different_tls_between_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:973,1
    - Dst: get_connection_data_with_username_and_password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:973,1
    - Dst: Self::password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:973,1
    - Dst: '&''static str::username'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:973,1
    - Dst: '&''static str::build'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:973,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:973,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 980
      start: 972
    functionDepth: 32
    functionLinenumber: 972
    functionLinenumberEnd: 980
    functionName: tests::give_username_password_by_method
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::password
    - '&''static str::username'
    - RedisResult::unwrap
    - get_connection_data_with_username_and_password
    - '&''static str::build'
    - ClusterClientBuilder::new
    linkageType: ''
    returnType: void
    signature: fn give_username_password_by_method()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:984,1
    - Dst: Vec::<String>::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 986
      start: 983
    functionDepth: 34
    functionLinenumber: 983
    functionLinenumberEnd: 986
    functionName: tests::give_empty_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    - Vec::<String>::new
    linkageType: ''
    returnType: void
    signature: fn give_empty_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:990,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:990,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 992
      start: 989
    functionDepth: 34
    functionLinenumber: 989
    functionLinenumberEnd: 992
    functionName: tests::database_id_defaults_to_zero
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data
    - ClusterClient::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn database_id_defaults_to_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:996,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:996,1
    - Dst: Self::database_id
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:996,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:996,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:996,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 995
    functionDepth: 32
    functionLinenumber: 995
    functionLinenumberEnd: 1001
    functionName: tests::give_database_id_by_method
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - get_connection_data
    - ClusterClientBuilder::new
    - Self::database_id
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn give_database_id_by_method()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1005,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1012
      start: 1004
    functionDepth: 34
    functionLinenumber: 1004
    functionLinenumberEnd: 1012
    functionName: tests::give_database_id_by_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn give_database_id_by_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1016,1
    - Dst: Self::database_id
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1016,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1015
    functionDepth: 32
    functionLinenumber: 1015
    functionLinenumberEnd: 1024
    functionName: tests::fail_if_database_id_method_conflicts_with_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - Self::database_id
    - ClusterClientBuilder::new
    linkageType: ''
    returnType: void
    signature: fn fail_if_database_id_method_conflicts_with_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1028,1
    - Dst: Self::database_id
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1028,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1027
    functionDepth: 32
    functionLinenumber: 1027
    functionLinenumberEnd: 1036
    functionName: tests::fail_if_explicit_database_id_zero_conflicts_with_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - Self::database_id
    - ClusterClientBuilder::new
    linkageType: ''
    returnType: void
    signature: fn fail_if_explicit_database_id_zero_conflicts_with_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1040,1
    - Dst: Self::database_id
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1040,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1040,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1039
    functionDepth: 32
    functionLinenumber: 1039
    functionLinenumberEnd: 1049
    functionName: tests::give_database_id_by_method_matching_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - Self::database_id
    - RedisResult::unwrap
    - ClusterClientBuilder::new
    linkageType: ''
    returnType: void
    signature: fn give_database_id_by_method_matching_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1053,1
    - Dst: Self::database_id
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1053,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1053,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1052
    functionDepth: 32
    functionLinenumber: 1052
    functionLinenumberEnd: 1062
    functionName: tests::give_database_id_zero_by_method_matching_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - Self::database_id
    - RedisResult::unwrap
    - ClusterClientBuilder::new
    linkageType: ''
    returnType: void
    signature: fn give_database_id_zero_by_method_matching_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1065
    functionDepth: 34
    functionLinenumber: 1065
    functionLinenumberEnd: 1072
    functionName: tests::fail_if_received_different_database_between_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    linkageType: ''
    returnType: void
    signature: fn fail_if_received_different_database_between_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1077,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1077,1
    - Dst: Self::response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1077,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1078,1
    - Dst: build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1077,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1076
    functionDepth: 32
    functionLinenumber: 1076
    functionLinenumberEnd: 1085
    functionName: tests::overall_response_timeout_defaults_to_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data
    - Self::response_timeout
    - RedisResult::unwrap
    - Duration::from_secs
    - build
    - ClusterClientBuilder::new
    linkageType: ''
    returnType: void
    signature: fn overall_response_timeout_defaults_to_response_timeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1090,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1090,1
    - Dst: Self::response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1090,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1091,1
    - Dst: overall_response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1090,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1090,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1089
    functionDepth: 32
    functionLinenumber: 1089
    functionLinenumberEnd: 1096
    functionName: tests::overall_response_timeout_can_be_disabled
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - get_connection_data
    - Self::response_timeout
    - RedisResult::unwrap
    - Duration::from_secs
    - overall_response_timeout
    - ClusterClientBuilder::new
    linkageType: ''
    returnType: void
    signature: fn overall_response_timeout_can_be_disabled()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1101,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1101,1
    - Dst: Self::response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1101,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1102,1
    - Dst: overall_response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1101,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1103,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1103,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1101,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1100
    functionDepth: 32
    functionLinenumber: 1100
    functionLinenumberEnd: 1110
    functionName: tests::overall_response_timeout_can_be_set_independently
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - get_connection_data
    - Self::response_timeout
    - RedisResult::unwrap
    - Duration::from_secs
    - Some
    - overall_response_timeout
    - ClusterClientBuilder::new
    linkageType: ''
    returnType: void
    signature: fn overall_response_timeout_can_be_set_independently()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1115,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1115,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1117
      start: 1114
    functionDepth: 34
    functionLinenumber: 1114
    functionLinenumberEnd: 1117
    functionName: tests::connection_concurrency_limit_default
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data
    - ClusterClient::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn connection_concurrency_limit_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1122,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1122,1
    - Dst: Self::connection_concurrency_limit
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1122,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1122,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1121
    functionDepth: 32
    functionLinenumber: 1121
    functionLinenumberEnd: 1130
    functionName: tests::connection_concurrency_limit_custom
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - get_connection_data
    - ClusterClientBuilder::new
    - Self::connection_concurrency_limit
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn connection_concurrency_limit_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClient::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1135,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1135,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1137
      start: 1134
    functionDepth: 34
    functionLinenumber: 1134
    functionLinenumberEnd: 1137
    functionName: tests::write_backpressure_boundary_default
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data
    - ClusterClient::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn write_backpressure_boundary_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1142,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1142,1
    - Dst: Self::write_backpressure_boundary
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1142,1
    - Dst: Self::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1142,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1150
      start: 1141
    functionDepth: 32
    functionLinenumber: 1141
    functionLinenumberEnd: 1150
    functionName: tests::write_backpressure_boundary_custom
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Self::build
    - get_connection_data
    - ClusterClientBuilder::new
    - Self::write_backpressure_boundary
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn write_backpressure_boundary_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1165
    functionName: tests::cluster_retry_clamp_order_caps_at_max_after_floor
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn cluster_retry_clamp_order_caps_at_max_after_floor()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1170
    functionName: tests::cluster_retry_wait_upper_strictly_above_min_when_min_equals_max
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn cluster_retry_wait_upper_strictly_above_min_when_min_equals_max()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: wait_time_for_retry
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:1181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1182
      start: 1173
    functionDepth: 41
    functionLinenumber: 1173
    functionLinenumberEnd: 1182
    functionName: tests::cluster_retry_wait_time_does_not_panic_when_min_equals_max
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - wait_time_for_retry
    linkageType: ''
    returnType: void
    signature: fn cluster_retry_wait_time_does_not_panic_when_min_equals_max()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_parts
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:38,1
    - Dst: String::into
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - impl Into<ArcStr>
    - u16
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: NodeAddress::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 3
    functionsReached:
    - String::into
    - Self::from_parts
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(host: impl Into<ArcStr>, port: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - ArcStr
    - u16
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: NodeAddress::from_parts
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub const fn from_parts(host: ArcStr, port: u16) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: NodeAddress::host
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&str'
    signature: pub fn host(&self) -> &str
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: NodeAddress::port
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn port(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: NodeAddress::fmt
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:91,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:91,1
    - Dst: String::as_str
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:91,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:93,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - addr
    argTypes:
    - '&ConnectionAddr'
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 30
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: NodeAddress::try_from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - RedisError::from
    - Ok
    - Self::new
    - String::as_str
    linkageType: ''
    returnType: Result
    signature: 'fn try_from(addr: &ConnectionAddr) -> Result<Self, Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - '&&str'
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: NodeAddress::eq
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn eq(&self, other: &&str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:118,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:119,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 38
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: slot_cmd
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - '&mut Self::arg'
    - Cmd::arg
    linkageType: ''
    returnType: Cmd
    signature: pub(crate) fn slot_cmd() -> Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:125,1
    - Dst: rsplit_once
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:126,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:126,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:128,1
    - Dst: String::trim_start_matches
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:128,1
    - Dst: trim_end_matches
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:128,1
    - Dst: filter
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:128,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:129,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:128,1
    - Dst: u16::from_str
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:130,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:130,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 1
    argNames:
    - node
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 133
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: split_node_address
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - zip
    - ok_or_else
    - and_then
    - filter
    - trim_end_matches
    - RedisError::from
    - rsplit_once
    - u16::from_str
    - String::trim_start_matches
    - Some
    - Result::ok
    - is_empty
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn split_node_address(node: &str) -> RedisResult<(&str,
      u16)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:154,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - host
    - port
    - tls
    - tls_params
    argTypes:
    - String
    - u16
    - Option<TlsMode>
    - Option<TlsConnParams>
    constantsTouched: []
    func_position:
      end: 156
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 156
    functionName: get_connection_addr
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - ConnectionAddr::Tcp
    linkageType: ''
    returnType: ConnectionAddr
    signature: 'pub(crate) fn get_connection_addr(host: String,port: u16,tls: Option<TlsMode>,tls_params:
      Option<TlsConnParams>,) -> ConnectionAddr'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:162,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:162,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:165,1
    - Dst: ConnectionAddr::host
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:167,1
    - Dst: String::to_string
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:167,1
    - Dst: ConnectionAddr::port
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:167,1
    - Dst: host
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:168,1
    - Dst: String::to_string
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:168,1
    - Dst: port
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:168,1
    - Dst: get_connection_addr
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:171,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:175,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:178,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:179,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:180,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:181,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:182,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 2
    argNames:
    - node
    - cluster_params
    argTypes:
    - '&NodeAddress'
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 186
      start: 158
    functionDepth: 36
    functionLinenumber: 158
    functionLinenumberEnd: 186
    functionName: get_connection_info
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 6
    functionsReached:
    - get
    - and_then
    - port
    - unwrap_or
    - clone
    - Default::default
    - host
    - unwrap_or_default
    - as_ref
    - String::to_string
    - ConnectionAddr::host
    - ConnectionAddr::port
    - get_connection_addr
    linkageType: ''
    returnType: ConnectionInfo
    signature: 'pub(crate) fn get_connection_info(node: &NodeAddress,cluster_params:
      &ClusterParams,) -> ConnectionInfo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:202,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 193
    functionDepth: 31
    functionLinenumber: 193
    functionLinenumberEnd: 206
    functionName: tests::parse_node_address
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - NodeAddress::try_from
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_node_address()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 221
      start: 209
    functionDepth: 31
    functionLinenumber: 209
    functionLinenumberEnd: 221
    functionName: tests::reject_invalid_node_address
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - NodeAddress::try_from
    linkageType: ''
    returnType: void
    signature: fn reject_invalid_node_address()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:225,1
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:226,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:228,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:229,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:229,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:232,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:233,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 224
    functionDepth: 31
    functionLinenumber: 224
    functionLinenumberEnd: 244
    functionName: tests::get_connection_info_uses_node_address_map
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - NodeAddress::new
    - clone
    - std::collections::HashMap::new
    - Default::default
    - Some
    - get_connection_info
    - insert
    linkageType: ''
    returnType: void
    signature: fn get_connection_info_uses_node_address_map()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:248,1
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:249,1
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:250,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:252,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:253,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:256,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:257,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 247
    functionDepth: 31
    functionLinenumber: 247
    functionLinenumberEnd: 268
    functionName: tests::get_connection_info_falls_back_without_mapping
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - NodeAddress::new
    - std::collections::HashMap::new
    - Default::default
    - Some
    - get_connection_info
    - insert
    linkageType: ''
    returnType: void
    signature: fn get_connection_info_falls_back_without_mapping()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:272,1
    - Dst: ClusterParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:273,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 283
      start: 271
    functionDepth: 31
    functionLinenumber: 271
    functionLinenumberEnd: 283
    functionName: tests::get_connection_info_without_map
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - get_connection_info
    - ClusterParams::default
    - NodeAddress::new
    linkageType: ''
    returnType: void
    signature: fn get_connection_info_without_map()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:18,1
    - Dst: HashSet::<ArcStr>::new
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:19,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:22,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:23,1
    - Dst: Option::len
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:24,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:44,1
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:51,1
    - Dst: TlsFilePaths::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:52,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:52,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:53,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:60,1
    - Dst: TlsFilePaths::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:64,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:74,1
    - Dst: TlsFilePaths::as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:74,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:75,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:77,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:78,1
    - Dst: TlsFilePaths::clone
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:78,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:82,1
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:82,1
    - Dst: Option::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:85,1
    - Dst: std::iter::Chain::skip
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:85,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:87,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:88,1
    - Dst: try_to_address
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:91,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:96,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:96,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:98,1
    - Dst: SlotRange::new
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:98,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:102,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 112
    argCount: 2
    argNames:
    - raw_slot_resp
    - addr_of_answering_node
    argTypes:
    - Value
    - '&str'
    constantsTouched: []
    func_position:
      end: 103
      start: 12
    functionDepth: 36
    functionLinenumber: 12
    functionLinenumberEnd: 103
    functionName: parse_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::clone
    - SlotRange::new
    - len
    - std::iter::Chain::skip
    - Self::insert
    - TlsFilePaths::is_empty
    - Self::get
    - String::from_utf8_lossy
    - Option::into_iter
    - Ok
    - Some
    - Vec::with_capacity
    - collect
    - try_to_address
    - TlsFilePaths::into
    - into_iter
    - next
    - is_none
    - RedisResult::push
    - NodeAddress::new
    - is_wildcard_address
    - TlsFilePaths::as_ref
    - String::clone
    - '&str::into'
    - Option::len
    - filter_map
    - HashSet::<ArcStr>::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn parse_slots(raw_slot_resp: Value,// The DNS address
      of the node from which `raw_slot_resp` was received.addr_of_answering_node:
      &str,) -> RedisResult<Vec<SlotRange>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:110,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:110,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:113,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:110,1
    - Dst: append
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:120,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - start
    - end
    - nodes
    argTypes:
    - u16
    - u16
    - Vec<(&str, u16)>
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 31
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: tests::slot_value_with_replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - map
    - append
    - iter
    - Value::Array
    - collect
    linkageType: ''
    returnType: Value
    signature: 'fn slot_value_with_replicas(start: u16, end: u16, nodes: Vec<(&str,
      u16)>) -> Value'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slot_value_with_replicas
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - start
    - end
    - node
    - port
    argTypes:
    - u16
    - u16
    - '&str'
    - u16
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 32
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: tests::slot_value
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - slot_value_with_replicas
    linkageType: ''
    returnType: Value
    signature: 'fn slot_value(start: u16, end: u16, node: &str, port: u16) -> Value'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:130,1
    - Dst: parse_slots
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:132,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 37
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: tests::parse_slots_returns_slots_with_host_name_if_missing
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - parse_slots
    - RedisResult::unwrap
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn parse_slots_returns_slots_with_host_name_if_missing()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:139,1
    - Dst: parse_slots
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:144,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:144,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:148,1
    - Dst: parse_slots
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:149,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 37
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: tests::parse_slots_treats_wildcard_hostnames_as_answering_node
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - parse_slots
    - RedisResult::unwrap
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn parse_slots_treats_wildcard_hostnames_as_answering_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 31
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: SlotMap::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotRangeMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:23,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:25,1
    - Dst: SlotAddrs::from_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:25,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - slots
    argTypes:
    - Vec<SlotRange>
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 31
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: SlotMap::from_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotRangeMap::new
    - insert
    - SlotAddrs::from_slot
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_slots(slots: Vec<SlotRange>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:33,1
    - Dst: SlotAddrs::from_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - slots
    argTypes:
    - Vec<SlotRange>
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 31
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: SlotMap::fill_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - insert
    - SlotAddrs::from_slot
    linkageType: ''
    returnType: void
    signature: 'pub fn fill_slots(&mut self, slots: Vec<SlotRange>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:43,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:44,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:44,1
    - Dst: impl Iterator::slot_addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:46,1
    - Dst: slot_addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - route
    - strategy
    argTypes:
    - Route
    - Option<&dyn ReadRoutingStrategy>
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 36
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: SlotMap::slot_addr_for_route
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - get
    - slot
    - map
    - impl Iterator::slot_addr
    - slot_addr
    linkageType: ''
    returnType: Option
    signature: 'pub fn slot_addr_for_route(&self,route: Route,strategy: Option<&dyn
      ReadRoutingStrategy>,) -> Option<&NodeAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:52,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:52,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:53,1
    - Dst: slot_addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:55,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:58,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:59,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:59,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - route
    argTypes:
    - Route
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 36
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: SlotMap::shard_fallback_addrs
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - get
    - slot
    - clone
    - push
    - slot_addr
    - Vec::new
    linkageType: ''
    returnType: Vec
    signature: 'pub(crate) fn shard_fallback_addrs(&self, route: Route) -> Vec<NodeAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 31
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: SlotMap::clear
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: pub fn clear(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: values
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 33
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: SlotMap::values
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - values
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn values(&self) -> impl Iterator<Item = &SlotAddrs>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:76,1
    - Dst: RedisResult::extend
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:78,1
    - Dst: SlotMap::values
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:78,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:78,1
    - Dst: RedisResult::extend
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:80,1
    - Dst: SlotMap::values
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:80,1
    - Dst: impl Iterator::flat_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:80,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - only_primaries
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 30
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: SlotMap::all_unique_addresses
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - RedisResult::extend
    - impl Iterator::map
    - SlotMap::values
    - impl Iterator::flat_map
    - into_iter
    - HashSet::new
    linkageType: ''
    returnType: HashSet
    signature: 'fn all_unique_addresses(&self, only_primaries: bool) -> HashSet<&NodeAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::all_unique_addresses
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 31
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: SlotMap::addresses_for_all_primaries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::all_unique_addresses
    linkageType: ''
    returnType: HashSet
    signature: pub fn addresses_for_all_primaries(&self) -> HashSet<&NodeAddress>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::all_unique_addresses
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 31
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: SlotMap::addresses_for_all_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::all_unique_addresses
    linkageType: ''
    returnType: HashSet
    signature: pub fn addresses_for_all_nodes(&self) -> HashSet<&NodeAddress>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''b [(Route, Vec<usize>)]::iter'
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:102,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:102,1
    - Dst: SlotMap::slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - routes
    - strategy
    argTypes:
    - '&''b [(Route, Vec<usize>)]'
    - Option<&'a dyn ReadRoutingStrategy>
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 31
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: SlotMap::addresses_for_multi_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - map
    - SlotMap::slot_addr_for_route
    - '&''b [(Route, Vec<usize>)]::iter'
    linkageType: ''
    returnType: impl Iterator
    signature: 'pub fn addresses_for_multi_slot<''a, ''b>(&''a self,routes: &''b [(Route,
      Vec<usize>)],strategy: Option<&''a dyn ReadRoutingStrategy>,) -> impl Iterator<Item
      = Option<&''a NodeAddress>> + ''awhere''b: ''a,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:116,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:117,1
    - Dst: Self::iter_mut
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:118,1
    - Dst: find
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:118,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:119,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:121,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:122,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:124,1
    - Dst: ClusterTopology::from_shards
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:129,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:130,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:130,1
    - Dst: Shard::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:132,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 135
      start: 109
    functionDepth: 30
    functionLinenumber: 109
    functionLinenumberEnd: 135
    functionName: SlotMap::topology
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - Shard::new
    - ClusterTopology::from_shards
    - Self::push
    - clone
    - push
    - find
    - std::iter::Chain::map
    - iter
    - Self::into_iter
    - Self::iter_mut
    - Vec::new
    - collect
    linkageType: ''
    returnType: ClusterTopology
    signature: pub fn topology(&self) -> ClusterTopology
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - primary
    - replicas
    argTypes:
    - NodeAddress
    - Vec<NodeAddress>
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: SlotAddrs::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new(primary: NodeAddress, replicas: Vec<NodeAddress>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:162,1
    - Dst: choose_random
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:163,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:168,1
    - Dst: Self::route_read
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:172,1
    - Dst: ReadCandidates::any_node
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:172,1
    - Dst: Self::route_read
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:175,1
    - Dst: ReadCandidates::replicas_only
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:175,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - slot
    - slot_addr
    - strategy
    argTypes:
    - u16
    - SlotAddr
    - Option<&dyn ReadRoutingStrategy>
    constantsTouched: []
    func_position:
      end: 180
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 180
    functionName: SlotAddrs::slot_addr
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - Replicas::new
    - ReadCandidates::any_node
    - choose_random
    - ReadCandidates::replicas_only
    - Self::route_read
    linkageType: ''
    returnType: '&NodeAddress'
    signature: 'pub(crate) fn slot_addr(&self,slot: u16,slot_addr: SlotAddr,strategy:
      Option<&dyn ReadRoutingStrategy>,) -> &NodeAddress'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - SlotRange
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 30
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: SlotAddrs::from_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 2
    functionsReached:
    - Self::new
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn from_slot(slot: SlotRange) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::iter::once
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:195,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:195,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 31
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: '&''a SlotAddrs::into_iter'
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - chain
    - iter
    - std::iter::once
    linkageType: ''
    returnType: std::iter::Chain
    signature: fn into_iter(self,) -> std::iter::Chain<std::iter::Once<&'a NodeAddress>,
      std::slice::Iter<'a, NodeAddress>>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - s
    - e
    - m
    - r
    argTypes:
    - u16
    - u16
    - NodeAddress
    - Vec<NodeAddress>
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: SlotRange::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(s: u16, e: u16, m: NodeAddress, r: Vec<NodeAddress>) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:225,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 31
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: tests::addr
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - NodeAddress::try_from
    - Result::unwrap
    linkageType: ''
    returnType: NodeAddress
    signature: 'fn addr(s: &str) -> NodeAddress'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 330
      start: 242
    functionDepth: 32
    functionLinenumber: 242
    functionLinenumberEnd: 330
    functionName: tests::test_slot_map_with_strategy
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::from_slots
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_with_strategy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 333
    functionDepth: 32
    functionLinenumber: 333
    functionLinenumberEnd: 359
    functionName: tests::test_slot_map_when_no_strategy_is_set
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::from_slots
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_when_no_strategy_is_set()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:364,1
    - Dst: SlotMap::shard_fallback_addrs
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:365,1
    - Dst: Route::with_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:366,1
    - Dst: Slot::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:366,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 363
    functionDepth: 42
    functionLinenumber: 363
    functionLinenumberEnd: 368
    functionName: tests::test_shard_fallback_addrs_master_is_empty
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::shard_fallback_addrs
    - Route::with_slot
    - Slot::new
    - get_slot_map
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_shard_fallback_addrs_master_is_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:373,1
    - Dst: SlotMap::shard_fallback_addrs
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:374,1
    - Dst: Route::with_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:374,1
    - Dst: Slot::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:375,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 386
      start: 372
    functionDepth: 42
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: tests::test_shard_fallback_addrs_replica_optional
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::shard_fallback_addrs
    - Route::with_slot
    - Slot::new
    - get_slot_map
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_shard_fallback_addrs_replica_optional()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:391,1
    - Dst: SlotMap::shard_fallback_addrs
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:392,1
    - Dst: Route::with_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:392,1
    - Dst: Slot::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:393,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 404
      start: 390
    functionDepth: 42
    functionLinenumber: 390
    functionLinenumberEnd: 404
    functionName: tests::test_shard_fallback_addrs_replica_requiredy
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::shard_fallback_addrs
    - Route::with_slot
    - Slot::new
    - get_slot_map
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_shard_fallback_addrs_replica_requiredy()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:409,1
    - Dst: SlotMap::shard_fallback_addrs
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:410,1
    - Dst: Route::with_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:410,1
    - Dst: Slot::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:411,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 415
      start: 408
    functionDepth: 42
    functionLinenumber: 408
    functionLinenumberEnd: 415
    functionName: tests::test_shard_fallback_addrs_missing_slot_is_empty
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::shard_fallback_addrs
    - Route::with_slot
    - Slot::new
    - get_slot_map
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_shard_fallback_addrs_missing_slot_is_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 443
      start: 417
    functionDepth: 32
    functionLinenumber: 417
    functionLinenumberEnd: 443
    functionName: tests::get_slot_map
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::from_slots
    linkageType: ''
    returnType: SlotMap
    signature: fn get_slot_map() -> SlotMap
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:447,1
    - Dst: SlotMap::addresses_for_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 446
    functionDepth: 33
    functionLinenumber: 446
    functionLinenumberEnd: 457
    functionName: tests::test_slot_map_get_all_primaries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::addresses_for_all_primaries
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_all_primaries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:461,1
    - Dst: SlotMap::addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 460
    functionDepth: 33
    functionLinenumber: 460
    functionLinenumberEnd: 477
    functionName: tests::test_slot_map_get_all_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::addresses_for_all_nodes
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_all_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:482,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:493,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:494,1
    - Dst: "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 480
    functionDepth: 33
    functionLinenumber: 480
    functionLinenumberEnd: 500
    functionName: tests::test_slot_map_get_multi_node
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::addresses_for_multi_slot
    - "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
    - Some
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_multi_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:504,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:515,1
    - Dst: "addresses_for_multi_slot(&routes, None)\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 503
    functionDepth: 33
    functionLinenumber: 503
    functionLinenumberEnd: 522
    functionName: tests::test_slot_map_should_ignore_replicas_in_multi_slot_if_no_strategy_is_set
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::addresses_for_multi_slot
    - "addresses_for_multi_slot(&routes, None)\n            .collect::<Vec<_>>"
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_should_ignore_replicas_in_multi_slot_if_no_strategy_is_set()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:529,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:556,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:557,1
    - Dst: "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 570
      start: 527
    functionDepth: 33
    functionLinenumber: 527
    functionLinenumberEnd: 570
    functionName: tests::test_slot_map_get_repeating_addresses_when_the_same_node_is_found_in_multi_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::addresses_for_multi_slot
    - "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
    - Some
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_repeating_addresses_when_the_same_node_is_found_in_multi_slot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:575,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:594,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:595,1
    - Dst: "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 606
      start: 573
    functionDepth: 33
    functionLinenumber: 573
    functionLinenumberEnd: 606
    functionName: tests::test_slot_map_get_none_when_slot_is_missing_from_multi_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::addresses_for_multi_slot
    - "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
    - Some
    - get_slot_map
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_get_none_when_slot_is_missing_from_multi_slot()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:610,1
    - Dst: SlotMap::topology
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:614,1
    - Dst: ClusterTopology::shards
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:617,1
    - Dst: impl Iterator::find
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:617,1
    - Dst: TlsFilePaths::primary
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:619,1
    - Dst: addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:619,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:617,1
    - Dst: ClusterTopology::shards
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:624,1
    - Dst: impl Iterator::find
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:624,1
    - Dst: TlsFilePaths::primary
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:626,1
    - Dst: addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:626,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 630
      start: 609
    functionDepth: 32
    functionLinenumber: 609
    functionLinenumberEnd: 630
    functionName: tests::test_slot_map_topology
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - addr
    - TlsFilePaths::primary
    - ClusterTopology::shards
    - SlotMap::topology
    - SlotMap::from_slots
    - impl Iterator::find
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_topology()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:634,1
    - Dst: SlotMap::topology
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:635,1
    - Dst: ClusterTopology::shards
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:638,1
    - Dst: impl Iterator::find
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:638,1
    - Dst: TlsFilePaths::primary
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:640,1
    - Dst: addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:640,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 643
      start: 633
    functionDepth: 33
    functionLinenumber: 633
    functionLinenumberEnd: 643
    functionName: tests::test_slot_map_topology_groups_by_primary
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - addr
    - TlsFilePaths::primary
    - ClusterTopology::shards
    - SlotMap::topology
    - impl Iterator::find
    - get_slot_map
    - Option::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_topology_groups_by_primary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:647,1
    - Dst: SlotMap::topology
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:648,1
    - Dst: ClusterTopology::shard_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:650,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:650,1
    - Dst: ClusterTopology::shard_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:653,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:653,1
    - Dst: ClusterTopology::shard_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:657,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 661
      start: 646
    functionDepth: 33
    functionLinenumber: 646
    functionLinenumberEnd: 661
    functionName: tests::test_slot_map_topology_shard_lookup
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - Option::unwrap
    - get_slot_map
    - SlotMap::topology
    - ClusterTopology::shard_for_slot
    linkageType: ''
    returnType: void
    signature: fn test_slot_map_topology_shard_lookup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 718
      start: 664
    functionDepth: 32
    functionLinenumber: 664
    functionLinenumberEnd: 718
    functionName: tests::test_custom_strategy
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotMap::from_slots
    linkageType: ''
    returnType: void
    signature: fn test_custom_strategy()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 42
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 42
    functionName: is_illegal_cmd
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'fn is_illegal_cmd(cmd: &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: ClusterPipeline::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 0
    functionsReached:
    - Self::with_capacity
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:83,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 30
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: ClusterPipeline::with_capacity
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 0
    functionsReached:
    - HashSet::new
    - Vec::with_capacity
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_capacity(capacity: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 91
    functionName: ClusterPipeline::commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Vec'
    signature: pub(crate) fn commands(&self) -> &Vec<Cmd>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:109,1
    - Dst: Cmd::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:109,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:109,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:109,1
    - Dst: trim
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:109,1
    - Dst: to_ascii_uppercase
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:109,1
    - Dst: is_illegal_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:114,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:115,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:123,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:124,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:124,1
    - Dst: ClusterPipeline::compose_response
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:126,1
    - Dst: '&mut ClusterConnection::execute_pipeline'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut ClusterConnection'
    constantsTouched: []
    func_position:
      end: 128
      start: 107
    functionDepth: 31
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: ClusterPipeline::query
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 0
    functionsReached:
    - to_ascii_uppercase
    - Err
    - unwrap_or
    - std::str::from_utf8
    - is_illegal_cmd
    - ClusterPipeline::compose_response
    - Cmd::arg_idx
    - '&mut ClusterConnection::execute_pipeline'
    - trim
    - RedisError::make_empty_command
    - fail
    - is_empty
    - Option::unwrap_or
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn query<T: FromRedisValue>(&self, con: &mut ClusterConnection)
      -> RedisResult<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query::<()>
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut ClusterConnection'
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: ClusterPipeline::exec
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 0
    functionsReached:
    - query::<()>
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn exec(&self, con: &mut ClusterConnection) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterPipeline::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: cluster_pipe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 6
    functionsReached:
    - ClusterPipeline::new
    linkageType: ''
    returnType: ClusterPipeline
    signature: pub fn cluster_pipe() -> ClusterPipeline
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:114,1
    - Dst: RedisFuture::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:114,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:116,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:114,1
    - Dst: bool::req_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:118,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:118,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:120,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:118,1
    - Dst: bool::req_packed_commands
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:122,1
    - Dst: RedisFuture::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:122,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - connection
    argTypes:
    - '&mut impl ConnectionLike'
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 32
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: Input::send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - bool::req_command
    - and_then
    - map
    - bool::req_packed_command
    - bool::req_packed_commands
    - RedisFuture::and_then
    - impl combine::Parser::extract_error
    linkageType: ''
    returnType: RedisResult
    signature: 'fn send(&''a self, connection: &mut impl ConnectionLike) -> RedisResult<Output>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:133,1
    - Dst: Cmd::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: Input::arg_idx
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Option::arg_idx
    - Cmd::arg_idx
    linkageType: ''
    returnType: Option
    signature: 'fn arg_idx(&self, idx: usize) -> Option<&[u8]>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option::position
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:141,1
    - Dst: Cmd::position
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - candidate
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 33
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: Input::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::position
    - Option::position
    linkageType: ''
    returnType: Option
    signature: 'fn position(&self, candidate: &[u8]) -> Option<usize>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::Array
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - Output
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: Value::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::Array
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: Output) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:209,1
    - Dst: redis::ConnectionInfo::into_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - info
    - timeout
    argTypes:
    - T
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 34
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: Connection::connect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - redis::ConnectionInfo::into_connection_info
    - connection::connect
    linkageType: ''
    returnType: RedisResult
    signature: 'fn connect<T>(info: T, timeout: Option<Duration>) -> RedisResult<Self>whereT:
      IntoConnectionInfo,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 31
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: ClusterConfig::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Self::default
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - connection_timeout
    argTypes:
    - std::time::Duration
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 250
    functionName: ClusterConfig::set_connection_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_connection_timeout(mut self, connection_timeout: std::time::Duration)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - response_timeout
    argTypes:
    - std::time::Duration
    constantsTouched: []
    func_position:
      end: 256
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 256
    functionName: ClusterConfig::set_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_response_timeout(mut self, response_timeout: std::time::Duration)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:284,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sender
    argTypes:
    - impl crate::aio::AsyncPushSender
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: ClusterConfig::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_push_sender(mut self, sender: impl crate::aio::AsyncPushSender)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:293,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - impl crate::io::AsyncDNSResolver
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    functionName: ClusterConfig::set_dns_resolver
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - std::sync::Arc::new
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_dns_resolver(mut self, resolver: impl crate::io::AsyncDNSResolver)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_inner
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:174,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:175,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:176,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: ClusterConnection::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 6
    functionsReached:
    - Ok
    - RedisError::from
    - Self::new_inner
    - map_err
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) async fn new(initial_nodes: &[ConnectionInfo],cluster_params:
      ClusterParams,) -> RedisResult<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 346
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 346
    functionName: ClusterConnection::set_auto_reconnect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - borrow_mut
    linkageType: ''
    returnType: void
    signature: 'pub fn set_auto_reconnect(&self, value: bool)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option<Duration>::is_some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:355,1
    - Dst: Option<Duration>::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:355,1
    - Dst: is_zero
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:355,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:356,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:356,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:362,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:364,1
    - Dst: values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:365,1
    - Dst: Option::set_write_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:366,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 369
      start: 353
    functionDepth: 33
    functionLinenumber: 353
    functionLinenumberEnd: 369
    functionName: ClusterConnection::set_write_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Option::set_write_timeout
    - Option<Duration>::is_some
    - values
    - Err
    - RedisError::from
    - is_zero
    - Ok
    - Option<Duration>::unwrap
    - borrow_mut
    - borrow
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn set_write_timeout(&self, dur: Option<Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Option<Duration>::is_some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:378,1
    - Dst: Option<Duration>::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:378,1
    - Dst: is_zero
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:378,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:379,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:379,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:385,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:387,1
    - Dst: values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:388,1
    - Dst: Option::set_read_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:389,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 392
      start: 376
    functionDepth: 33
    functionLinenumber: 376
    functionLinenumberEnd: 392
    functionName: ClusterConnection::set_read_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Option<Duration>::is_some
    - values
    - Err
    - RedisError::from
    - is_zero
    - Ok
    - Option<Duration>::unwrap
    - borrow_mut
    - Option::set_read_timeout
    - borrow
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn set_read_timeout(&self, dur: Option<Duration>) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1098,1
    - Dst: values_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1099,1
    - Dst: Option::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1097
    functionDepth: 1
    functionLinenumber: 1097
    functionLinenumberEnd: 1105
    functionName: ClusterConnection::check_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - values_mut
    - borrow_mut
    - Option::check_connection
    linkageType: ''
    returnType: bool
    signature: fn check_connection(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnection::send_recv_and_retry_cmds
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:401,1
    - Dst: Pipeline::commands
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pipe
    argTypes:
    - '&ClusterPipeline'
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 402
    functionName: ClusterConnection::execute_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Pipeline::commands
    - ClusterConnection::send_recv_and_retry_cmds
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) fn execute_pipeline(&mut self, pipe: &ClusterPipeline)
      -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:412,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:412,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:413,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:415,1
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:416,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:418,1
    - Dst: Option::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:420,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:421,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:424,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:426,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:434,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:439,1
    - Dst: Self::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:441,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:442,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:444,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:446,1
    - Dst: std::iter::Chain::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:446,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:457,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:457,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:464,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:465,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:466,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 411
    functionDepth: 30
    functionLinenumber: 411
    functionLinenumberEnd: 467
    functionName: ClusterConnection::create_initial_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - len
    - ClusterConnection::refresh_slots
    - Err
    - '&str::to_string'
    - HashMap::with_capacity
    - RedisError::from
    - Ok
    - ClusterConnection::connect
    - iter
    - Self::is_empty
    - Self::into_iter
    - is_empty
    - Option::check_connection
    - insert
    - NodeAddress::try_from
    - std::iter::Chain::enumerate
    - Self::push
    - borrow_mut
    - Vec::new
    linkageType: ''
    returnType: RedisResult
    signature: fn create_initial_connections(&self) -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:471,1
    - Dst: ClusterConnection::create_new_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:472,1
    - Dst: Self::on_topology_changed
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:475,1
    - Dst: RedisResult::topology
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:475,1
    - Dst: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:478,1
    - Dst: Self::flatten
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:478,1
    - Dst: values().flatten().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:478,1
    - Dst: sort_unstable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:479,1
    - Dst: dedup
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:480,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:482,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:483,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:483,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:486,1
    - Dst: Option::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:487,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:489,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:489,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:492,1
    - Dst: Option::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:493,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:495,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:495,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:483,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:502,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 470
    functionDepth: 31
    functionLinenumber: 470
    functionLinenumberEnd: 503
    functionName: ClusterConnection::refresh_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Self::flatten
    - sort_unstable
    - ClusterConnection::create_new_slots
    - ClusterConnection::connect
    - remove
    - Option::check_connection
    - std::iter::Chain::filter_map
    - dedup
    - RedisResult::topology
    - ConnectionAddr::clone
    - Self::on_topology_changed
    - RedisResult::values
    - into_iter
    - Ok
    - values().flatten().collect::<Vec<_>>
    - Some
    - borrow_mut
    - collect
    linkageType: ''
    returnType: RedisResult
    signature: fn refresh_slots(&self) -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:506,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:509,1
    - Dst: Option::req_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:510,1
    - Dst: cluster_handling::slot_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:510,1
    - Dst: super::topology::parse_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:511,1
    - Dst: ConnectionAddr::host
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:511,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:512,1
    - Dst: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:512,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:518,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:519,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:519,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 524
      start: 505
    functionDepth: 31
    functionLinenumber: 505
    functionLinenumberEnd: 524
    functionName: ClusterConnection::create_new_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - ConnectionAddr::host
    - Option::req_command
    - Err
    - super::topology::parse_slots
    - iter_mut
    - SlotMap::from_slots
    - RedisError::from
    - Ok
    - cluster_handling::slot_cmd
    - Some
    - borrow_mut
    linkageType: ''
    returnType: RedisResult
    signature: fn create_new_slots(&self) -> RedisResult<SlotMap>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cluster_handling::get_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:527,1
    - Dst: C::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:529,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:529,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:533,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:533,1
    - Dst: Option::set_read_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:534,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:534,1
    - Dst: Option::set_write_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:535,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:535,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:536,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - node
    argTypes:
    - '&NodeAddress'
    constantsTouched: []
    func_position:
      end: 537
      start: 526
    functionDepth: 34
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: ClusterConnection::connect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 2
    functionsReached:
    - Option::set_write_timeout
    - cluster_handling::get_connection_info
    - Cmd::exec
    - Ok
    - C::connect
    - Some
    - cmd::cmd
    - Option::set_read_timeout
    - borrow
    linkageType: ''
    returnType: RedisResult
    signature: 'fn connect(&self, node: &NodeAddress) -> RedisResult<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:544,1
    - Dst: RedisResult::slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:545,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:545,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:546,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:546,1
    - Dst: get_random_connection_or_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - connections
    - route
    argTypes:
    - '&''a mut HashMap<NodeAddress, C>'
    - Route
    constantsTouched: []
    func_position:
      end: 552
      start: 539
    functionDepth: 42
    functionLinenumber: 539
    functionLinenumberEnd: 552
    functionName: ClusterConnection::get_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::slot_addr_for_route
    - as_deref
    - ConnectionAddr::clone
    - get_random_connection_or_error
    - ClusterConnection::get_connection_by_addr
    - borrow
    linkageType: ''
    returnType: (NodeAddress, RedisResult
    signature: 'fn get_connection<''a>(&self,connections: &''a mut HashMap<NodeAddress,
      C>,route: Route,) -> (NodeAddress, RedisResult<&''a mut C>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:559,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:559,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:561,1
    - Dst: into_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:561,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:566,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:567,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - connections
    - addr
    argTypes:
    - '&''a mut HashMap<NodeAddress, C>'
    - '&NodeAddress'
    constantsTouched: []
    func_position:
      end: 570
      start: 554
    functionDepth: 35
    functionLinenumber: 554
    functionLinenumberEnd: 570
    functionName: ClusterConnection::get_connection_by_addr
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - ClusterConnection::connect
    - into_mut
    - ConnectionAddr::clone
    - Ok
    - entry
    - insert
    linkageType: ''
    returnType: RedisResult
    signature: 'fn get_connection_by_addr<''a>(&self,connections: &''a mut HashMap<NodeAddress,
      C>,addr: &NodeAddress,) -> RedisResult<&''a mut C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:573,1
    - Dst: RedisResult::slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:576,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:577,1
    - Dst: Option::ok_or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:576,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:579,1
    - Dst: SlotAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:579,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:582,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:583,1
    - Dst: addr_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:583,1
    - Dst: Route::with_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:584,1
    - Dst: Slot::new_random
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:584,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:587,1
    - Dst: addr_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:587,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:589,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 591
      start: 572
    functionDepth: 42
    functionLinenumber: 572
    functionLinenumberEnd: 591
    functionName: ClusterConnection::get_addr_for_cmd
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::slot_addr_for_route
    - RoutingInfo::for_routable
    - addr_for_slot
    - Route::with_slot
    - as_deref
    - Ok
    - SlotAddr::clone
    - Option::ok_or
    - Slot::new_random
    - fail
    - borrow
    linkageType: ''
    returnType: RedisResult
    signature: 'fn get_addr_for_cmd(&self, cmd: &Cmd) -> RedisResult<NodeAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:594,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:596,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:596,1
    - Dst: ClusterConnection::get_addr_for_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:597,1
    - Dst: Self::entry
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:598,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:599,1
    - Dst: or_insert_with
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:598,1
    - Dst: NodeCmd::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:600,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:601,1
    - Dst: Cmd::write_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:602,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:605,1
    - Dst: Self::drain
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:606,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:607,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:609,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - '&[Cmd]'
    constantsTouched: []
    func_position:
      end: 610
      start: 593
    functionDepth: 30
    functionLinenumber: 593
    functionLinenumberEnd: 610
    functionName: ClusterConnection::map_cmds_to_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - Self::entry
    - Self::drain
    - push
    - Vec::new
    - ConnectionAddr::clone
    - RedisResult::iter
    - Ok
    - ClusterConnection::get_addr_for_cmd
    - enumerate
    - or_insert_with
    - NodeCmd::new
    - Cmd::write_packed_command
    linkageType: ''
    returnType: RedisResult
    signature: 'fn map_cmds_to_nodes(&self, cmds: &[Cmd]) -> RedisResult<Vec<NodeCmd>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:617,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:617,1
    - Dst: ClusterConnection::request
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:620,1
    - Dst: Input::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:621,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:622,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:622,1
    - Dst: ConnectionAddr::host
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:623,1
    - Dst: String::to_string
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:623,1
    - Dst: ConnectionAddr::port
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:624,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:620,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:630,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - input
    - addresses
    argTypes:
    - Input
    - HashSet<&'a NodeAddress>
    constantsTouched: []
    func_position:
      end: 634
      start: 612
    functionDepth: 32
    functionLinenumber: 612
    functionLinenumberEnd: 634
    functionName: ClusterConnection::execute_on_all
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Input::clone
    - RedisResult::map
    - std::iter::Chain::map
    - RoutingInfo::SingleNode
    - String::to_string
    - collect
    - Value::Array
    - RedisResult::into_iter
    - ClusterConnection::request
    - ConnectionAddr::host
    - ConnectionAddr::port
    - Some
    linkageType: ''
    returnType: Vec
    signature: 'fn execute_on_all<''a>(&''a self,input: Input,addresses: HashSet<&''a
      NodeAddress>,) -> Vec<RedisResult<(&''a NodeAddress, Value)>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnection::execute_on_all
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:641,1
    - Dst: RedisResult::addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - slots
    argTypes:
    - Input
    - '&''a mut SlotMap'
    constantsTouched: []
    func_position:
      end: 642
      start: 636
    functionDepth: 33
    functionLinenumber: 636
    functionLinenumberEnd: 642
    functionName: ClusterConnection::execute_on_all_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ClusterConnection::execute_on_all
    - RedisResult::addresses_for_all_nodes
    linkageType: ''
    returnType: Vec
    signature: 'fn execute_on_all_nodes<''a>(&''a self,input: Input,slots: &''a mut
      SlotMap,) -> Vec<RedisResult<(&''a NodeAddress, Value)>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnection::execute_on_all
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:649,1
    - Dst: RedisResult::addresses_for_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:649,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - slots
    argTypes:
    - Input
    - '&''a mut SlotMap'
    constantsTouched: []
    func_position:
      end: 650
      start: 644
    functionDepth: 33
    functionLinenumber: 644
    functionLinenumberEnd: 650
    functionName: ClusterConnection::execute_on_all_primaries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::addresses_for_all_primaries
    - ClusterConnection::execute_on_all
    linkageType: ''
    returnType: Vec
    signature: 'fn execute_on_all_primaries<''a>(&''a self,input: Input,slots: &''a
      mut SlotMap,) -> Vec<RedisResult<(&''a NodeAddress, Value)>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:662,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:663,1
    - Dst: impl Iterator::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:662,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:662,1
    - Dst: ConnectionAddr::ok_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:666,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:667,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:668,1
    - Dst: '&''b [(Route, Vec<usize>)]::get'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:669,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:669,1
    - Dst: crate::cluster_routing::command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:671,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:671,1
    - Dst: bool::req_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:672,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:672,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:662,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 4
    argNames:
    - input
    - slots
    - connections
    - routes
    argTypes:
    - Input
    - '&''a mut SlotMap'
    - '&''a mut HashMap<NodeAddress, C>'
    - '&''b [(Route, Vec<usize>)]'
    constantsTouched: []
    func_position:
      end: 675
      start: 652
    functionDepth: 32
    functionLinenumber: 652
    functionLinenumberEnd: 675
    functionName: ClusterConnection::execute_multi_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - bool::req_command
    - '&''b [(Route, Vec<usize>)]::get'
    - Option::unwrap
    - map
    - RedisError::from
    - as_deref
    - ConnectionAddr::ok_or_else
    - collect
    - RedisResult::addresses_for_multi_slot
    - ClusterConnection::get_connection_by_addr
    - impl Iterator::enumerate
    - Cmd::iter
    - crate::cluster_routing::command_for_multi_slot_indices
    linkageType: ''
    returnType: Vec
    signature: 'fn execute_multi_slot<''a, ''b>(&''a self,input: Input,slots: &''a
      mut SlotMap,connections: &''a mut HashMap<NodeAddress, C>,routes: &''b [(Route,
      Vec<usize>)],) -> Vec<RedisResult<(&''a NodeAddress, Value)>>where''b: ''a,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:683,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:684,1
    - Dst: ClusterConnection::execute_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:688,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:691,1
    - Dst: ClusterConnection::execute_on_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:692,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:695,1
    - Dst: ClusterConnection::execute_on_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:696,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:704,1
    - Dst: None::ok_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:707,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:709,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:707,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:722,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:723,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:727,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:727,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:728,1
    - Dst: crate::cluster_routing::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:730,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:731,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:731,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:733,1
    - Dst: "into_iter()\n                    .map(|result| result.map(|(_, value)|\
        \ value))\n                    .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:731,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:743,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:746,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:748,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:749,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:753,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:755,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:755,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:756,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:760,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:760,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:762,1
    - Dst: "into_iter()\n                    .map(|res| res.map(|(_, val)| val))\n\
        \                    .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:760,1
    - Dst: crate::cluster_routing::aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:764,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:767,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:767,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:769,1
    - Dst: "into_iter()\n                    .map(|res| res.map(|(_, val)| val))\n\
        \                    .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:767,1
    - Dst: crate::cluster_routing::logical_aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:771,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:774,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:774,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:776,1
    - Dst: "into_iter()\n                    .map(|res| res.map(|(_, val)| val))\n\
        \                    .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:774,1
    - Dst: crate::cluster_routing::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:780,1
    - Dst: crate::cluster_routing::combine_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:784,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:790,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:790,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:793,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:794,1
    - Dst: ConnectionAddr::to_string
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:794,1
    - Dst: String::into_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:794,1
    - Dst: "into_iter()\n                    .map(|result| {\n                   \
        \     result.map(|(addr, val)| {\n                            (Value::BulkString(addr.to_string().into_bytes()),\
        \ val)\n                        })\n                    })\n             \
        \       .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:790,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:798,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:798,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 150
    argCount: 3
    argNames:
    - input
    - routing
    - response_policy
    argTypes:
    - Input
    - MultipleNodeRoutingInfo
    - Option<ResponsePolicy>
    constantsTouched: []
    func_position:
      end: 801
      start: 677
    functionDepth: 33
    functionLinenumber: 677
    functionLinenumberEnd: 801
    functionName: ClusterConnection::execute_on_multiple_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - Value::BulkString
    - crate::cluster_routing::combine_and_sort_array_results
    - Ok
    - Value::Map
    - ConnectionAddr::to_string
    - RedisResult::len
    - Some
    - None::unwrap_or_else
    - map
    - crate::cluster_routing::combine_array_results
    - crate::cluster_routing::aggregate
    - drop
    - "into_iter()\n                    .map(|res| res.map(|(_, val)| val))\n    \
      \                .collect::<RedisResult<Vec<_>>>"
    - None::ok_or_else
    - std::iter::Chain::map
    - crate::cluster_routing::combine_map_results
    - String::into_bytes
    - RedisResult::into_iter
    - ClusterConnection::execute_on_all_nodes
    - into
    - ClusterConnection::execute_on_all_primaries
    - ClusterConnection::execute_multi_slot
    - "into_iter()\n                    .map(|result| {\n                        result.map(|(addr,\
      \ val)| {\n                            (Value::BulkString(addr.to_string().into_bytes()),\
      \ val)\n                        })\n                    })\n               \
      \     .collect::<RedisResult<Vec<_>>>"
    - "into_iter()\n                    .map(|result| result.map(|(_, value)| value))\n\
      \                    .collect::<RedisResult<Vec<_>>>"
    - crate::cluster_routing::logical_aggregate
    - borrow_mut
    linkageType: ''
    returnType: RedisResult
    signature: 'fn execute_on_multiple_nodes(&self,input: Input,routing: MultipleNodeRoutingInfo,response_policy:
      Option<ResponsePolicy>,) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnection::execute_on_multiple_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:808,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:808,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:812,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:821,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:822,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:827,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:832,1
    - Dst: Option::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:833,1
    - Dst: RedisFuture::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:833,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:834,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:835,1
    - Dst: get_random_connection_or_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:842,1
    - Dst: ClusterConnection::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:845,1
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:848,1
    - Dst: String::as_str
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:848,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:849,1
    - Dst: ClusterConnection::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:853,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:853,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:857,1
    - Dst: Input::send
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:857,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:861,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:863,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:864,1
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:867,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:868,1
    - Dst: Option::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:869,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:871,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:871,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:874,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:878,1
    - Dst: retry_method
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:882,1
    - Dst: redirect_node
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:884,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:884,1
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:885,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:885,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:885,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:890,1
    - Dst: redirect_node
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:892,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:892,1
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:893,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:893,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:893,1
    - Dst: wait_time_for_retry
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:898,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:902,1
    - Dst: wait_time_for_retry
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:908,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:912,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:913,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:916,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:918,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:918,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:919,1
    - Dst: Option::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:920,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:922,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:922,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:927,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:932,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:933,1
    - Dst: Option::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:934,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:936,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:936,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 214
    argCount: 2
    argNames:
    - input
    - route_option
    argTypes:
    - Input
    - Option<RoutingInfo>
    constantsTouched: []
    func_position:
      end: 943
      start: 804
    functionDepth: 34
    functionLinenumber: 804
    functionLinenumberEnd: 943
    functionName: ClusterConnection::request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - ClusterConnection::refresh_slots
    - Err
    - retry_method
    - thread::sleep
    - Ok
    - get_random_connection_or_error
    - fail
    - Route::new_random_primary
    - ClusterConnection::get_connection_by_addr
    - impl combine::Parser::extract_error
    - Result::ok
    - kind
    - ClusterConnection::connect
    - redirect_node
    - map
    - Input::send
    - borrow
    - take
    - Option::and_then
    - NodeAddress::new
    - remove
    - wait_time_for_retry
    - RedisFuture::and_then
    - Option::check_connection
    - insert
    - String::as_str
    - ClusterConnection::get_connection
    - NodeAddress::try_from
    - Option::req_packed_command
    - ClusterConnection::execute_on_multiple_nodes
    - RedisResult::map
    - borrow_mut
    linkageType: ''
    returnType: RedisResult
    signature: 'fn request(&self, input: Input, route_option: Option<RoutingInfo>)
      -> RedisResult<Output>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnection::send_all_commands
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:951,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:951,1
    - Dst: ClusterConnection::recv_all_commands
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:953,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:955,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:956,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:960,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:967,1
    - Dst: ClusterConnection::request
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:968,1
    - Dst: Input::Cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:968,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:968,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:970,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - '&[Cmd]'
    constantsTouched: []
    func_position:
      end: 971
      start: 945
    functionDepth: 33
    functionLinenumber: 945
    functionLinenumberEnd: 971
    functionName: ClusterConnection::send_recv_and_retry_cmds
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - RoutingInfo::for_routable
    - ClusterConnection::recv_all_commands
    - ClusterConnection::refresh_slots
    - ClusterConnection::send_all_commands
    - into
    - RedisResult::and_then
    - Ok
    - Input::Cmd
    - ClusterConnection::request
    - is_empty
    linkageType: ''
    returnType: RedisResult
    signature: 'fn send_recv_and_retry_cmds(&self, cmds: &[Cmd]) -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:975,1
    - Dst: ClusterConnection::map_cmds_to_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:977,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:979,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:979,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:982,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - '&[Cmd]'
    constantsTouched: []
    func_position:
      end: 983
      start: 974
    functionDepth: 31
    functionLinenumber: 974
    functionLinenumberEnd: 983
    functionName: ClusterConnection::send_all_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - send_packed_command
    - Ok
    - ClusterConnection::map_cmds_to_nodes
    - borrow_mut
    - ClusterConnection::get_connection_by_addr
    linkageType: ''
    returnType: RedisResult
    signature: 'fn send_all_commands(&self, cmds: &[Cmd]) -> RedisResult<Vec<NodeCmd>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:991,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:992,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:997,1
    - Dst: recv_response
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:997,1
    - Dst: is_cluster_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1002,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1002,1
    - Dst: None::or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1003,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1003,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1008,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1009,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - results
    - node_cmds
    argTypes:
    - '&mut [Value]'
    - '&[NodeCmd]'
    constantsTouched: []
    func_position:
      end: 1011
      start: 986
    functionDepth: 30
    functionLinenumber: 986
    functionLinenumberEnd: 1011
    functionName: ClusterConnection::recv_all_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - None::or
    - is_cluster_error
    - Err
    - Self::push
    - recv_response
    - Ok
    - ClusterConnection::get_connection_by_addr
    - Some
    - borrow_mut
    - Vec::new
    linkageType: ''
    returnType: RedisResult
    signature: 'fn recv_all_commands(&self,results: &mut [Value],node_cmds: &[NodeCmd],)
      -> RedisResult<Vec<usize>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:266,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:268,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:271,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:272,1
    - Dst: ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:274,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:268,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:278,1
    - Dst: io::Error::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:278,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:284,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:287,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:287,1
    - Dst: io::Error::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:287,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:284,1
    - Dst: timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:299,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 2
    argNames:
    - cmd
    - routing
    argTypes:
    - Cmd
    - RoutingInfo
    constantsTouched: []
    func_position:
      end: 302
      start: 264
    functionDepth: 38
    functionLinenumber: 264
    functionLinenumberEnd: 302
    functionName: ClusterConnection::route_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 3
    functionsReached:
    - send
    - map_err
    - ResultExpectation::External
    - Err
    - into
    - unwrap_or_else
    - map
    - RedisError::from
    - oneshot::channel
    - timeout
    - Arc::new
    - io::Error::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn route_command(&mut self, cmd: Cmd, routing: RoutingInfo)
      -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1024
    functionName: ClusterConnection::supports_pipelining
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: fn supports_pipelining(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1027,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1028,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1028,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1030,1
    - Dst: ClusterConnection::request
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1031,1
    - Dst: Input::Cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1031,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1031,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1032
      start: 1026
    functionDepth: 42
    functionLinenumber: 1026
    functionLinenumberEnd: 1032
    functionName: ClusterConnection::req_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - Err
    - into
    - Cmd::is_empty
    - RedisResult::map
    - Input::Cmd
    - RedisError::make_empty_command
    - ClusterConnection::request
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1804,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1804,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1805,1
    - Dst: ClusterConnection::route_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1806,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1806,1
    - Dst: RedisResult::boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 1807
      start: 1803
    functionDepth: 42
    functionLinenumber: 1803
    functionLinenumberEnd: 1807
    functionName: ClusterConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - Cmd::clone
    - RoutingInfo::SingleNode
    - RedisResult::boxed
    - ClusterConnection::route_command
    - Option::unwrap_or
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_command<''a>(&''a mut self, cmd: &''a Cmd) -> RedisFuture<''a,
      Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: routing::route_for_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1816,1
    - Dst: ClusterConnection::route_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1817,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1817,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1817,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pipeline
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 1821
      start: 1809
    functionDepth: 42
    functionLinenumber: 1809
    functionLinenumberEnd: 1821
    functionName: ClusterConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - boxed
    - into
    - ClusterConnection::route_pipeline
    - clone
    - routing::route_for_pipeline
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,pipeline: &''a crate::Pipeline,offset:
      usize,count: usize,) -> RedisFuture<''a, Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1825
      start: 1823
    functionDepth: 0
    functionLinenumber: 1823
    functionLinenumberEnd: 1825
    functionName: ClusterConnection::get_db
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: i64
    signature: fn get_db(&self) -> i64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1088,1
    - Dst: values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1089,1
    - Dst: Option::is_open
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1087
    functionDepth: 42
    functionLinenumber: 1087
    functionLinenumberEnd: 1095
    functionName: ClusterConnection::is_open
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Option::is_open
    - values
    - borrow
    linkageType: ''
    returnType: bool
    signature: fn is_open(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - a
    argTypes:
    - NodeAddress
    constantsTouched: []
    func_position:
      end: 1123
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1123
    functionName: NodeCmd::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn new(a: NodeAddress) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1918,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1918,1
    - Dst: Self::connected
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1920,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1920,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1920,1
    - Dst: choose
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1918,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - connections
    argTypes:
    - '&ConnectionMap<C>'
    constantsTouched: []
    func_position:
      end: 1922
      start: 1914
    functionDepth: 40
    functionLinenumber: 1914
    functionLinenumberEnd: 1922
    functionName: get_random_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - Option::map
    - ConnectionAddr::clone
    - iter
    - choose
    - filter_map
    - Self::connected
    linkageType: ''
    returnType: Option
    signature: 'fn get_random_connection<C>(connections: &ConnectionMap<C>) -> Option<(NodeAddress,
      C)>whereC: Clone,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_random_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1138,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1139,1
    - Dst: NodeAddress::default
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1142,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1143,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - connections
    argTypes:
    - '&mut HashMap<NodeAddress, C>'
    constantsTouched: []
    func_position:
      end: 1149
      start: 1135
    functionDepth: 41
    functionLinenumber: 1135
    functionLinenumberEnd: 1149
    functionName: get_random_connection_or_error
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 2
    functionsReached:
    - get_random_connection
    - NodeAddress::default
    - Err
    - RedisError::from
    - Ok
    linkageType: ''
    returnType: (NodeAddress, RedisResult
    signature: 'fn get_random_connection_or_error<C: ConnectionLike + Connect + Sized>(connections:
      &mut HashMap<NodeAddress, C>,) -> (NodeAddress, RedisResult<&mut C>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: replicas
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:11,1
    - Dst: choose_random
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:11,1
    - Dst: replicas
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:12,1
    - Dst: choose_random
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - candidates
    argTypes:
    - '&ReadCandidates<''a>'
    constantsTouched: []
    func_position:
      end: 14
      start: 9
    functionDepth: 43
    functionLinenumber: 9
    functionLinenumberEnd: 14
    functionName: RandomReplicaStrategy::route_read
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs
    functionUses: 0
    functionsReached:
    - choose_random
    - replicas
    linkageType: ''
    returnType: '&''a NodeAddress'
    signature: 'fn route_read<''a>(&self, candidates: &ReadCandidates<''a>) -> &''a
      NodeAddress'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NodeAddress::from_parts
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:79,1
    - Dst: String::into
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - '&str'
    - u16
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: tests::node
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - NodeAddress::from_parts
    - String::into
    linkageType: ''
    returnType: NodeAddress
    signature: 'fn node(host: &str, port: u16) -> NodeAddress'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:28,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:29,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:29,1
    - Dst: ReadCandidates::any_node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:30,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:30,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:30,1
    - Dst: Self::route_read
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 43
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: tests::chooses_replica_when_replicas_exist
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs
    functionUses: 0
    functionsReached:
    - Replicas::new
    - ReadCandidates::any_node
    - Self::route_read
    - Option::unwrap
    - node
    linkageType: ''
    returnType: void
    signature: fn chooses_replica_when_replicas_exist()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:39,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:39,1
    - Dst: ReadCandidates::replicas_only
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:40,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:40,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:40,1
    - Dst: Self::route_read
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 43
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: tests::chooses_replica_for_replicas_only
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs
    functionUses: 0
    functionsReached:
    - Replicas::new
    - ReadCandidates::replicas_only
    - Self::route_read
    - Option::unwrap
    - node
    linkageType: ''
    returnType: void
    signature: fn chooses_replica_for_replicas_only()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 40
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: RoundRobinReplicaStrategy::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 2
    functionsReached:
    - Self::default
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:34,1
    - Dst: RwLock::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:34,1
    - Dst: SlotRangeMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 39
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: RoundRobinReplicaStrategy::default
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - SlotRangeMap::new
    - RwLock::new
    - Arc::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotRangeMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:43,1
    - Dst: ClusterTopology::shards
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:44,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:45,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:45,1
    - Dst: slot_ranges
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:46,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:47,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:47,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:50,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - topology
    argTypes:
    - ClusterTopology
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 40
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: RoundRobinReplicaStrategy::on_topology_changed
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - ClusterTopology::shards
    - RedisResult::insert
    - AtomicUsize::new
    - write
    - Arc::new
    - SlotRangeMap::new
    - slot_ranges
    - Arc::clone
    - expect
    linkageType: ''
    returnType: void
    signature: 'fn on_topology_changed(&self, topology: ClusterTopology)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&ReadCandidates<''a>::slot'
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:55,1
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:57,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:57,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:58,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:58,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:61,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:58,1
    - Dst: replicas
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:66,1
    - Dst: replicas
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:67,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:69,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:69,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:69,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - candidates
    argTypes:
    - '&ReadCandidates<''a>'
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 40
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: RoundRobinReplicaStrategy::route_read
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - get
    - read
    - len
    - '&ReadCandidates<''a>::slot'
    - map
    - unwrap_or
    - replicas
    - Option::expect
    - fetch_add
    - expect
    linkageType: ''
    returnType: '&''a NodeAddress'
    signature: 'fn route_read<''a>(&self, candidates: &ReadCandidates<''a>) -> &''a
      NodeAddress'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundRobinReplicaStrategy::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:83,1
    - Dst: Self::on_topology_changed
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:85,1
    - Dst: ClusterTopology::from_shards
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 41
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: tests::setup_strategy
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - Self::on_topology_changed
    - RoundRobinReplicaStrategy::new
    - ClusterTopology::from_shards
    linkageType: ''
    returnType: RoundRobinReplicaStrategy
    signature: fn setup_strategy() -> RoundRobinReplicaStrategy
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_strategy
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:102,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:103,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:104,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:105,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:105,1
    - Dst: ReadCandidates::replicas_only
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:107,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:107,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 114
      start: 101
    functionDepth: 42
    functionLinenumber: 101
    functionLinenumberEnd: 114
    functionName: tests::round_robins_within_a_shard
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - Replicas::new
    - clone
    - ReadCandidates::replicas_only
    - setup_strategy
    - Option::unwrap
    - node
    linkageType: ''
    returnType: void
    signature: fn round_robins_within_a_shard()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_strategy
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:118,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:120,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:120,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:121,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:121,1
    - Dst: ReadCandidates::replicas_only
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:123,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:123,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:123,1
    - Dst: ReadCandidates::replicas_only
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:124,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:124,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 134
      start: 117
    functionDepth: 42
    functionLinenumber: 117
    functionLinenumberEnd: 134
    functionName: tests::different_shards_rotate_independently
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - Replicas::new
    - ReadCandidates::replicas_only
    - setup_strategy
    - Option::unwrap
    - node
    linkageType: ''
    returnType: void
    signature: fn different_shards_rotate_independently()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: setup_strategy
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:138,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:139,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:140,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:141,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:142,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:142,1
    - Dst: ReadCandidates::any_node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:144,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:144,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 151
      start: 137
    functionDepth: 42
    functionLinenumber: 137
    functionLinenumberEnd: 151
    functionName: tests::round_robins_any_node_with_replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - Replicas::new
    - ReadCandidates::any_node
    - clone
    - setup_strategy
    - Option::unwrap
    - node
    linkageType: ''
    returnType: void
    signature: fn round_robins_any_node_with_replicas()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoundRobinReplicaStrategy::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:155,1
    - Dst: Self::on_topology_changed
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:157,1
    - Dst: ClusterTopology::from_shards
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:157,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:170,1
    - Dst: node
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:170,1
    - Dst: ReadCandidates::replicas_only
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:172,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:172,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:172,1
    - Dst: ReadCandidates::replicas_only
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:174,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:174,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 183
      start: 154
    functionDepth: 41
    functionLinenumber: 154
    functionLinenumberEnd: 183
    functionName: tests::multiple_ranges_on_same_shard_share_counter
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - Replicas::new
    - ClusterTopology::from_shards
    - Self::on_topology_changed
    - ReadCandidates::replicas_only
    - RoundRobinReplicaStrategy::new
    - Option::unwrap
    - node
    linkageType: ''
    returnType: void
    signature: fn multiple_ranges_on_same_shard_share_counter()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:25,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - slot_ranges
    - primary
    - replicas
    argTypes:
    - impl Into<Arc<[(u16, u16)]>>
    - NodeAddress
    - impl Into<Arc<[NodeAddress]>>
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: Shard::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 1
    functionsReached:
    - into
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(slot_ranges: impl Into<Arc<[(u16, u16)]>>,primary: NodeAddress,replicas:
      impl Into<Arc<[NodeAddress]>>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Shard::slot_ranges
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[(u16, u16)]'
    signature: pub fn slot_ranges(&self) -> &[(u16, u16)]
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Shard::primary
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&NodeAddress'
    signature: pub fn primary(&self) -> &NodeAddress
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Shard::replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&[NodeAddress]'
    signature: pub fn replicas(&self) -> &[NodeAddress]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotRangeMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:58,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:60,1
    - Dst: slot_ranges
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:61,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:62,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - shards
    argTypes:
    - Vec<Shard>
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 40
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: ClusterTopology::from_shards
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 3
    functionsReached:
    - RedisResult::insert
    - Arc::new
    - SlotRangeMap::new
    - slot_ranges
    - Arc::clone
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_shards(shards: Vec<Shard>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:71,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:71,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - slot
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 41
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: ClusterTopology::shard_for_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 1
    functionsReached:
    - get
    - as_ref
    - map
    linkageType: ''
    returnType: Option
    signature: 'pub fn shard_for_slot(&self, slot: u16) -> Option<&Shard>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:76,1
    - Dst: values
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:77,1
    - Dst: filter
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:77,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:79,1
    - Dst: Arc::as_ptr
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:79,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:77,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 42
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: ClusterTopology::shards
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 3
    functionsReached:
    - values
    - Arc::as_ptr
    - filter
    - Self::insert
    - map
    - as_ref
    - std::collections::HashSet::new
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn shards(&self) -> impl Iterator<Item = &Shard>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:96,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - slice
    argTypes:
    - '&''a [NodeAddress]'
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: Replicas::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 7
    functionsReached:
    - Some
    - is_empty
    linkageType: ''
    returnType: Option
    signature: 'pub fn new(slice: &''a [NodeAddress]) -> Option<Self>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:106,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:106,1
    - Dst: Self::expect
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 39
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: Replicas::len
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached:
    - Self::expect
    - len
    - NonZeroUsize::new
    linkageType: ''
    returnType: NonZeroUsize
    signature: pub fn len(&self) -> NonZeroUsize
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Replicas::first
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''a NodeAddress'
    signature: pub fn first(&self) -> &'a NodeAddress
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 41
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: Replicas::get
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Option
    signature: 'pub fn get(&self, idx: usize) -> Option<&''a NodeAddress>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: choose
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:122,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:122,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 123
    functionName: Replicas::choose_random
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached:
    - choose
    - rand::rng
    - expect
    linkageType: ''
    returnType: '&''a NodeAddress'
    signature: pub fn choose_random(&self) -> &'a NodeAddress
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 40
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Replicas::iter
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached:
    - iter
    linkageType: ''
    returnType: impl Iterator
    signature: pub fn iter(&self) -> impl Iterator<Item = &'a NodeAddress>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: AnyNodeCandidates::slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn slot(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: AnyNodeCandidates::primary
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''a NodeAddress'
    signature: pub fn primary(&self) -> &'a NodeAddress
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 153
    functionName: AnyNodeCandidates::replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Replicas'
    signature: pub fn replicas(&self) -> &Replicas<'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: ReplicasOnlyCandidates::slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u16
    signature: pub fn slot(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: ReplicasOnlyCandidates::replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&Replicas'
    signature: pub fn replicas(&self) -> &Replicas<'a>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:192,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: ReadCandidates::slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached:
    - slot
    linkageType: ''
    returnType: u16
    signature: pub fn slot(&self) -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadCandidates::AnyNode
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slot
    - primary
    - replicas
    argTypes:
    - u16
    - '&''a NodeAddress'
    - Replicas<'a>
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    functionName: ReadCandidates::any_node
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 3
    functionsReached:
    - ReadCandidates::AnyNode
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn any_node(slot: u16, primary: &''a NodeAddress, replicas:
      Replicas<''a>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ReadCandidates::ReplicasOnly
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - replicas
    argTypes:
    - u16
    - Replicas<'a>
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: ReadCandidates::replicas_only
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 5
    functionsReached:
    - ReadCandidates::ReplicasOnly
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn replicas_only(slot: u16, replicas: Replicas<''a>) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _topology
    argTypes:
    - ClusterTopology
    constantsTouched: []
    func_position:
      end: 256
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 256
    functionName: ReadRoutingStrategy::on_topology_changed
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: 'fn on_topology_changed(&self, _topology: ClusterTopology)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:320,1
    - Dst: T::default
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 321
      start: 319
    functionDepth: 39
    functionLinenumber: 319
    functionLinenumberEnd: 321
    functionName: T::create_strategy
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached:
    - Box::new
    - T::default
    linkageType: ''
    returnType: Box
    signature: fn create_strategy(&self) -> Box<dyn ReadRoutingStrategy>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_tuple
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:20,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:20,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:20,1
    - Dst: debug_tuple
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:21,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:21,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 23
      start: 18
    functionDepth: 46
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: InternalRoutingInfo::fmt
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - debug_tuple
    - field
    - finish
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - InternalSingleNodeRouting<C>
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: InternalRoutingInfo::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - Self::SingleNode
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: InternalSingleNodeRouting<C>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_tuple
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:61,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:61,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:61,1
    - Dst: debug_tuple
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:62,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:62,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:62,1
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:66,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:66,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:66,1
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:73,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:73,1
    - Dst: field
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:73,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 46
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: InternalSingleNodeRouting::fmt
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - debug_tuple
    - field
    - finish
    - debug_struct
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:86,1
    - Dst: Self::ByAddress
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:88,1
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:88,1
    - Dst: Self::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:90,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - SingleNodeRoutingInfo
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: InternalSingleNodeRouting::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - NodeAddress::new
    - Route::new_random_primary
    - Self::ByAddress
    - Self::SpecificNode
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: SingleNodeRoutingInfo) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:97,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:99,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:102,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 109
      start: 96
    functionDepth: 42
    functionLinenumber: 96
    functionLinenumberEnd: 109
    functionName: r::o::u::t::e::_::f::o::r::_::p::i::p::e::l::i::n::e::route_for_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - Some
    - Route::new_random_primary
    linkageType: ''
    returnType: Option
    signature: 'fn route_for_command(cmd: &Cmd) -> Option<Route>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:113,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:113,1
    - Dst: try_fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:113,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:116,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:117,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:119,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:119,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:120,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:121,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:120,1
    - Dst: slot_addr
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:125,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:126,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:126,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:128,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - pipeline
    argTypes:
    - '&crate::Pipeline'
    constantsTouched: []
    func_position:
      end: 133
      start: 95
    functionDepth: 42
    functionLinenumber: 95
    functionLinenumberEnd: 133
    functionName: route_for_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 1
    functionsReached:
    - cmd_iter
    - impl Iterator::map
    - slot
    - Err
    - into
    - slot_addr
    - Ok
    - Some
    - try_fold
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(super) fn route_for_pipeline(pipeline: &crate::Pipeline) -> RedisResult<Option<Route>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:146,1
    - Dst: flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:148,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:148,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:148,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 145
    functionDepth: 48
    functionLinenumber: 145
    functionLinenumberEnd: 160
    functionName: pipeline_routing_tests::test_first_route_is_found
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - get
    - add_command
    - flushall
    - crate::Pipeline::new
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_first_route_is_found()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:164,1
    - Dst: flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:166,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:166,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 163
    functionDepth: 48
    functionLinenumber: 163
    functionLinenumberEnd: 171
    functionName: pipeline_routing_tests::test_return_none_if_no_route_is_found
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - cmd
    - add_command
    - flushall
    - crate::Pipeline::new
    linkageType: ''
    returnType: void
    signature: fn test_return_none_if_no_route_is_found()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:175,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:177,1
    - Dst: Option::flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:177,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:177,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:180,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:177,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:177,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:177,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 191
      start: 174
    functionDepth: 48
    functionLinenumber: 174
    functionLinenumberEnd: 191
    functionName: pipeline_routing_tests::test_prefer_primary_route_over_replica
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - get
    - set
    - add_command
    - arg
    - Option::flushall
    - crate::Pipeline::new
    - cmd
    linkageType: ''
    returnType: void
    signature: fn test_prefer_primary_route_over_replica()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:195,1
    - Dst: flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:197,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:197,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 194
    functionDepth: 48
    functionLinenumber: 194
    functionLinenumberEnd: 206
    functionName: pipeline_routing_tests::test_raise_cross_slot_error_on_conflicting_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - get
    - set
    - flushall
    - crate::Pipeline::new
    linkageType: ''
    returnType: void
    signature: fn test_raise_cross_slot_error_on_conflicting_slots()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:210,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 209
    functionDepth: 48
    functionLinenumber: 209
    functionLinenumberEnd: 226
    functionName: pipeline_routing_tests::unkeyed_commands_dont_affect_route
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - set
    - Cmd::arg
    - crate::Pipeline::new
    - cmd
    linkageType: ''
    returnType: void
    signature: fn unkeyed_commands_dont_affect_route()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_inner
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 187
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 187
    functionName: ClusterConnection::new_pending
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Self::new_inner
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn new_pending(initial_nodes: &[ConnectionInfo],cluster_params:
      ClusterParams,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:193,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:196,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:197,1
    - Dst: futures_channel::mpsc::unbounded
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:199,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:200,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:201,1
    - Dst: mpsc::channel::<Message<_>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:202,1
    - Dst: Self::downgrade
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:203,1
    - Dst: ClusterConnInner::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:206,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:208,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:210,1
    - Dst: upgrade
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:212,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:214,1
    - Dst: CmdArg::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:216,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:216,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:222,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:209,1
    - Dst: future::pending
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:228,1
    - Dst: Vec::boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:228,1
    - Dst: oneshot::channel::<RedisResult<()>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:231,1
    - Dst: RedisResult::wait_for_initial_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:233,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:234,1
    - Dst: inspect_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:234,1
    - Dst: stream::poll_fn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:238,1
    - Dst: "(\n        PendingRequest::poll_recv"
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:238,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:238,1
    - Dst: forward
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:238,1
    - Dst: HandleContainer::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:243,1
    - Dst: tokio::runtime::Runtime::spawn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:243,1
    - Dst: 'futures_util::

        future::select'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:244,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:250,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 81
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 261
      start: 189
    functionDepth: 42
    functionLinenumber: 189
    functionLinenumberEnd: 261
    functionName: ClusterConnection::new_inner
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - forward
    - ConnectionAddr::clone
    - 'futures_util::

      future::select'
    - Runtime::locate
    - Self::downgrade
    - ClusterConnInner::new
    - "(\n        PendingRequest::poll_recv"
    - boxed
    - Self::send
    - map
    - clone
    - Vec::boxed
    - next
    - RedisResult::wait_for_initial_connection
    - take
    - send
    - tokio::runtime::Runtime::spawn
    - oneshot::channel::<RedisResult<()>>
    - HandleContainer::new
    - Arc::new
    - unwrap_or_default
    - stream::poll_fn
    - future::pending
    - mpsc::channel::<Message<_>>
    - upgrade
    - futures_channel::mpsc::unbounded
    - inspect_err
    - ProtocolVersion::supports_resp3
    - CmdArg::Reconnect
    - is_some
    linkageType: ''
    returnType: (Self, oneshot::Receiver
    signature: 'pub(crate) fn new_inner(initial_nodes: &[ConnectionInfo],mut cluster_params:
      ClusterParams,) -> (Self, oneshot::Receiver<RedisResult<()>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:312,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:315,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:318,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:321,1
    - Dst: ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:323,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:315,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:326,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:327,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:329,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:329,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:327,1
    - Dst: timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:337,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 4
    argNames:
    - pipeline
    - offset
    - count
    - route
    argTypes:
    - crate::Pipeline
    - usize
    - usize
    - SingleNodeRoutingInfo
    constantsTouched: []
    func_position:
      end: 340
      start: 305
    functionDepth: 47
    functionLinenumber: 305
    functionLinenumberEnd: 340
    functionName: ClusterConnection::route_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - closed_connection_error
    - send
    - map_err
    - ResultExpectation::External
    - Err
    - into
    - unwrap_or_else
    - map
    - timeout
    - oneshot::channel
    - Arc::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn route_pipeline(&mut self,pipeline: crate::Pipeline,offset:
      usize,count: usize,route: SingleNodeRoutingInfo,) -> RedisResult<Vec<Value>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:364,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:365,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:366,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:367,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:368,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 369
      start: 363
    functionDepth: 44
    functionLinenumber: 363
    functionLinenumberEnd: 369
    functionName: ClusterConnection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn subscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:375,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:376,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:377,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:378,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 44
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: ClusterConnection::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn unsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:406,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:407,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:408,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:409,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:410,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 411
      start: 405
    functionDepth: 44
    functionLinenumber: 405
    functionLinenumberEnd: 411
    functionName: ClusterConnection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn psubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:417,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:418,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:419,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:420,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:421,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 422
      start: 416
    functionDepth: 44
    functionLinenumber: 416
    functionLinenumberEnd: 422
    functionName: ClusterConnection::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn punsubscribe(&mut self, channel_pattern: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:446,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:447,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:448,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:449,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 451
      start: 445
    functionDepth: 44
    functionLinenumber: 445
    functionLinenumberEnd: 451
    functionName: ClusterConnection::ssubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn ssubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:457,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:458,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:459,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:460,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:461,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 44
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: ClusterConnection::sunsubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::exec_async
    - check_resp3
    - Cmd::arg
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn sunsubscribe(&mut self, channel_name: impl ToRedisArgs)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:467,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:467,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 468
      start: 466
    functionDepth: 43
    functionLinenumber: 466
    functionLinenumberEnd: 468
    functionName: ClusterConnection::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - statistics
    - map
    linkageType: ''
    returnType: Option
    signature: pub fn get_cache_statistics(&self) -> Option<CacheStatistics>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: debug_tuple
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:485,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:485,1
    - Dst: debug_tuple
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:486,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 489
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 489
    functionName: ConnState::fmt
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - debug_tuple
    - finish
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:498,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 501
      start: 493
    functionDepth: 6
    functionLinenumber: 493
    functionLinenumberEnd: 501
    functionName: ConnState::connected
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Option::clone
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn connected(&self) -> Option<C>whereC: Clone,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:509,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 512
      start: 504
    functionDepth: 6
    functionLinenumber: 504
    functionLinenumberEnd: 512
    functionName: ConnState::connected_or_reconnecting
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Option::clone
    - Some
    linkageType: ''
    returnType: Option
    signature: 'fn connected_or_reconnecting(&self) -> Option<C>whereC: Clone,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:516,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: ConnState::into_conn
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Option
    signature: fn into_conn(self) -> Option<C>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: entry
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:523,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:524,1
    - Dst: and_modify
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:523,1
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:526,1
    - Dst: ConnState::Reconnecting
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:529,1
    - Dst: or_insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - connections
    - addr
    argTypes:
    - '&mut ConnectionMap<C>'
    - NodeAddress
    constantsTouched: []
    func_position:
      end: 535
      start: 522
    functionDepth: 6
    functionLinenumber: 522
    functionLinenumberEnd: 535
    functionName: mark_reconnecting
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ConnState::Reconnecting
    - ConnectionAddr::clone
    - or_insert
    - entry
    - std::mem::replace
    - and_modify
    linkageType: ''
    returnType: void
    signature: 'fn mark_reconnecting<C>(connections: &mut ConnectionMap<C>, addr:
      NodeAddress)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 559
    functionName: Core::deref
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&InnerCore'
    signature: fn deref(&self) -> &InnerCore<C>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:572,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:573,1
    - Dst: Result::Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:576,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:577,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:587,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:587,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:587,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:596,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:597,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:599,1
    - Dst: request::ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:602,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:605,1
    - Dst: SlotMap::addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:620,1
    - Dst: HashSet::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:620,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:620,1
    - Dst: to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:623,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:623,1
    - Dst: unzip
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:620,1
    - Dst: SlotMap::addresses_for_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:625,1
    - Dst: HashSet::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:625,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:625,1
    - Dst: to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:628,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:628,1
    - Dst: unzip
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:625,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:630,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:631,1
    - Dst: impl Iterator::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:630,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:630,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:634,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:635,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:635,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:637,1
    - Dst: crate::cluster_routing::command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:637,1
    - Dst: Cmd::as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:638,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:639,1
    - Dst: to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:641,1
    - Dst: unzip
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:630,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:647,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:649,1
    - Dst: Self::aggregate_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:654,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:654,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 107
    argCount: 3
    argNames:
    - cmd
    - routing
    - response_policy
    argTypes:
    - '&''a Arc<Cmd>'
    - '&''a MultipleNodeRoutingInfo'
    - Option<ResponsePolicy>
    constantsTouched: []
    func_position:
      end: 658
      start: 566
    functionDepth: 40
    functionLinenumber: 566
    functionLinenumberEnd: 658
    functionName: Core::execute_on_multiple_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - read
    - ConnectionAddr::clone
    - SlotMap::addresses_for_all_primaries
    - unwrap
    - Cmd::as_ref
    - to_request
    - HashSet::into_iter
    - map
    - request::ResultExpectation::External
    - std::iter::Chain::filter_map
    - as_deref
    - SlotMap::addresses_for_all_nodes
    - Cmd::iter
    - drop
    - get
    - send
    - and_then
    - oneshot::channel
    - Arc::new
    - is_empty
    - impl Iterator::enumerate
    - Self::aggregate_results
    - Cmd::clone
    - into
    - SlotMap::addresses_for_multi_slot
    - Result::Err
    - filter_map
    - unzip
    - crate::cluster_routing::command_for_multi_slot_indices
    linkageType: ''
    returnType: OperationResult
    signature: 'async fn execute_on_multiple_nodes<''a>(&self,cmd: &''a Arc<Cmd>,routing:
      &''a MultipleNodeRoutingInfo,response_policy: Option<ResponsePolicy>,) -> OperationResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:665,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:666,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:666,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:679,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:679,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:679,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:680,1
    - Dst: convert_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:684,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:689,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:689,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:689,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:689,1
    - Dst: RedisResult::pop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:692,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:692,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:693,1
    - Dst: future::select_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:701,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:702,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:702,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:704,1
    - Dst: get_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:704,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:701,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:721,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:721,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:721,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:722,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:728,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:728,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:730,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:732,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:738,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:740,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:740,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:741,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:750,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:750,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:750,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:750,1
    - Dst: crate::cluster_routing::aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:752,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:755,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:755,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:755,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:755,1
    - Dst: crate::cluster_routing::logical_aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:757,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:760,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:760,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:760,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:760,1
    - Dst: crate::cluster_routing::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:764,1
    - Dst: crate::cluster_routing::combine_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:768,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:773,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:773,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:773,1
    - Dst: crate::cluster_routing::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:774,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:779,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:779,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:779,1
    - Dst: convert_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:781,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:781,1
    - Dst: try_into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:781,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:782,1
    - Dst: Value::ServerError
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:782,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:783,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:785,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:786,1
    - Dst: ConnectionAddr::to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:786,1
    - Dst: String::into_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:786,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:779,1
    - Dst: "into_iter().map(|(addr, receiver)| async move {\n                    \
        \    let result =\n                            convert_result(receiver.await).or_else(|err|\
        \ match err.try_into() {\n                                Ok(server_error)\
        \ => Ok(Value::ServerError(server_error)),\n                             \
        \   Err(err) => Err(err),\n                            })?;\n            \
        \            Ok::<_, RedisError>((\n                            Value::BulkString(addr.to_string().into_bytes()),\n\
        \                            result,\n                        ))\n       \
        \             }))\n                    .await\n                    .into_iter()\n\
        \                    .collect::<Result<Vec<_>, _>>"
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:779,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:793,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:793,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 163
    argCount: 3
    argNames:
    - receivers
    - routing
    - response_policy
    argTypes:
    - Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>
    - '&MultipleNodeRoutingInfo'
    - Option<ResponsePolicy>
    constantsTouched: []
    func_position:
      end: 796
      start: 660
    functionDepth: 43
    functionLinenumber: 660
    functionLinenumberEnd: 796
    functionName: Core::aggregate_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - len
    - "into_iter().map(|(addr, receiver)| async move {\n                        let\
      \ result =\n                            convert_result(receiver.await).or_else(|err|\
      \ match err.try_into() {\n                                Ok(server_error) =>\
      \ Ok(Value::ServerError(server_error)),\n                                Err(err)\
      \ => Err(err),\n                            })?;\n                        Ok::<_,\
      \ RedisError>((\n                            Value::BulkString(addr.to_string().into_bytes()),\n\
      \                            result,\n                        ))\n         \
      \           }))\n                    .await\n                    .into_iter()\n\
      \                    .collect::<Result<Vec<_>, _>>"
    - Err
    - RedisError::from
    - Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
    - Value::BulkString
    - crate::cluster_routing::combine_and_sort_array_results
    - Ok
    - Ok::<_, RedisError>
    - future::join_all
    - ConnectionAddr::to_string
    - Value::Map
    - Some
    - future::select_ok
    - None::unwrap_or_else
    - RedisResult::pop
    - map
    - crate::cluster_routing::combine_array_results
    - or_else
    - into_iter
    - get_receiver
    - crate::cluster_routing::aggregate
    - future::try_join_all
    - map_err
    - and_then
    - std::iter::Chain::map
    - Value::ServerError
    - crate::cluster_routing::combine_map_results
    - String::into_bytes
    - try_into
    - Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::is_empty
    - convert_result
    - ok_or_else
    - into
    - crate::cluster_routing::logical_aggregate
    - Box::pin
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn aggregate_results(receivers: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>,routing:
      &MultipleNodeRoutingInfo,response_policy: Option<ResponsePolicy>,) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Core::execute_on_multiple_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:806,1
    - Dst: Core::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:812,1
    - Dst: ConnectionAddr::into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:814,1
    - Dst: Option::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:815,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:815,1
    - Dst: SubscriptionTracker::to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:821,1
    - Dst: Cmd::as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:821,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:823,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:823,1
    - Dst: update_with_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:824,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:815,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:829,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 2
    argNames:
    - cmd
    - routing
    argTypes:
    - Arc<Cmd>
    - InternalRoutingInfo<C>
    constantsTouched: []
    func_position:
      end: 831
      start: 798
    functionDepth: 41
    functionLinenumber: 798
    functionLinenumberEnd: 831
    functionName: Core::try_cmd_request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::as_ref
    - Self::unwrap
    - SubscriptionTracker::to_request
    - update_with_request
    - Option::req_packed_command
    - map
    - Err
    - Core::get_connection
    - Core::execute_on_multiple_nodes
    - inspect
    - lock
    - ConnectionAddr::into
    linkageType: ''
    returnType: OperationResult
    signature: 'async fn try_cmd_request(&self,cmd: Arc<Cmd>,routing: InternalRoutingInfo<C>,)
      -> OperationResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Core::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:840,1
    - Dst: Option::req_packed_commands
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:843,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:843,1
    - Dst: is_transaction
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:849,1
    - Dst: cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:858,1
    - Dst: impl Iterator::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:858,1
    - Dst: flat_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:858,1
    - Dst: SubscriptionTracker::to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:865,1
    - Dst: peekable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:858,1
    - Dst: peek
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:869,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:869,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:870,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:870,1
    - Dst: update_with_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:872,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:843,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:878,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 4
    argNames:
    - pipeline
    - offset
    - count
    - route
    argTypes:
    - Arc<crate::Pipeline>
    - usize
    - usize
    - InternalSingleNodeRouting<C>
    constantsTouched: []
    func_position:
      end: 880
      start: 833
    functionDepth: 44
    functionLinenumber: 833
    functionLinenumberEnd: 880
    functionName: Core::try_pipeline_request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - Option::req_packed_commands
    - cmd_iter
    - is_some
    - SubscriptionTracker::to_request
    - update_with_request
    - is_transaction
    - Err
    - map
    - Core::get_connection
    - peekable
    - inspect
    - lock
    - flat_map
    - impl Iterator::enumerate
    - peek
    linkageType: ''
    returnType: OperationResult
    signature: 'async fn try_pipeline_request(&self,pipeline: Arc<crate::Pipeline>,offset:
      usize,count: usize,route: InternalSingleNodeRouting<C>,) -> OperationResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:887,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:887,1
    - Dst: Core::try_cmd_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:889,1
    - Dst: Core::try_pipeline_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - CmdArg<C>
    constantsTouched: []
    func_position:
      end: 900
      start: 882
    functionDepth: 42
    functionLinenumber: 882
    functionLinenumberEnd: 900
    functionName: Core::try_request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Err
    - RedisError::from
    - Core::try_cmd_request
    - Core::try_pipeline_request
    linkageType: ''
    returnType: OperationResult
    signature: 'async fn try_request(self, cmd: CmdArg<C>) -> OperationResult'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:908,1
    - Dst: get_random_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:909,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:910,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:912,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:912,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:918,1
    - Dst: Core::get_redirected_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:922,1
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:925,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:926,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:926,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:927,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:928,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:931,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:928,1
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:938,1
    - Dst: slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:939,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:941,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:939,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:945,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:945,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:947,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:947,1
    - Dst: shard_fallback_addrs
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:952,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:952,1
    - Dst: find_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:952,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:957,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:957,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:957,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:963,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:965,1
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:968,1
    - Dst: get_random_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:969,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:970,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:971,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:974,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:974,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 116
    argCount: 1
    argNames:
    - route
    argTypes:
    - InternalSingleNodeRouting<C>
    constantsTouched: []
    func_position:
      end: 975
      start: 902
    functionDepth: 40
    functionLinenumber: 902
    functionLinenumberEnd: 975
    functionName: Core::get_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 2
    functionsReached:
    - read
    - get
    - to_string
    - get_random_connection
    - Core::get_redirected_connection
    - Err
    - into
    - and_then
    - cloned
    - shard_fallback_addrs
    - find_map
    - as_deref
    - ConnectionAddr::clone
    - map
    - into_iter
    - Ok
    - slot_addr_for_route
    - drop
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_connection(&self,route: InternalSingleNodeRouting<C>,)
      -> RedisResult<(NodeAddress, C)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:982,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:983,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:983,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:984,1
    - Dst: Core::connect_check_and_add
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:987,1
    - Dst: crate::cmd::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:990,1
    - Dst: Option::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:992,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:992,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:995,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:998,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - redirect
    argTypes:
    - Redirect
    constantsTouched: []
    func_position:
      end: 999
      start: 977
    functionDepth: 40
    functionLinenumber: 977
    functionLinenumberEnd: 999
    functionName: Core::get_redirected_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - crate::cmd::cmd
    - get
    - read
    - and_then
    - Option::req_packed_command
    - impl combine::Parser::extract_error
    - Ok
    - Core::connect_check_and_add
    - drop
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_redirected_connection(&self, redirect: Redirect) -> RedisResult<(NodeAddress,
      C)>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: connect_and_check::<C>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1002,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1003,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1003,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1007,1
    - Dst: ConnState::Connected
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1007,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1007,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1008,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - addr
    argTypes:
    - '&NodeAddress'
    constantsTouched: []
    func_position:
      end: 1009
      start: 1001
    functionDepth: 40
    functionLinenumber: 1001
    functionLinenumberEnd: 1009
    functionName: Core::connect_check_and_add
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Option::clone
    - write
    - ConnectionAddr::clone
    - Ok
    - ConnState::Connected
    - connect_and_check::<C>
    - insert
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_check_and_add(&self, addr: &NodeAddress) -> RedisResult<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: slot_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1012,1
    - Dst: Option::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1014,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1014,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1017,1
    - Dst: '{

        AsyncConnectionConfig,Cmd,ConnectionInfo,ErrorKind,IntoConnectionInfo,PushInfo,

        RedisError,RedisFuture,RedisResult,ToRedisArgs,Value,

        aio::

        topology::parse_slots'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1018,1
    - Dst: ConnectionAddr::host
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1018,1
    - Dst: build_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1019,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 3
    argNames:
    - conn
    - addr
    - slots
    argTypes:
    - '&mut C'
    - '&NodeAddress'
    - '&mut SlotMap'
    constantsTouched: []
    func_position:
      end: 1020
      start: 1011
    functionDepth: 45
    functionLinenumber: 1011
    functionLinenumberEnd: 1020
    functionName: Core::query_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - slot_cmd
    - Option::req_packed_command
    - and_then
    - '{

      AsyncConnectionConfig,Cmd,ConnectionInfo,ErrorKind,IntoConnectionInfo,PushInfo,

      RedisError,RedisFuture,RedisResult,ToRedisArgs,Value,

      aio::

      topology::parse_slots'
    - build_slot_map
    - ConnectionAddr::host
    - impl combine::Parser::extract_error
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn query_slots(conn: &mut C, addr: &NodeAddress, slots: &mut
      SlotMap) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1024,1
    - Dst: Self::query_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1035,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1040,1
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1049,1
    - Dst: Self::into_conn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1049,1
    - Dst: get_or_create_conn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1050,1
    - Dst: Self::query_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1053,1
    - Dst: ConnState::Connected
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1054,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1060,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1063,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1069,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1069,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1070,1
    - Dst: Self::on_topology_changed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1075,1
    - Dst: RedisResult::topology
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1075,1
    - Dst: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1078,1
    - Dst: Self::flatten
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1078,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1078,1
    - Dst: values().flatten().cloned().collect::<HashSet<_>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1078,1
    - Dst: retain
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1080,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1080,1
    - Dst: Core::refresh_connections_locked
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1082,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1084,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1023
    functionDepth: 40
    functionLinenumber: 1023
    functionLinenumberEnd: 1085
    functionName: Core::refresh_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::flatten
    - Core::refresh_connections_locked
    - Err
    - RedisResult::values
    - Ok
    - ConnState::Connected
    - Some
    - None::unwrap_or_else
    - write
    - get_or_create_conn
    - Self::on_topology_changed
    - RedisResult::topology
    - Self::into_conn
    - std::mem::replace
    - Self::query_slots
    - cloned
    - into
    - values().flatten().cloned().collect::<HashSet<_>>
    - retain
    - contains
    linkageType: ''
    returnType: RedisResult
    signature: async fn refresh_slots(self) -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1092,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1093,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1093,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1096,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1096,1
    - Dst: get_or_create_conn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1098,1
    - Dst: "into_iter()\n            .map(|addr| {\n                let connection\
        \ = connections.remove(&addr).and_then(ConnState::into_conn);\n          \
        \      async move {\n                    let res = get_or_create_conn(\n \
        \                       &addr,\n                        connection,\n    \
        \                    &self.cluster_params,\n                        &self.push_sender,\n\
        \                    )\n                    .await;\n                    (addr,\
        \ res)\n                }\n            })\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1093,1
    - Dst: stream::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1110,1
    - Dst: buffer_unordered
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1110,1
    - Dst: max
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1111,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1110,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1114,1
    - Dst: ConnState::Connected
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 2
    argNames:
    - connections
    - nodes
    argTypes:
    - '&mut ConnectionMap<C>'
    - HashSet<NodeAddress>
    constantsTouched: []
    func_position:
      end: 1119
      start: 1087
    functionDepth: 41
    functionLinenumber: 1087
    functionLinenumberEnd: 1119
    functionName: Core::refresh_connections_locked
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - len
    - remove
    - and_then
    - "into_iter()\n            .map(|addr| {\n                let connection = connections.remove(&addr).and_then(ConnState::into_conn);\n\
      \                async move {\n                    let res = get_or_create_conn(\n\
      \                        &addr,\n                        connection,\n     \
      \                   &self.cluster_params,\n                        &self.push_sender,\n\
      \                    )\n                    .await;\n                    (addr,\
      \ res)\n                }\n            })\n            .collect::<Vec<_>>"
    - buffer_unordered
    - get_or_create_conn
    - max
    - fold
    - std::iter::Chain::map
    - into_iter
    - stream::iter
    - ConnState::Connected
    - insert
    linkageType: ''
    returnType: void
    signature: 'async fn refresh_connections_locked(&self,connections: &mut ConnectionMap<C>,nodes:
      HashSet<NodeAddress>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1122,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1126,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1126,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1126,1
    - Dst: into_cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1132,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1132,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1133,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1133,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1134,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1133,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1140,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1147,1
    - Dst: inspect_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1121
    functionDepth: 41
    functionLinenumber: 1121
    functionLinenumberEnd: 1152
    functionName: Core::resubscribe_all
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::unwrap
    - RoutingInfo::for_routable
    - inspect_err
    - send
    - into_cmd_iter
    - map
    - into
    - get_subscription_pipeline
    - Arc::new
    - RoutingInfo::SingleNode
    - lock
    - as_ref
    - Option::unwrap_or
    linkageType: ''
    returnType: void
    signature: fn resubscribe_all(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1155,1
    - Dst: try_read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1160,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1160,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1162,1
    - Dst: any
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1162,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1169,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1169,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1169,1
    - Dst: into_cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1174,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1174,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1175,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1175,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1176,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1182,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1182,1
    - Dst: slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1183,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1183,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1185,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1197,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1201,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1202,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1208,1
    - Dst: inspect_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 73
    argCount: 1
    argNames:
    - reconnected_addr
    argTypes:
    - '&NodeAddress'
    constantsTouched: []
    func_position:
      end: 1213
      start: 1154
    functionDepth: 40
    functionLinenumber: 1154
    functionLinenumberEnd: 1213
    functionName: Core::resubscribe_node
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - get_subscription_pipeline
    - RoutingInfo::SingleNode
    - Some
    - Self::unwrap
    - try_read
    - as_deref
    - lock
    - iter
    - ok
    - as_ref
    - Option::unwrap_or
    - send
    - and_then
    - Arc::new
    - any
    - RoutingInfo::for_routable
    - inspect_err
    - into_cmd_iter
    - into
    - filter_map
    - slot_addr_for_route
    linkageType: ''
    returnType: void
    signature: 'fn resubscribe_node(&self, reconnected_addr: &NodeAddress)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1237,1
    - Dst: mark_reconnecting
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1245,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1245,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1248,1
    - Dst: is_some_and
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1252,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1255,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1257,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1257,1
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1261,1
    - Dst: addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1262,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1262,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1263,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1267,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1268,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1271,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1271,1
    - Dst: get_or_create_conn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1278,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1281,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1286,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1286,1
    - Dst: ConnState::Connected
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1286,1
    - Dst: Self::resubscribe_node
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1296,1
    - Dst: boxed_sleep
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1305,1
    - Dst: min
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1306,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1306,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 118
    argCount: 2
    argNames:
    - core
    - addr
    argTypes:
    - Core<C>
    - NodeAddress
    constantsTouched: []
    func_position:
      end: 1309
      start: 1232
    functionDepth: 40
    functionLinenumber: 1232
    functionLinenumberEnd: 1309
    functionName: reconnect_loop
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - read
    - Self::resubscribe_node
    - ConnectionAddr::clone
    - ConnState::Connected
    - is_some_and
    - write
    - get_or_create_conn
    - Duration::from_secs
    - boxed_sleep
    - drop
    - mark_reconnecting
    - get
    - remove
    - and_then
    - min
    - insert
    - Duration::from_millis
    - contains
    - addresses_for_all_nodes
    linkageType: ''
    returnType: NodeAddress
    signature: 'async fn reconnect_loop<C>(core: Core<C>, addr: NodeAddress) -> NodeAddresswhereC:
      ConnectionLike + Connect + Clone + Send + Sync + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1312,1
    - Dst: Runtime::locate_and_sleep
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 1313
      start: 1311
    functionDepth: 43
    functionLinenumber: 1311
    functionLinenumberEnd: 1313
    functionName: boxed_sleep
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Box::pin
    - Runtime::locate_and_sleep
    linkageType: ''
    returnType: BoxFuture
    signature: 'fn boxed_sleep(duration: Duration) -> BoxFuture<''static, ()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - address
    argTypes:
    - NodeAddress
    constantsTouched: []
    func_position:
      end: 1332
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1332
    functionName: OperationTarget::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'fn from(address: NodeAddress) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 1360
      start: 1351
    functionDepth: 0
    functionLinenumber: 1351
    functionLinenumberEnd: 1360
    functionName: ConnectionState::fmt
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SlotMap::clear
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1364,1
    - Dst: SlotMap::fill_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1365,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - slot_map
    - slots_data
    argTypes:
    - '&mut SlotMap'
    - Vec<SlotRange>
    constantsTouched: []
    func_position:
      end: 1368
      start: 1363
    functionDepth: 41
    functionLinenumber: 1363
    functionLinenumberEnd: 1368
    functionName: build_slot_map
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    - SlotMap::clear
    - SlotMap::fill_slots
    linkageType: ''
    returnType: RedisResult
    signature: 'fn build_slot_map(slot_map: &mut SlotMap, slots_data: Vec<SlotRange>)
      -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1381,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1381,1
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1381,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1383,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1383,1
    - Dst: create_strategy
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1386,1
    - Dst: mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1388,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1389,1
    - Dst: RwLock::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1390,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1390,1
    - Dst: SlotMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1390,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1393,1
    - Dst: Core
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1398,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1401,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1402,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1407,1
    - Dst: RecoverFuture::ReconnectInitial
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1407,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1407,1
    - Dst: RedisResult::reconnect_to_initial_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 4
    argNames:
    - initial_nodes
    - cluster_params
    - push_sender
    - has_push_sender
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    - UnboundedSender<(NodeAddress, PushInfo)>
    - bool
    constantsTouched: []
    func_position:
      end: 1411
      start: 1374
    functionDepth: 39
    functionLinenumber: 1374
    functionLinenumberEnd: 1411
    functionName: ClusterConnInner::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - map
    - mpsc::unbounded_channel
    - SubscriptionTracker::default
    - Default::default
    - to_vec
    - bool::then
    - Arc::new
    - RecoverFuture::ReconnectInitial
    - RedisResult::reconnect_to_initial_nodes
    - create_strategy
    - Core
    - RwLock::new
    - Mutex::new
    - as_ref
    - ConnectionState::Recover
    - Box::pin
    - SlotMap::new
    linkageType: ''
    returnType: Self
    signature: 'fn new(initial_nodes: &[ConnectionInfo],cluster_params: ClusterParams,push_sender:
      UnboundedSender<(NodeAddress, PushInfo)>,has_push_sender: bool,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1418,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1418,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1418,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1418,1
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1420,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1421,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1423,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1426,1
    - Dst: buffer_unordered
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1418,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1430,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1418,1
    - Dst: ConnectionMap::<C>::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1432,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1432,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1436,1
    - Dst: ConnState::Connected
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1436,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1441,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1448,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1450,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1450,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1453,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1456,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1456,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1462,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 62
    argCount: 3
    argNames:
    - initial_nodes
    - params
    - push_sender
    argTypes:
    - '&[ConnectionInfo]'
    - '&ClusterParams'
    - '&UnboundedSender<(NodeAddress, PushInfo)>'
    constantsTouched: []
    func_position:
      end: 1463
      start: 1413
    functionDepth: 40
    functionLinenumber: 1413
    functionLinenumberEnd: 1463
    functionName: ClusterConnInner::create_initial_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - to_string
    - NodeAddress::try_from
    - len
    - cloned
    - map
    - Err
    - buffer_unordered
    - RedisError::from
    - fold
    - ConnectionMap::<C>::with_capacity
    - Ok
    - iter
    - stream::iter
    - ConnState::Connected
    - Some
    - connect_and_check
    - is_empty
    - insert
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn create_initial_connections(initial_nodes: &[ConnectionInfo],params:
      &ClusterParams,push_sender: &UnboundedSender<(NodeAddress, PushInfo)>,) -> RedisResult<ConnectionMap<C>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1467,1
    - Dst: Self::create_initial_connections
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1469,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1475,1
    - Dst: SlotMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1475,1
    - Dst: RedisResult::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1476,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1465
    functionDepth: 39
    functionLinenumber: 1465
    functionLinenumberEnd: 1479
    functionName: ClusterConnInner::reconnect_to_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::create_initial_connections
    - RedisResult::refresh_slots
    - clone
    - write
    - Ok
    - SlotMap::new
    linkageType: ''
    returnType: impl Future
    signature: fn reconnect_to_initial_nodes(&mut self) -> impl Future<Output = RedisResult<()>>
      + use<C>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1487,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1487,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1497,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1498,1
    - Dst: reconnect_loop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1498,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1498,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - addrs
    argTypes:
    - HashSet<NodeAddress>
    constantsTouched: []
    func_position:
      end: 1500
      start: 1483
    functionDepth: 44
    functionLinenumber: 1483
    functionLinenumberEnd: 1500
    functionName: ClusterConnInner::register_reconnect_futures
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - clone
    - push
    - try_read
    - ok
    - Box::pin
    - reconnect_loop
    linkageType: ''
    returnType: void
    signature: 'fn register_reconnect_futures(&mut self, addrs: HashSet<NodeAddress>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1503,1
    - Dst: Self::poll_next
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1503,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1504
      start: 1502
    functionDepth: 39
    functionLinenumber: 1502
    functionLinenumberEnd: 1504
    functionName: ClusterConnInner::poll_reconnects
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - Self::poll_next
    linkageType: ''
    returnType: void
    signature: 'fn poll_reconnects(&mut self, cx: &mut task::Context<''_>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1508,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1516,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1506
    functionDepth: 0
    functionLinenumber: 1506
    functionLinenumberEnd: 1517
    functionName: ClusterConnInner::wait_for_initial_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - std::mem::replace
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: async fn wait_for_initial_connection(&mut self) -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1521,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1521,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1529,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1533,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1533,1
    - Dst: refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1533,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1534,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1549,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1552,1
    - Dst: resubscribe_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1553,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1555,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1556
      start: 1519
    functionDepth: 42
    functionLinenumber: 1519
    functionLinenumberEnd: 1556
    functionName: ClusterConnInner::poll_recover
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Poll::Ready
    - is_ok
    - Err
    - clone
    - resubscribe_all
    - Ok
    - refresh_slots
    - Box::pin
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_recover(&mut self, cx: &mut task::Context<''_>) -> Poll<Result<(),
      RedisError>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1561,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1564,1
    - Dst: try_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1564,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1564,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1565,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1565,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1566,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1567,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1569,1
    - Dst: boxed_sleep
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1578,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1580,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1580,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1581,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1582,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - request_handling
    argTypes:
    - Option<Retry<C>>
    constantsTouched: []
    func_position:
      end: 1588
      start: 1558
    functionDepth: 43
    functionLinenumber: 1558
    functionLinenumberEnd: 1588
    functionName: ClusterConnInner::handle_retries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - boxed_sleep
    - send
    - clone
    - push
    - try_request
    - Some
    - Box::pin
    linkageType: ''
    returnType: void
    signature: 'fn handle_retries(&mut self, request_handling: Option<Retry<C>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: try_recv
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1592,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1601,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1605,1
    - Dst: try_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1605,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1605,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1605,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1606,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1606,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1607,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1608,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1590
    functionDepth: 43
    functionLinenumber: 1590
    functionLinenumberEnd: 1612
    functionName: ClusterConnInner::dispatch_pending
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - boxed
    - clone
    - push
    - try_request
    - try_recv
    - Some
    - Box::pin
    - is_closed
    linkageType: ''
    returnType: void
    signature: fn dispatch_pending(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1619,1
    - Dst: Self::poll_next
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1619,1
    - Dst: ClusterConnInner::handle_retries
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1624,1
    - Dst: change_state
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1625,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1628,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1630,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1634
      start: 1614
    functionDepth: 39
    functionLinenumber: 1614
    functionLinenumberEnd: 1634
    functionName: ClusterConnInner::poll_in_flight
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - change_state
    - Poll::Ready
    - Self::poll_next
    - ClusterConnInner::handle_retries
    - is_empty
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_in_flight(&mut self, cx: &mut task::Context<''_>) -> Poll<PollFlushAction>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnInner::dispatch_pending
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1637,1
    - Dst: ClusterConnInner::poll_in_flight
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1639
      start: 1636
    functionDepth: 44
    functionLinenumber: 1636
    functionLinenumberEnd: 1639
    functionName: ClusterConnInner::poll_complete
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ClusterConnInner::dispatch_pending
    - ClusterConnInner::poll_in_flight
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_complete(&mut self, cx: &mut task::Context<''_>) -> Poll<PollFlushAction>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1642,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1646,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1647,1
    - Dst: Self::iter_pin_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1647,1
    - Dst: Option::as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1648,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1649,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1653,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1653,1
    - Dst: Self::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1655,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1657,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1657,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1659,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1659,1
    - Dst: ClusterConnInner::handle_retries
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1663,1
    - Dst: request::choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1664,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1665,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1641
    functionDepth: 39
    functionLinenumber: 1641
    functionLinenumberEnd: 1672
    functionName: ClusterConnInner::send_refresh_error
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - take
    - Pin::new
    - request::choose_response
    - std::mem::take
    - Err
    - Self::push
    - clone
    - Option::as_mut
    - ClusterConnInner::handle_retries
    - ok
    - Self::is_empty
    - try_recv
    - Self::iter_pin_mut
    - Vec::new
    linkageType: ''
    returnType: void
    signature: fn send_refresh_error(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1685,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1685,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1687,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1689,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - addr
    - conn_option
    - params
    - push_sender
    argTypes:
    - '&NodeAddress'
    - Option<C>
    - '&ClusterParams'
    - '&UnboundedSender<(NodeAddress, PushInfo)>'
    constantsTouched: []
    func_position:
      end: 1691
      start: 1675
    functionDepth: 1
    functionLinenumber: 1675
    functionLinenumberEnd: 1691
    functionName: get_or_create_conn
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 3
    functionsReached:
    - connect_and_check
    - check_connection
    - Ok
    - is_ok
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_or_create_conn<C>(addr: &NodeAddress,conn_option: Option<C>,params:
      &ClusterParams,push_sender: &UnboundedSender<(NodeAddress, PushInfo)>,) -> RedisResult<C>whereC:
      Connect + ConnectionLike + Clone + Send + Sync + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl Iterator::extend
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1711,1
    - Dst: Self::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - next_state
    argTypes:
    - Self
    constantsTouched: []
    func_position:
      end: 1715
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1715
    functionName: PollFlushAction::change_state
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::extend
    - Self::Reconnect
    linkageType: ''
    returnType: Self
    signature: 'fn change_state(self, next_state: Self) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1725,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1726
      start: 1724
    functionDepth: 0
    functionLinenumber: 1724
    functionLinenumberEnd: 1726
    functionName: ClusterConnInner::poll_ready
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Poll::Ready
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_ready(self: Pin<&mut Self>, _cx: &mut task::Context) -> Poll<Result<(),
      Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1732,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - item
    argTypes:
    - Pin<&mut Self>
    - Message<C>
    constantsTouched: []
    func_position:
      end: 1738
      start: 1728
    functionDepth: 1
    functionLinenumber: 1728
    functionLinenumberEnd: 1738
    functionName: ClusterConnInner::start_send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - send
    linkageType: ''
    returnType: Result
    signature: 'fn start_send(self: Pin<&mut Self>, item: Message<C>) -> Result<(),
      Self::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnInner::send_refresh_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1746,1
    - Dst: ClusterConnInner::poll_reconnects
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1747,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1750,1
    - Dst: Pin<&mut Self>::waker
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1755,1
    - Dst: wake_by_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1755,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1760,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1760,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1763,1
    - Dst: RecoverFuture::RecoverSlots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1763,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1763,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1764,1
    - Dst: refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1764,1
    - Dst: ClusterConnInner::register_reconnect_futures
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1768,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1772,1
    - Dst: RecoverFuture::ReconnectInitial
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1772,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1773,1
    - Dst: ClusterConnInner::reconnect_to_initial_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1773,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 52
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1778
      start: 1740
    functionDepth: 40
    functionLinenumber: 1740
    functionLinenumberEnd: 1778
    functionName: ClusterConnInner::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - wake_by_ref
    - Poll::Ready
    - ClusterConnInner::register_reconnect_futures
    - ClusterConnInner::send_refresh_error
    - clone
    - Pin<&mut Self>::waker
    - RecoverFuture::RecoverSlots
    - RecoverFuture::ReconnectInitial
    - refresh_slots
    - Ok
    - ClusterConnInner::poll_reconnects
    - ClusterConnInner::reconnect_to_initial_nodes
    - Some
    - ConnectionState::Recover
    - Box::pin
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_flush(mut self: Pin<&mut Self>,cx: &mut task::Context,) ->
      Poll<Result<(), Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterConnInner::poll_complete
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1785,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1787,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1791,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1792,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1792,1
    - Dst: ClusterConnInner::poll_flush
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1796
      start: 1780
    functionDepth: 45
    functionLinenumber: 1780
    functionLinenumberEnd: 1796
    functionName: ClusterConnInner::poll_close
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Poll::Ready
    - Err
    - ClusterConnInner::poll_flush
    - Ok
    - ClusterConnInner::poll_complete
    - is_empty
    linkageType: ''
    returnType: Poll
    signature: 'fn poll_close(mut self: Pin<&mut Self>,cx: &mut task::Context,) ->
      Poll<Result<(), Self::Error>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::ConnectionInfo::into_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1842,1
    - Dst: crate::Client::open
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1843,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1844,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1841,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - info
    - config
    argTypes:
    - T
    - AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 1849
      start: 1837
    functionDepth: 43
    functionLinenumber: 1837
    functionLinenumberEnd: 1849
    functionName: MultiplexedConnection::connect_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - redis::ConnectionInfo::into_connection_info
    - crate::Client::open
    - boxed
    - get_multiplexed_async_connection_with_config
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn connect_with_config<''a, T>(info: T, config: AsyncConnectionConfig)
      -> RedisFuture<''a, Self>whereT: IntoConnectionInfo + Send + ''a,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1860,1
    - Dst: AsyncConnectionConfig::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1862,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1862,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1862,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1863,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1865,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1867,1
    - Dst: AddressedPushSender::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1867,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1867,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1867,1
    - Dst: Self::set_dns_resolver_internal
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1870,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1870,1
    - Dst: Self::set_cache_manager
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1874,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1874,1
    - Dst: Self::set_credentials_provider_internal
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1878,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1878,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1881,1
    - Dst: Self::set_write_backpressure_boundary
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1884,1
    - Dst: C::connect_with_config
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1886,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1890,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1896,1
    - Dst: Option::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1898,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1899,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 88
    argCount: 3
    argNames:
    - node
    - params
    - push_sender
    argTypes:
    - '&NodeAddress'
    - '&ClusterParams'
    - '&UnboundedSender<(NodeAddress, PushInfo)>'
    constantsTouched: []
    func_position:
      end: 1900
      start: 1852
    functionDepth: 42
    functionLinenumber: 1852
    functionLinenumberEnd: 1900
    functionName: connect_and_check
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 2
    functionsReached:
    - AddressedPushSender::new
    - Err
    - Ok
    - Self::set_push_sender
    - Some
    - Self::set_concurrency_limit
    - Self::set_connection_timeout
    - get_connection_info
    - C::connect_with_config
    - Self::set_write_backpressure_boundary
    - Self::set_cache_manager
    - clone
    - cmd
    - Self::set_dns_resolver_internal
    - Self::clone_and_increase_epoch
    - Self::set_credentials_provider_internal
    - AsyncConnectionConfig::default
    - Self::set_response_timeout
    - Option::req_packed_command
    - supports_resp3
    - Self::clone
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_and_check<C>(node: &NodeAddress,params: &ClusterParams,push_sender:
      &UnboundedSender<(NodeAddress, PushInfo)>,) -> RedisResult<C>whereC: ConnectionLike
      + Connect + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1906,1
    - Dst: Option::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1908,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1908,1
    - Dst: Option::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1910,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1911,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 1912
      start: 1902
    functionDepth: 41
    functionLinenumber: 1902
    functionLinenumberEnd: 1912
    functionName: check_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 8
    functionsReached:
    - and_then
    - Option::req_packed_command
    - Option::extract_error
    - Ok
    - cmd
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn check_connection<C>(conn: &mut C) -> RedisResult<()>whereC:
      ConnectionLike + Send + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:63,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:63,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:61,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:76,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - redirect
    argTypes:
    - Option<Redirect>
    constantsTouched: []
    func_position:
      end: 82
      start: 55
    functionDepth: 39
    functionLinenumber: 55
    functionLinenumberEnd: 82
    functionName: CmdArg::set_redirect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - std::mem::take
    - into
    - Box::new
    linkageType: ''
    returnType: void
    signature: 'fn set_redirect(&mut self, redirect: Option<Redirect>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:90,1
    - Dst: Self::as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:90,1
    - Dst: InternalSingleNodeRouting::ByAddress
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:96,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:96,1
    - Dst: fix_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:105,1
    - Dst: fix_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 112
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 112
    functionName: CmdArg::reset_routing
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - std::mem::take
    - fix_route
    - InternalSingleNodeRouting::ByAddress
    - Self::as_mut
    linkageType: ''
    returnType: void
    signature: fn reset_routing(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:140,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - result
    argTypes:
    - RedisResult<Response>
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 143
    functionName: ResultExpectation::send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - Self::send
    - Ok
    linkageType: ''
    returnType: void
    signature: 'pub(super) fn send(self, result: RedisResult<Response>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::is_closed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: ResultExpectation::is_closed
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - Self::is_closed
    linkageType: ''
    returnType: bool
    signature: pub(super) fn is_closed(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:175,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:176,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:176,1
    - Dst: Response::Single
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:176,1
    - Dst: PollFlushAction::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:179,1
    - Dst: std::collections::HashSet::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:179,1
    - Dst: impl combine::Parser::is_error_that_requires_action
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:187,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:188,1
    - Dst: impl combine::Parser::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:188,1
    - Dst: Self::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:188,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:188,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:190,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:190,1
    - Dst: impl combine::Parser::is_error_that_requires_action
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:192,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:190,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:193,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:193,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:193,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:199,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:199,1
    - Dst: saturating_add
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:219,1
    - Dst: '&RetryParams::wait_time_for_retry'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:221,1
    - Dst: retry_method
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:223,1
    - Dst: PollFlushAction::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:237,1
    - Dst: HashSet::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:237,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:242,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:242,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:301,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:301,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 98
    argCount: 3
    argNames:
    - result
    - request
    - retry_params
    argTypes:
    - OperationResult
    - PendingRequest<C>
    - '&RetryParams'
    constantsTouched: []
    func_position:
      end: 310
      start: 168
    functionDepth: 42
    functionLinenumber: 168
    functionLinenumberEnd: 310
    functionName: choose_response
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 1
    functionsReached:
    - position
    - Err
    - retry_method
    - extract_error
    - ConnectionAddr::clone
    - impl combine::Parser::clone
    - std::collections::HashSet::from
    - Ok
    - RedisResult::unwrap_err
    - Some
    - Option::map
    - Response::Single
    - clone
    - HashSet::from
    - saturating_add
    - PollFlushAction::Reconnect
    - send
    - '&RetryParams::wait_time_for_retry'
    - Self::iter
    - impl combine::Parser::is_error_that_requires_action
    - Self::extract_error
    - unwrap_err
    linkageType: ''
    returnType: (Option
    signature: 'pub(crate) fn choose_response<C>(result: OperationResult,mut request:
      PendingRequest<C>,retry_params: &RetryParams,) -> (Option<Retry<C>>, PollFlushAction)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Request::as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:316,1
    - Dst: project
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:316,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:317,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:317,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:317,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:317,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:318,1
    - Dst: as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:321,1
    - Dst: project
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:321,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:326,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:328,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:328,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:325,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:338,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:338,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:339,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 340
      start: 315
    functionDepth: 43
    functionLinenumber: 315
    functionLinenumberEnd: 340
    functionName: Request::poll
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - take
    - project
    - Poll::Ready
    - choose_response
    - as_mut
    - into
    - unwrap
    - is_none
    - is_closed
    - as_ref
    - Request::as_mut
    - Some
    linkageType: ''
    returnType: Poll
    signature: 'fn poll(mut self: Pin<&mut Self>, cx: &mut task::Context) -> Poll<Self::Output>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:366,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:366,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:370,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - request
    argTypes:
    - '&PendingRequest<C>'
    constantsTouched: []
    func_position:
      end: 375
      start: 360
    functionDepth: 6
    functionLinenumber: 360
    functionLinenumberEnd: 375
    functionName: tests::get_redirect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - Some
    - clone
    linkageType: ''
    returnType: Option
    signature: 'fn get_redirect<C>(request: &PendingRequest<C>) -> Option<Redirect>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:383,1
    - Dst: ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:387,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:389,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:389,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - retry
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 395
      start: 377
    functionDepth: 47
    functionLinenumber: 377
    functionLinenumberEnd: 395
    functionName: tests::request_and_receiver
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - ResultExpectation::External
    - into
    - oneshot::channel
    - Arc::new
    - crate::cmd
    linkageType: ''
    returnType: "(\n        PendingRequest"
    signature: 'fn request_and_receiver(retry: u32,) -> (PendingRequest<usize>,oneshot::Receiver<RedisResult<Response>>,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:400,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:400,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 41
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: tests::single_result
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - RedisResult::map
    - parse_redis_value
    - as_bytes
    linkageType: ''
    returnType: RedisResult
    signature: 'fn single_result(val: &str) -> RedisResult<Response>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crate::parse_redis_value
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:404,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:404,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:404,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:404,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - error
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 408
      start: 403
    functionDepth: 41
    functionLinenumber: 403
    functionLinenumberEnd: 408
    functionName: tests::to_err
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - crate::parse_redis_value
    - extract_error
    - unwrap_err
    - as_bytes
    - RedisResult::unwrap
    linkageType: ''
    returnType: RedisError
    signature: 'fn to_err(error: &str) -> RedisError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:412,1
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:414,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:415,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:416,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:417,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:428,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:429,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 411
    functionDepth: 48
    functionLinenumber: 411
    functionLinenumberEnd: 435
    functionName: tests::should_redirect_and_retry_on_ask_error_if_retries_remain
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - request_and_receiver
    - choose_response
    - RetryParams::default
    - single_result
    - err
    linkageType: ''
    returnType: void
    signature: fn should_redirect_and_retry_on_ask_error_if_retries_remain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:440,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:441,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:442,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:443,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:444,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:455,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:456,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 438
    functionDepth: 42
    functionLinenumber: 438
    functionLinenumberEnd: 462
    functionName: tests::should_retry_and_refresh_slots_on_move_error_if_retries_remain
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - request_and_receiver
    - choose_response
    - RetryParams::default
    - single_result
    - err
    linkageType: ''
    returnType: void
    signature: fn should_retry_and_refresh_slots_on_move_error_if_retries_remain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:467,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:468,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:469,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:470,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:471,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:484,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:485,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 465
    functionDepth: 42
    functionLinenumber: 465
    functionLinenumberEnd: 491
    functionName: tests::should_refresh_slots_and_retry_on_readonly_error_if_retries_remain
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - request_and_receiver
    - choose_response
    - RetryParams::default
    - single_result
    - err
    linkageType: ''
    returnType: void
    signature: fn should_refresh_slots_and_retry_on_readonly_error_if_retries_remain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:495,1
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:497,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:498,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 504
      start: 494
    functionDepth: 48
    functionLinenumber: 494
    functionLinenumberEnd: 504
    functionName: tests::never_retry_on_fanout_operation_target
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - RetryParams::default
    - request_and_receiver
    - choose_response
    - single_result
    linkageType: ''
    returnType: void
    signature: fn never_retry_on_fanout_operation_target()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:509,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:511,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:512,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:513,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:514,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:525,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:526,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:527,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 532
      start: 507
    functionDepth: 42
    functionLinenumber: 507
    functionLinenumberEnd: 532
    functionName: tests::should_sleep_and_retry_on_not_found_operation_target
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - request_and_receiver
    - choose_response
    - RetryParams::default
    - single_result
    - err
    linkageType: ''
    returnType: void
    signature: fn should_sleep_and_retry_on_not_found_operation_target()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:536,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:538,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:539,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:539,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:540,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:541,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:552,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:553,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:553,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:554,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:565,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:566,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:566,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:567,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 576
      start: 535
    functionDepth: 48
    functionLinenumber: 535
    functionLinenumberEnd: 576
    functionName: tests::complete_disconnect_should_reconnect_from_initial_nodes_regardless_of_target
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - request_and_receiver
    - Err
    - choose_response
    - RedisError::from
    - RetryParams::default
    - err
    linkageType: ''
    returnType: void
    signature: fn complete_disconnect_should_reconnect_from_initial_nodes_regardless_of_target()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - address
    - sender
    argTypes:
    - NodeAddress
    - UnboundedSender<(NodeAddress, PushInfo)>
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: AddressedPushSender::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/addressed_push_sender.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub(super) fn new(address: NodeAddress,sender: UnboundedSender<(NodeAddress,
      PushInfo)>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unbounded_send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/addressed_push_sender.rs:25,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/addressed_push_sender.rs:26,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/addressed_push_sender.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 6
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: AddressedPushSender::send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/addressed_push_sender.rs
    functionUses: 0
    functionsReached:
    - map_err
    - clone
    - unbounded_send
    linkageType: ''
    returnType: Result
    signature: 'fn send(&self, info: PushInfo) -> Result<(), SendError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 203
    functionName: HotkeysOptions::new_with_cpu
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new_with_cpu() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 227
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 227
    functionName: HotkeysOptions::new_with_net
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn new_with_net() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    functionName: HotkeysOptions::and_cpu
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn and_cpu(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 243
    functionName: HotkeysOptions::and_net
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn and_net(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: HotkeysOptions::metrics_count
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: u64
    signature: fn metrics_count(&self) -> u64
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:258,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:259,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:263,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - k
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: HotkeysOptions::with_count
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Err
    - Some
    - contains
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn with_count(mut self, k: u64) -> Result<Self, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: HotkeysOptions::with_duration_secs
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_duration_secs(mut self, seconds: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ratio
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: HotkeysOptions::with_sample_ratio
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_sample_ratio(mut self, ratio: u64) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - slots
    argTypes:
    - Vec<u16>
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: HotkeysOptions::with_slots
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_slots(mut self, slots: Vec<u16>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:318,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:319,1
    - Dst: HotkeysOptions::metrics_count
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:319,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:322,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:326,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:331,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:332,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:337,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:338,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:343,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:344,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:349,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:350,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:350,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:352,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 63
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 355
      start: 313
    functionDepth: 45
    functionLinenumber: 313
    functionLinenumberEnd: 355
    functionName: HotkeysOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - HotkeysOptions::metrics_count
    - RedisResult::len
    - write_arg_fmt
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:362,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:365,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:368,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 357
    functionDepth: 3
    functionLinenumber: 357
    functionLinenumberEnd: 376
    functionName: HotkeysOptions::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - RedisResult::len
    - is_some
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:445,1
    - Dst: TlsFilePaths::starts_with
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:445,1
    - Dst: TlsFilePaths::ends_with
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:445,1
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:446,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:446,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - s
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 450
      start: 444
    functionDepth: 3
    functionLinenumber: 444
    functionLinenumberEnd: 450
    functionName: strip_quotes
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::len
    - to_string
    - TlsFilePaths::ends_with
    - TlsFilePaths::starts_with
    linkageType: ''
    returnType: String
    signature: 'fn strip_quotes(s: String) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:456,1
    - Dst: '&[Value]::len'
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:456,1
    - Dst: '&[Value]::iter'
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:458,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:459,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:460,1
    - Dst: strip_quotes
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:462,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:463,1
    - Dst: Option::ok_or_else
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:463,1
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:465,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:463,1
    - Dst: push
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:468,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:471,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - arr
    argTypes:
    - '&[Value]'
    constantsTouched: []
    func_position:
      end: 472
      start: 453
    functionDepth: 39
    functionLinenumber: 453
    functionLinenumberEnd: 472
    functionName: parse_hotkey_entries
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - '&[Value]::iter'
    - and_then
    - strip_quotes
    - '&[Value]::len'
    - push
    - next
    - from_redis_value_ref
    - Ok
    - ParsingError::from
    - Option::ok_or_else
    - Vec::with_capacity
    linkageType: ''
    returnType: Result
    signature: 'fn parse_hotkey_entries(arr: &[Value]) -> Result<Vec<HotKeyEntry>,
      ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:478,1
    - Dst: '&[Value]::len'
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:478,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:485,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:487,1
    - Dst: push
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:488,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:494,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:495,1
    - Dst: push
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:496,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - arr
    argTypes:
    - '&[Value]'
    constantsTouched: []
    func_position:
      end: 503
      start: 475
    functionDepth: 45
    functionLinenumber: 475
    functionLinenumberEnd: 503
    functionName: parse_slot_ranges
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - len
    - push
    - '&[Value]::len'
    - from_redis_value_ref
    - Ok
    - Vec::with_capacity
    linkageType: ''
    returnType: Result
    signature: 'fn parse_slot_ranges(arr: &[Value]) -> Result<Vec<SlotRange>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:516,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:516,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:525,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:526,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:527,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:528,1
    - Dst: strip_quotes
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:530,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:531,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:532,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:539,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:541,1
    - Dst: strip_quotes
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:542,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:543,1
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:555,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:558,1
    - Dst: from_redis_value::<i64>
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:559,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:562,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:563,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:566,1
    - Dst: parse_slot_ranges
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:567,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:570,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:571,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:574,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:575,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:578,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:579,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:582,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:583,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:587,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:588,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:588,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:591,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:592,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:592,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:595,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:596,1
    - Dst: parse_hotkey_entries
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:596,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:600,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:601,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:601,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:604,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:605,1
    - Dst: parse_hotkey_entries
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:605,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:609,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:610,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:610,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:613,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:614,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:614,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:617,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:618,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:618,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:621,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:622,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:622,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:625,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 193
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 626
      start: 506
    functionDepth: 39
    functionLinenumber: 506
    functionLinenumberEnd: 626
    functionName: HotkeysResponse::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - parse_slot_ranges
    - HashMap::new
    - len
    - Self::default
    - remove
    - strip_quotes
    - from_redis_value
    - into_iter
    - next
    - from_redis_value::<i64>
    - Ok
    - parse_hotkey_entries
    - Some
    - insert
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:635,1
    - Dst: Self::to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 642
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 642
    functionName: tests::test_hotkeys_options_cpu_constructor
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - HotkeysOptions::new_with_cpu
    - Self::to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_cpu_constructor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_net
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:646,1
    - Dst: Self::to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 653
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 653
    functionName: tests::test_hotkeys_options_net_constructor
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - HotkeysOptions::new_with_net
    - Self::to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_net_constructor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:657,1
    - Dst: Self::and_net
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:657,1
    - Dst: Self::to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 665
      start: 656
    functionDepth: 1
    functionLinenumber: 656
    functionLinenumberEnd: 665
    functionName: tests::test_hotkeys_options_cpu_and_net
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::and_net
    - HotkeysOptions::new_with_cpu
    - Self::to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_cpu_and_net()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_net
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:669,1
    - Dst: Self::and_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:669,1
    - Dst: Self::to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 678
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 678
    functionName: tests::test_hotkeys_options_net_and_cpu
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - HotkeysOptions::new_with_net
    - Self::to_redis_args
    - Self::and_cpu
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_net_and_cpu()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:682,1
    - Dst: Self::with_duration_secs
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:682,1
    - Dst: Self::to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 681
    functionDepth: 1
    functionLinenumber: 681
    functionLinenumberEnd: 691
    functionName: tests::test_hotkeys_options_with_duration
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::to_redis_args
    - HotkeysOptions::new_with_cpu
    - Self::with_duration_secs
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_with_duration()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:695,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:695,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:695,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 704
    functionName: tests::test_hotkeys_options_with_count
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_count
    - Result::unwrap
    - HotkeysOptions::new_with_cpu
    - to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_with_count()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:708,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:708,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:708,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 714
      start: 707
    functionDepth: 1
    functionLinenumber: 707
    functionLinenumberEnd: 714
    functionName: tests::test_hotkeys_options_with_count_min_valid
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_count
    - Result::unwrap
    - HotkeysOptions::new_with_cpu
    - to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_with_count_min_valid()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:718,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:718,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:718,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 724
      start: 717
    functionDepth: 1
    functionLinenumber: 717
    functionLinenumberEnd: 724
    functionName: tests::test_hotkeys_options_with_count_max_valid
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_count
    - Result::unwrap
    - HotkeysOptions::new_with_cpu
    - to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_with_count_max_valid()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:728,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 727
    functionDepth: 1
    functionLinenumber: 727
    functionLinenumberEnd: 733
    functionName: tests::test_hotkeys_options_with_count_too_low
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_count
    - HotkeysOptions::new_with_cpu
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_with_count_too_low()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:737,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: tests::test_hotkeys_options_with_count_too_high
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_count
    - HotkeysOptions::new_with_cpu
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_with_count_too_high()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:746,1
    - Dst: Self::with_sample_ratio
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:746,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 745
    functionDepth: 44
    functionLinenumber: 745
    functionLinenumberEnd: 755
    functionName: tests::test_hotkeys_options_with_sample
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_sample_ratio
    - HotkeysOptions::new_with_cpu
    - to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_with_sample()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:759,1
    - Dst: Self::with_slots
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:759,1
    - Dst: Self::to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 771
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 771
    functionName: tests::test_hotkeys_options_with_slots
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - Self::with_slots
    - HotkeysOptions::new_with_cpu
    - Self::to_redis_args
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_with_slots()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HotkeysOptions::new_with_cpu
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:775,1
    - Dst: Self::and_net
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:775,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:775,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:775,1
    - Dst: with_duration_secs
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:775,1
    - Dst: with_sample_ratio
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:775,1
    - Dst: to_redis_args
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 794
      start: 774
    functionDepth: 44
    functionLinenumber: 774
    functionLinenumberEnd: 794
    functionName: tests::test_hotkeys_options_full
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - with_duration_secs
    - with_sample_ratio
    - Result::unwrap
    - Self::with_count
    - Self::and_net
    - to_redis_args
    - HotkeysOptions::new_with_cpu
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_options_full()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:801,1
    - Dst: HotkeysResponse::from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:829,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:829,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 849
      start: 797
    functionDepth: 40
    functionLinenumber: 797
    functionLinenumberEnd: 849
    functionName: tests::test_hotkeys_response_parsing_resp2
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - HotkeysResponse::from_redis_value
    - Result::unwrap
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_response_parsing_resp2()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:856,1
    - Dst: HotkeysResponse::from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:909,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:909,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 931
      start: 852
    functionDepth: 40
    functionLinenumber: 852
    functionLinenumberEnd: 931
    functionName: tests::test_hotkeys_response_parsing_resp3
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - HotkeysResponse::from_redis_value
    - Result::unwrap
    - Value::Map
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_response_parsing_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:937,1
    - Dst: HotkeysResponse::from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:963,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:963,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:968,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 974
      start: 934
    functionDepth: 40
    functionLinenumber: 934
    functionLinenumberEnd: 974
    functionName: tests::test_hotkeys_response_parsing_with_net
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - HotkeysResponse::from_redis_value
    - Result::unwrap
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_response_parsing_with_net()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:986,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/hotkeys.rs:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 977
    functionDepth: 45
    functionLinenumber: 977
    functionLinenumberEnd: 988
    functionName: tests::test_hotkeys_response_nil
    functionSourceFile: /src/redis-rs/redis/src/commands/hotkeys.rs
    functionUses: 0
    functionsReached:
    - from_redis_value
    - Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_hotkeys_response_nil()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:33,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/geo.rs:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 45
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: Unit::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - longitude
    - latitude
    argTypes:
    - T
    - T
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: Coord::lon_lat
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn lon_lat(longitude: T, latitude: T) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/geo.rs:70,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/geo.rs:71,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/commands/geo.rs:72,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/commands/geo.rs:72,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/commands/geo.rs:72,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/commands/geo.rs:74,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/geo.rs:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 80
      start: 69
    functionDepth: 45
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: Coord::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value_ref
    - Self::next
    - Ok
    - Self::into_iter
    - errors::invalid_type_error
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/geo.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 47
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Coord::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Self::from_redis_value_ref
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ToRedisArgs::write_redis_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:92,1
    - Dst: ToRedisArgs::write_redis_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 46
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: Coord::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - ToRedisArgs::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: Coord::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/geo.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: RadiusOptions::limit
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn limit(mut self, n: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: RadiusOptions::with_dist
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn with_dist(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 172
    functionName: RadiusOptions::with_coord
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn with_coord(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - o
    argTypes:
    - RadiusOrder
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: RadiusOptions::order
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn order(mut self, o: RadiusOrder) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/geo.rs:184,1
    - Dst: ToRedisArgs::to_redis_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - K
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 40
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: RadiusOptions::store
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Some
    - ToRedisArgs::to_redis_args
    linkageType: ''
    returnType: Self
    signature: 'pub fn store<K: ToRedisArgs>(mut self, key: K) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/geo.rs:191,1
    - Dst: ToRedisArgs::to_redis_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - K
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 40
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: RadiusOptions::store_dist
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Some
    - ToRedisArgs::to_redis_args
    linkageType: ''
    returnType: Self
    signature: 'pub fn store_dist<K: ToRedisArgs>(mut self, key: K) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:202,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:206,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:210,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/geo.rs:211,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:215,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:216,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:221,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:223,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:228,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/geo.rs:230,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 233
      start: 197
    functionDepth: 45
    functionLinenumber: 197
    functionLinenumberEnd: 233
    functionName: RadiusOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - write_arg_fmt
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/geo.rs:243,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/geo.rs:250,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/geo.rs:250,1
    - Dst: Option::len
      Src: /src/redis-rs/redis/src/commands/geo.rs:250,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/commands/geo.rs:250,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/geo.rs:251,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/geo.rs:251,1
    - Dst: Option::len
      Src: /src/redis-rs/redis/src/commands/geo.rs:251,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/commands/geo.rs:251,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 235
    functionDepth: 43
    functionLinenumber: 235
    functionLinenumberEnd: 253
    functionName: RadiusOptions::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - map
    - unwrap_or
    - Option::len
    - as_ref
    - is_some
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/commands/geo.rs:273,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/geo.rs:274,1
    - Dst: Self::parse_multi_values
      Src: /src/redis-rs/redis/src/commands/geo.rs:280,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/commands/geo.rs:281,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 283
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 283
    functionName: RadiusSearchResult::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Self::parse_multi_values
    - Ok
    - String::from_utf8
    - errors::invalid_type_error
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<Value>::into_iter
      Src: /src/redis-rs/redis/src/commands/geo.rs:288,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/geo.rs:291,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/commands/geo.rs:291,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/geo.rs:293,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/geo.rs:293,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/geo.rs:296,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/geo.rs:296,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/geo.rs:299,1
    - Dst: Coord::from_redis_value
      Src: /src/redis-rs/redis/src/commands/geo.rs:299,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/geo.rs:299,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/geo.rs:302,1
    - Dst: Self::map
      Src: /src/redis-rs/redis/src/commands/geo.rs:304,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/geo.rs:305,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/commands/geo.rs:311,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/geo.rs:314,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - items
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 315
      start: 287
    functionDepth: 41
    functionLinenumber: 287
    functionLinenumberEnd: 315
    functionName: RadiusSearchResult::parse_multi_values
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Vec<Value>::into_iter
    - Option::map
    - Coord::from_redis_value
    - Err
    - into
    - errors::invalid_type_error
    - Self::map
    - next
    - Ok
    - Value::Array
    - Some
    - FromRedisValue::from_redis_value
    linkageType: ''
    returnType: Result
    signature: 'fn parse_multi_values(items: Vec<Value>) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Coord::lon_lat
      Src: /src/redis-rs/redis/src/commands/geo.rs:336,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 338
      start: 335
    functionDepth: 41
    functionLinenumber: 335
    functionLinenumberEnd: 338
    functionName: tests::test_coord_to_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - assert_args
    - Coord::lon_lat
    linkageType: ''
    returnType: void
    signature: fn test_coord_to_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RadiusOptions::default
      Src: /src/redis-rs/redis/src/commands/geo.rs:343,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:349,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:351,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:353,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:355,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 341
    functionDepth: 40
    functionLinenumber: 341
    functionLinenumberEnd: 370
    functionName: tests::test_radius_options
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - assert_args
    - RadiusOptions::default
    linkageType: ''
    returnType: void
    signature: fn test_radius_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/commands/macros.rs:11,1
    - Dst: query_async
      Src: /src/redis-rs/redis/src/commands/macros.rs:11,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 42
      start: 3
    functionDepth: 44
    functionLinenumber: 3
    functionLinenumberEnd: 42
    functionName: implement_command_async
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached:
    - query_async
    - Box::pin
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: query
      Src: /src/redis-rs/redis/src/commands/macros.rs:11,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 83
      start: 44
    functionDepth: 40
    functionLinenumber: 44
    functionLinenumberEnd: 83
    functionName: implement_command_sync
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached:
    - query
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/commands/macros.rs:5,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:6,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/commands/macros.rs:13,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:14,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/commands/macros.rs:14,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/commands/macros.rs:21,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:22,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/commands/macros.rs:22,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:22,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/commands/macros.rs:29,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:30,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:30,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/commands/macros.rs:42,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:43,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:43,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/commands/macros.rs:43,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:43,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/commands/macros.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:51,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:51,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/commands/macros.rs:62,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:63,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:63,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/commands/macros.rs:63,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:63,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/commands/macros.rs:70,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:71,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:71,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/commands/macros.rs:82,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:83,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:83,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/commands/macros.rs:83,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/macros.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 172
      start: 85
    functionDepth: 45
    functionLinenumber: 85
    functionLinenumberEnd: 172
    functionName: implement_iterators
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached:
    - cmd
    - arg
    - '&mut Self::arg'
    - cursor_arg
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 391
    functionName: implement_commands
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:34,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:35,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:35,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 37
      start: 26
    functionDepth: 45
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: StreamMaxlen::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - write_redis_args
    - as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:57,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 45
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: StreamTrimmingMode::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::MaxLen
      Src: /src/redis-rs/redis/src/commands/streams.rs:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - trim
    - max_entries
    argTypes:
    - StreamTrimmingMode
    - usize
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: StreamTrimStrategy::maxlen
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 5
    functionsReached:
    - Self::MaxLen
    linkageType: ''
    returnType: Self
    signature: 'pub fn maxlen(trim: StreamTrimmingMode, max_entries: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::MinId
      Src: /src/redis-rs/redis/src/commands/streams.rs:83,1
    - Dst: impl Into<String>::into
      Src: /src/redis-rs/redis/src/commands/streams.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - trim
    - stream_id
    argTypes:
    - StreamTrimmingMode
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: StreamTrimStrategy::minid
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 1
    functionsReached:
    - impl Into<String>::into
    - Self::MinId
    linkageType: ''
    returnType: Self
    signature: 'pub fn minid(trim: StreamTrimmingMode, stream_id: impl Into<String>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::MaxLen
      Src: /src/redis-rs/redis/src/commands/streams.rs:89,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:89,1
    - Dst: Self::MinId
      Src: /src/redis-rs/redis/src/commands/streams.rs:90,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: StreamTrimStrategy::limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    - Self::MaxLen
    - Self::MinId
    linkageType: ''
    returnType: Self
    signature: 'pub fn limit(self, limit: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:102,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:103,1
    - Dst: TlsFilePaths::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:104,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:108,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:109,1
    - Dst: TlsFilePaths::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:110,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:115,1
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:116,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 45
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: StreamTrimStrategy::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - write_redis_args
    - Self::write_redis_args
    - TlsFilePaths::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - max_entries
    argTypes:
    - StreamTrimmingMode
    - usize
    constantsTouched: []
    func_position:
      end: 138
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 138
    functionName: StreamTrimOptions::maxlen
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 1
    functionsReached:
    - StreamTrimStrategy::maxlen
    linkageType: ''
    returnType: Self
    signature: 'pub fn maxlen(mode: StreamTrimmingMode, max_entries: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimStrategy::minid
      Src: /src/redis-rs/redis/src/commands/streams.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - stream_id
    argTypes:
    - StreamTrimmingMode
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: StreamTrimOptions::minid
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 4
    functionsReached:
    - StreamTrimStrategy::minid
    linkageType: ''
    returnType: Self
    signature: 'pub fn minid(mode: StreamTrimmingMode, stream_id: impl Into<String>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: limit
      Src: /src/redis-rs/redis/src/commands/streams.rs:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: StreamTrimOptions::limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - limit
    linkageType: ''
    returnType: Self
    signature: 'pub fn limit(mut self, limit: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - deletion_policy
    argTypes:
    - StreamDeletionPolicy
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: StreamTrimOptions::set_deletion_policy
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_deletion_policy(mut self, deletion_policy: StreamDeletionPolicy)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:166,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/streams.rs:167,1
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 46
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: StreamTrimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - as_ref
    - write_redis_args
    - Self::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:207,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:208,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:208,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:209,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:209,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:212,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:213,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 216
      start: 198
    functionDepth: 45
    functionLinenumber: 198
    functionLinenumberEnd: 216
    functionName: StreamIdempotencyMode::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/redis-rs/redis/src/commands/streams.rs:278,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:279,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:283,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 287
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 287
    functionName: StreamConfigOptions::with_idempotency_seconds
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 1
    functionsReached:
    - Err
    - Some
    - contains
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn with_idempotency_seconds(seconds: u32) -> Result<Self, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/redis-rs/redis/src/commands/streams.rs:298,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:299,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:303,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - size
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 307
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 307
    functionName: StreamConfigOptions::with_idempotency_maxsize
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 1
    functionsReached:
    - Err
    - Some
    - contains
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn with_idempotency_maxsize(size: u16) -> Result<Self, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/redis-rs/redis/src/commands/streams.rs:315,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:316,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:320,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - seconds
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 322
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 322
    functionName: StreamConfigOptions::idempotency_seconds
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Err
    - Some
    - contains
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn idempotency_seconds(mut self, seconds: u32) -> Result<Self,
      String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/redis-rs/redis/src/commands/streams.rs:330,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:331,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:335,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - size
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 337
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 337
    functionName: StreamConfigOptions::idempotency_maxsize
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Err
    - Some
    - contains
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'pub fn idempotency_maxsize(mut self, size: u16) -> Result<Self, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:346,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:347,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/streams.rs:347,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:347,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:350,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:351,1
    - Dst: Result::to_string
      Src: /src/redis-rs/redis/src/commands/streams.rs:351,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 353
      start: 341
    functionDepth: 45
    functionLinenumber: 341
    functionLinenumberEnd: 353
    functionName: StreamConfigOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - to_string
    - Result::to_string
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 373
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 373
    functionName: StreamAddOptions::nomkstream
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn nomkstream(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - trim
    argTypes:
    - StreamTrimStrategy
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: StreamAddOptions::trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn trim(mut self, trim: StreamTrimStrategy) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - deletion_policy
    argTypes:
    - StreamDeletionPolicy
    constantsTouched: []
    func_position:
      end: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: StreamAddOptions::set_deletion_policy
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_deletion_policy(mut self, deletion_policy: StreamDeletionPolicy)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:413,1
    - Dst: impl Into<String>::into
      Src: /src/redis-rs/redis/src/commands/streams.rs:414,1
    - Dst: impl Into<String>::into
      Src: /src/redis-rs/redis/src/commands/streams.rs:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - producer_id
    - idempotent_id
    argTypes:
    - impl Into<String>
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 418
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 418
    functionName: StreamAddOptions::idmp
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - impl Into<String>::into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn idmp(mut self,producer_id: impl Into<String>,idempotent_id:
      impl Into<String>,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:441,1
    - Dst: impl Into<String>::into
      Src: /src/redis-rs/redis/src/commands/streams.rs:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - producer_id
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 445
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 445
    functionName: StreamAddOptions::idmpauto
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - impl Into<String>::into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn idmpauto(mut self, producer_id: impl Into<String>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:454,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/streams.rs:456,1
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:457,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/streams.rs:459,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:460,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/streams.rs:462,1
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:463,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 465
      start: 449
    functionDepth: 45
    functionLinenumber: 449
    functionLinenumberEnd: 465
    functionName: StreamAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - as_ref
    - write_redis_args
    - Self::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 483
      start: 480
    functionDepth: 0
    functionLinenumber: 480
    functionLinenumberEnd: 483
    functionName: StreamAutoClaimOptions::count
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn count(mut self, n: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: StreamAutoClaimOptions::with_justid
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn with_justid(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:499,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:500,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:500,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:503,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 505
      start: 494
    functionDepth: 45
    functionLinenumber: 494
    functionLinenumberEnd: 505
    functionName: StreamAutoClaimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ms
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: StreamClaimOptions::idle
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn idle(mut self, ms: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ms_time
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 540
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 540
    functionName: StreamClaimOptions::time
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn time(mut self, ms_time: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - count
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 546
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 546
    functionName: StreamClaimOptions::retry
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn retry(mut self, count: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: StreamClaimOptions::with_force
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn with_force(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 559
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 559
    functionName: StreamClaimOptions::with_justid
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn with_justid(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:563,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/commands/streams.rs:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - lastid
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 565
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 565
    functionName: StreamClaimOptions::with_lastid
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    - Self::into
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_lastid(mut self, lastid: impl Into<String>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:574,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:575,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:575,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:578,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:579,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:579,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:582,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:583,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:583,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:586,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:589,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:592,1
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:593,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 595
      start: 569
    functionDepth: 45
    functionLinenumber: 569
    functionLinenumberEnd: 595
    functionName: StreamClaimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - as_bytes
    - Self::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/redis-rs/redis/src/commands/streams.rs:626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 627
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 627
    functionName: StreamReadOptions::read_only
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - is_none
    linkageType: ''
    returnType: bool
    signature: pub fn read_only(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 635
    functionName: StreamReadOptions::noack
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: pub fn noack(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ms
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 641
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 641
    functionName: StreamReadOptions::block
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn block(mut self, ms: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 647
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 647
    functionName: StreamReadOptions::count
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn count(mut self, n: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:655,1
    - Dst: ToRedisArgs::to_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:656,1
    - Dst: ToRedisArgs::to_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - group_name
    - consumer_name
    argTypes:
    - GN
    - CN
    constantsTouched: []
    func_position:
      end: 660
      start: 650
    functionDepth: 40
    functionLinenumber: 650
    functionLinenumberEnd: 660
    functionName: StreamReadOptions::group
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    - ToRedisArgs::to_redis_args
    linkageType: ''
    returnType: Self
    signature: 'pub fn group<GN: ToRedisArgs, CN: ToRedisArgs>(mut self,group_name:
      GN,consumer_name: CN,) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - min_idle_time
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 666
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 666
    functionName: StreamReadOptions::claim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn claim(mut self, min_idle_time: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:675,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:677,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:680,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:685,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:686,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:686,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:690,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:691,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:691,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/streams.rs:694,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:696,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:697,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:701,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:702,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:702,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 66
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 705
      start: 670
    functionDepth: 45
    functionLinenumber: 670
    functionLinenumberEnd: 705
    functionName: StreamReadOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - Some
    - as_bytes
    - is_some
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: StreamPendingReply::count
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: usize
    signature: pub fn count(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1008,1
    - Dst: Self::first_mut
      Src: /src/redis-rs/redis/src/commands/streams.rs:1010,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1011,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/commands/streams.rs:1011,1
    - Dst: Self::first_mut
      Src: /src/redis-rs/redis/src/commands/streams.rs:1013,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1014,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/commands/streams.rs:1014,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1018,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1019
      start: 1007
    functionDepth: 40
    functionLinenumber: 1007
    functionLinenumberEnd: 1019
    functionName: StreamId::from_array_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::first_mut
    - Self::default
    - std::mem::take
    - from_redis_value
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_array_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/commands/streams.rs:1024,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/streams.rs:1025,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1028
      start: 1023
    functionDepth: 41
    functionLinenumber: 1023
    functionLinenumberEnd: 1028
    functionName: StreamId::get
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - get
    - Result::ok
    - from_redis_value_ref
    linkageType: ''
    returnType: Option
    signature: 'pub fn get<T: FromRedisValue>(&self, key: &str) -> Option<T>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: contains_key
      Src: /src/redis-rs/redis/src/commands/streams.rs:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1033
      start: 1031
    functionDepth: 43
    functionLinenumber: 1031
    functionLinenumberEnd: 1033
    functionName: StreamId::contains_key
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - contains_key
    linkageType: ''
    returnType: bool
    signature: 'pub fn contains_key(&self, key: &str) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1036
    functionDepth: 3
    functionLinenumber: 1036
    functionLinenumberEnd: 1038
    functionName: StreamId::len
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - len
    linkageType: ''
    returnType: usize
    signature: pub fn len(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamId::len
      Src: /src/redis-rs/redis/src/commands/streams.rs:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1041
    functionDepth: 4
    functionLinenumber: 1041
    functionLinenumberEnd: 1043
    functionName: StreamId::is_empty
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamId::len
    linkageType: ''
    returnType: bool
    signature: pub fn is_empty(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: invalid_type_error
      Src: /src/redis-rs/redis/src/commands/streams.rs:1051,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:1054,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:1054,1
    - Dst: invalid_type_error
      Src: /src/redis-rs/redis/src/commands/streams.rs:1055,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:1058,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1059,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/commands/streams.rs:1059,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1059,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/commands/streams.rs:1061,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/commands/streams.rs:1064,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1064,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1065,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/commands/streams.rs:1065,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1065,1
    - Dst: invalid_type_error
      Src: /src/redis-rs/redis/src/commands/streams.rs:1068,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1070,1
    - Dst: find
      Src: /src/redis-rs/redis/src/commands/streams.rs:1070,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1071,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/commands/streams.rs:1073,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/commands/streams.rs:1075,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:1081,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1082,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1084,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1084,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1087,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1089,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1084,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:1094,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:1099,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1100,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1102,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1102,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1105,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1105,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1102,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/streams.rs:1114,1
    - Dst: invalid_type_error
      Src: /src/redis-rs/redis/src/commands/streams.rs:1117,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1120,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 91
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1126
      start: 1049
    functionDepth: 45
    functionLinenumber: 1049
    functionLinenumberEnd: 1126
    functionName: StreamAutoClaimReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - invalid_type_error
    - len
    - map
    - std::iter::Chain::filter_map
    - Default::default
    - pop
    - from_redis_value
    - find
    - into_iter
    - unwrap
    - Ok
    - iter
    - std::iter::Chain::flat_map
    - Self::into_iter
    - RedisResult::into_iter
    - is_empty
    - Vec::new
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value::<SRRows>
      Src: /src/redis-rs/redis/src/commands/streams.rs:1136,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/commands/streams.rs:1136,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1137,1
    - Dst: Self::from_standard_rows
      Src: /src/redis-rs/redis/src/commands/streams.rs:1137,1
    - Dst: from_redis_value::<SRClaimRows>
      Src: /src/redis-rs/redis/src/commands/streams.rs:1142,1
    - Dst: Option::clone
      Src: /src/redis-rs/redis/src/commands/streams.rs:1142,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1143,1
    - Dst: Self::from_claim_rows
      Src: /src/redis-rs/redis/src/commands/streams.rs:1143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1147
      start: 1134
    functionDepth: 6
    functionLinenumber: 1134
    functionLinenumberEnd: 1147
    functionName: StreamReadReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - from_redis_value::<SRClaimRows>
    - from_redis_value::<SRRows>
    - Option::clone
    - Ok
    - Self::from_claim_rows
    - Self::from_standard_rows
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1152,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1152,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1155,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1155,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1157,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1157,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1160,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1160,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1157,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 1
    argNames:
    - rows
    argTypes:
    - SRRows
    constantsTouched: []
    func_position:
      end: 1172
      start: 1151
    functionDepth: 41
    functionLinenumber: 1151
    functionLinenumberEnd: 1172
    functionName: StreamReadReply::from_standard_rows
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - map
    - into_iter
    - Self::into_iter
    - std::iter::Chain::flat_map
    - collect
    linkageType: ''
    returnType: Self
    signature: 'fn from_standard_rows(rows: SRRows) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1175,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1175,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1178,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1178,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1180,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1180,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1180,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 1
    argNames:
    - rows
    argTypes:
    - SRClaimRows
    constantsTouched: []
    func_position:
      end: 1197
      start: 1174
    functionDepth: 41
    functionLinenumber: 1174
    functionLinenumberEnd: 1197
    functionName: StreamReadReply::from_claim_rows
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - map
    - std::iter::Chain::map
    - into_iter
    - Self::into_iter
    - std::iter::Chain::flat_map
    - collect
    linkageType: ''
    returnType: Self
    signature: 'fn from_claim_rows(rows: SRClaimRows) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1202,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1203,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1203,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1206,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1206,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1203,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1215
      start: 1201
    functionDepth: 45
    functionLinenumber: 1201
    functionLinenumberEnd: 1215
    functionName: StreamRangeReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - map
    - from_redis_value
    - into_iter
    - Ok
    - Self::into_iter
    - std::iter::Chain::flat_map
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1220,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1221,1
    - Dst: std::iter::Chain::flat_map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1221,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1224,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1224,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1221,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1233
      start: 1219
    functionDepth: 45
    functionLinenumber: 1219
    functionLinenumberEnd: 1233
    functionName: StreamClaimReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - map
    - from_redis_value
    - into_iter
    - Ok
    - Self::into_iter
    - std::iter::Chain::flat_map
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1244,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1247,1
    - Dst: StreamPendingData::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1249,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/commands/streams.rs:1251,1
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/commands/streams.rs:1252,1
    - Dst: ok_or_else
      Src: /src/redis-rs/redis/src/commands/streams.rs:1257,1
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/commands/streams.rs:1258,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1267,1
    - Dst: flatten
      Src: /src/redis-rs/redis/src/commands/streams.rs:1267,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1267,1
    - Dst: Vec::parse
      Src: /src/redis-rs/redis/src/commands/streams.rs:1272,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1272,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1273,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1267,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1277,1
    - Dst: Self::Data
      Src: /src/redis-rs/redis/src/commands/streams.rs:1277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1279
      start: 1243
    functionDepth: 45
    functionLinenumber: 1243
    functionLinenumberEnd: 1279
    functionName: StreamPendingReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::Data
    - ParsingError::from
    - ok_or_else
    - flatten
    - map
    - Default::default
    - Vec::parse
    - from_redis_value
    - into_iter
    - unwrap_or_default
    - Ok
    - StreamPendingData::default
    - collect
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1284,1
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/commands/streams.rs:1296,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/commands/streams.rs:1296,1
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/commands/streams.rs:1297,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/commands/streams.rs:1297,1
    - Dst: push
      Src: /src/redis-rs/redis/src/commands/streams.rs:1300,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/commands/streams.rs:1307,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/commands/streams.rs:1311,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/commands/streams.rs:1317,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1321,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1322
      start: 1283
    functionDepth: 40
    functionLinenumber: 1283
    functionLinenumberEnd: 1322
    functionName: StreamPendingCountReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - String::from_utf8
    - Self::default
    - to_vec
    - push
    - Ok
    - fail
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1327,1
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1328,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1329,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1330,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1332,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1333,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1335,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1336,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1338,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1339,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1341,1
    - Dst: StreamId::from_array_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1342,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1344,1
    - Dst: StreamId::from_array_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1345,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1347,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 58
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1348
      start: 1326
    functionDepth: 45
    functionLinenumber: 1326
    functionLinenumberEnd: 1348
    functionName: StreamInfoStreamReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::default
    - remove
    - StreamId::from_array_value
    - from_redis_value
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1353,1
    - Dst: StreamInfoStreamReply::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1356,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1357,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1358,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1360,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1361,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1363,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1364,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1366,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1367,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1369,1
    - Dst: StreamId::from_array_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1370,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1372,1
    - Dst: StreamId::from_array_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1373,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1379,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1382,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1383,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1385,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1386,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1388,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1389,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1391,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1392,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1394,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1395,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1397,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1398,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1401,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 114
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1402
      start: 1352
    functionDepth: 45
    functionLinenumber: 1352
    functionLinenumberEnd: 1402
    functionName: StreamInfoStreamReplyWithIdempotency::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - remove
    - StreamInfoStreamReply::default
    - Default::default
    - StreamId::from_array_value
    - from_redis_value
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1407,1
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1408,1
    - Dst: StreamInfoConsumer::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1410,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1411,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1412,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1414,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1415,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1417,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1418,1
    - Dst: push
      Src: /src/redis-rs/redis/src/commands/streams.rs:1420,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1423,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1424
      start: 1406
    functionDepth: 45
    functionLinenumber: 1406
    functionLinenumberEnd: 1424
    functionName: StreamInfoConsumersReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::default
    - remove
    - push
    - from_redis_value
    - Ok
    - StreamInfoConsumer::default
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1429,1
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1430,1
    - Dst: StreamInfoGroup::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1432,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1433,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1434,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1436,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1437,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1439,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1440,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1442,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1443,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1445,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:1449,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1449,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/commands/streams.rs:1452,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/streams.rs:1456,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1456,1
    - Dst: push
      Src: /src/redis-rs/redis/src/commands/streams.rs:1459,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1461,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 69
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1462
      start: 1428
    functionDepth: 45
    functionLinenumber: 1428
    functionLinenumberEnd: 1462
    functionName: StreamInfoGroupsReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::default
    - StreamInfoGroup::default
    - remove
    - push
    - from_redis_value
    - Ok
    - Some
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1484,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1485,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1486,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1488
      start: 1479
    functionDepth: 45
    functionLinenumber: 1479
    functionLinenumberEnd: 1488
    functionName: StreamDeletionPolicy::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1512,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1513,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1514,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1515,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1515,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1517,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1519
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1519
    functionName: XDelExStatusCode::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1555,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1556,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/streams.rs:1557,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1559
      start: 1550
    functionDepth: 45
    functionLinenumber: 1550
    functionLinenumberEnd: 1559
    functionName: StreamNackMode::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mode
    argTypes:
    - StreamNackMode
    constantsTouched: []
    func_position:
      end: 1590
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1590
    functionName: StreamNackOptions::new
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(mode: StreamNackMode) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1600
      start: 1595
    functionDepth: 46
    functionLinenumber: 1595
    functionLinenumberEnd: 1600
    functionName: StreamNackOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1622,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1623,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1624,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1625,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1625,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1627,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1627,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1629
      start: 1619
    functionDepth: 0
    functionLinenumber: 1619
    functionLinenumberEnd: 1629
    functionName: XAckDelStatusCode::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Err
    - into
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/commands/streams.rs:1637,1
    - Dst: impl ToRedisArgs::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:1639,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/commands/streams.rs:1641,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/commands/streams.rs:1643,1
    - Dst: for_each
      Src: /src/redis-rs/redis/src/commands/streams.rs:1643,1
    - Dst: Cmd::append
      Src: /src/redis-rs/redis/src/commands/streams.rs:1644,1
    - Dst: Cmd::push
      Src: /src/redis-rs/redis/src/commands/streams.rs:1645,1
    - Dst: Cmd::pop
      Src: /src/redis-rs/redis/src/commands/streams.rs:1648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - object
    - expected
    argTypes:
    - impl ToRedisArgs
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1651
      start: 1636
    functionDepth: 39
    functionLinenumber: 1636
    functionLinenumberEnd: 1651
    functionName: tests::assert_command_eq
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Cmd::pop
    - iter_mut
    - Cmd::append
    - for_each
    - impl ToRedisArgs::write_redis_args
    - Cmd::push
    - Vec::new
    linkageType: ''
    returnType: void
    signature: 'fn assert_command_eq(object: impl ToRedisArgs, expected: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1659,1
    - Dst: StreamAutoClaimReply::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1661,1
    - Dst: Result::unwrap_err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1662
      start: 1658
    functionDepth: 46
    functionLinenumber: 1658
    functionLinenumberEnd: 1662
    functionName: tests::short_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap_err
    - StreamAutoClaimReply::from_redis_value
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn short_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1666,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1672,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1665
    functionDepth: 44
    functionLinenumber: 1665
    functionLinenumberEnd: 1677
    functionName: tests::parses_none_claimed_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value
    - Result::unwrap
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn parses_none_claimed_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1681,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1707,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1680
    functionDepth: 44
    functionLinenumber: 1680
    functionLinenumberEnd: 1718
    functionName: tests::parses_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - FromRedisValue::from_redis_value
    - Result::unwrap
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn parses_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1722,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1747,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1747,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1751,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1751,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/streams.rs:1751,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1721
    functionDepth: 44
    functionLinenumber: 1721
    functionLinenumberEnd: 1755
    functionName: tests::parses_v6_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - map
    - as_str
    - iter
    - Value::Array
    - FromRedisValue::from_redis_value
    - collect
    linkageType: ''
    returnType: void
    signature: fn parses_v6_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1759,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1768,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1768,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1772,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1772,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/streams.rs:1772,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1777
      start: 1758
    functionDepth: 44
    functionLinenumber: 1758
    functionLinenumberEnd: 1777
    functionName: tests::parses_justid_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - map
    - as_str
    - iter
    - Value::Array
    - FromRedisValue::from_redis_value
    - collect
    linkageType: ''
    returnType: void
    signature: fn parses_justid_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1781,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1790,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1790,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1794,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1794,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/streams.rs:1794,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1794,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1780
    functionDepth: 44
    functionLinenumber: 1780
    functionLinenumberEnd: 1798
    functionName: tests::parses_v6_justid_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - map
    - as_str
    - iter
    - Value::Array
    - FromRedisValue::from_redis_value
    - collect
    linkageType: ''
    returnType: void
    signature: fn parses_v6_justid_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimOptions::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1806,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1805
    functionDepth: 40
    functionLinenumber: 1805
    functionLinenumberEnd: 1809
    functionName: tests::maxlen_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimOptions::maxlen
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn maxlen_trim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimOptions::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1813,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1812
    functionDepth: 40
    functionLinenumber: 1812
    functionLinenumberEnd: 1816
    functionName: tests::maxlen_exact_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimOptions::maxlen
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn maxlen_exact_trim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimOptions::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1820,1
    - Dst: Self::limit
      Src: /src/redis-rs/redis/src/commands/streams.rs:1820,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1819
    functionDepth: 40
    functionLinenumber: 1819
    functionLinenumberEnd: 1823
    functionName: tests::maxlen_trim_limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::limit
    - StreamTrimOptions::maxlen
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn maxlen_trim_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/src/commands/streams.rs:1826,1
    - Dst: Self::limit
      Src: /src/redis-rs/redis/src/commands/streams.rs:1826,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1825
    functionDepth: 40
    functionLinenumber: 1825
    functionLinenumberEnd: 1829
    functionName: tests::minid_trim_limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::limit
    - StreamTrimOptions::minid
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn minid_trim_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1837,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1836
    functionDepth: 40
    functionLinenumber: 1836
    functionLinenumberEnd: 1840
    functionName: tests::the_default
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn the_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1844,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1844,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1845,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1843
    functionDepth: 40
    functionLinenumber: 1843
    functionLinenumberEnd: 1848
    functionName: tests::with_maxlen_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - Self::trim
    - StreamTrimStrategy::maxlen
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn with_maxlen_trim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1852,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1852,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1851
    functionDepth: 40
    functionLinenumber: 1851
    functionLinenumberEnd: 1855
    functionName: tests::with_nomkstream
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - assert_command_eq
    - Self::nomkstream
    linkageType: ''
    returnType: void
    signature: fn with_nomkstream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1859,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1859,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1859,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1861,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1858
    functionDepth: 40
    functionLinenumber: 1858
    functionLinenumberEnd: 1864
    functionName: tests::with_nomkstream_and_maxlen_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::trim
    - assert_command_eq
    - Self::nomkstream
    - StreamAddOptions::default
    - StreamTrimStrategy::maxlen
    linkageType: ''
    returnType: void
    signature: fn with_nomkstream_and_maxlen_trim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1868,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/src/commands/streams.rs:1868,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1871
      start: 1867
    functionDepth: 40
    functionLinenumber: 1867
    functionLinenumberEnd: 1871
    functionName: tests::with_idmp_manual_mode
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - assert_command_eq
    - Self::idmp
    linkageType: ''
    returnType: void
    signature: fn with_idmp_manual_mode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1875,1
    - Dst: Self::idmpauto
      Src: /src/redis-rs/redis/src/commands/streams.rs:1875,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1874
    functionDepth: 40
    functionLinenumber: 1874
    functionLinenumberEnd: 1878
    functionName: tests::with_idmpauto_automatic_mode
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - Self::idmpauto
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn with_idmpauto_automatic_mode()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1882,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1882,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/src/commands/streams.rs:1882,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1886,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1881
    functionDepth: 40
    functionLinenumber: 1881
    functionLinenumberEnd: 1887
    functionName: tests::with_nomkstream_and_idmp
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamAddOptions::default
    - assert_command_eq
    - Self::idmp
    - Self::nomkstream
    linkageType: ''
    returnType: void
    signature: fn with_nomkstream_and_idmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1891,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1891,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1892,1
    - Dst: idmp
      Src: /src/redis-rs/redis/src/commands/streams.rs:1891,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1890
    functionDepth: 40
    functionLinenumber: 1890
    functionLinenumberEnd: 1896
    functionName: tests::with_trim_and_idmp
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::trim
    - assert_command_eq
    - idmp
    - StreamAddOptions::default
    - StreamTrimStrategy::maxlen
    linkageType: ''
    returnType: void
    signature: fn with_trim_and_idmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1900,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1900,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1900,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1902,1
    - Dst: idmp
      Src: /src/redis-rs/redis/src/commands/streams.rs:1900,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/src/commands/streams.rs:1900,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1910
      start: 1899
    functionDepth: 40
    functionLinenumber: 1899
    functionLinenumberEnd: 1910
    functionName: tests::with_all_options_and_idmp
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::trim
    - assert_command_eq
    - idmp
    - Self::nomkstream
    - StreamAddOptions::default
    - StreamTrimStrategy::maxlen
    - Self::set_deletion_policy
    linkageType: ''
    returnType: void
    signature: fn with_all_options_and_idmp()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1914,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1914,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1914,1
    - Dst: StreamTrimStrategy::minid
      Src: /src/redis-rs/redis/src/commands/streams.rs:1916,1
    - Dst: idmpauto
      Src: /src/redis-rs/redis/src/commands/streams.rs:1914,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/src/commands/streams.rs:1914,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1927
      start: 1913
    functionDepth: 40
    functionLinenumber: 1913
    functionLinenumberEnd: 1927
    functionName: tests::with_all_options_and_idmpauto
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamTrimStrategy::minid
    - Self::trim
    - assert_command_eq
    - idmpauto
    - Self::nomkstream
    - StreamAddOptions::default
    - Self::set_deletion_policy
    linkageType: ''
    returnType: void
    signature: fn with_all_options_and_idmpauto()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:1939,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1939,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1940,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1937
    functionDepth: 40
    functionLinenumber: 1937
    functionLinenumberEnd: 1944
    functionName: tests::with_idempotency_seconds_only
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - StreamConfigOptions::with_idempotency_seconds
    - Result::unwrap
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn with_idempotency_seconds_only()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:1949,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1949,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1950,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1952,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1954
      start: 1947
    functionDepth: 40
    functionLinenumber: 1947
    functionLinenumberEnd: 1954
    functionName: tests::with_idempotency_maxsize_only
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamConfigOptions::with_idempotency_maxsize
    - as_bytes
    - Result::unwrap
    - assert_command_eq
    linkageType: ''
    returnType: void
    signature: fn with_idempotency_maxsize_only()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:1958,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1958,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:1958,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1958,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1962,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1957
    functionDepth: 40
    functionLinenumber: 1957
    functionLinenumberEnd: 1967
    functionName: tests::with_both_options_starting_with_idempotency_seconds
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - assert_command_eq
    - unwrap
    - idempotency_maxsize
    - StreamConfigOptions::with_idempotency_seconds
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn with_both_options_starting_with_idempotency_seconds()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:1971,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1971,1
    - Dst: idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:1971,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1971,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1975,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1970
    functionDepth: 40
    functionLinenumber: 1970
    functionLinenumberEnd: 1980
    functionName: tests::with_both_options_starting_with_idempotency_maxsize
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - idempotency_seconds
    - StreamConfigOptions::with_idempotency_maxsize
    - assert_command_eq
    - unwrap
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn with_both_options_starting_with_idempotency_maxsize()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:1984,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1984,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:1984,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1984,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1988,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1993
      start: 1983
    functionDepth: 40
    functionLinenumber: 1983
    functionLinenumberEnd: 1993
    functionName: tests::with_max_values
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - assert_command_eq
    - unwrap
    - idempotency_maxsize
    - StreamConfigOptions::with_idempotency_seconds
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn with_max_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:1997,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1997,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:1997,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1997,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:2001,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:2003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2006
      start: 1996
    functionDepth: 40
    functionLinenumber: 1996
    functionLinenumberEnd: 2006
    functionName: tests::with_min_values
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - assert_command_eq
    - unwrap
    - idempotency_maxsize
    - StreamConfigOptions::with_idempotency_seconds
    - as_bytes
    linkageType: ''
    returnType: void
    signature: fn with_min_values()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:2010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 2009
    functionDepth: 1
    functionLinenumber: 2009
    functionLinenumberEnd: 2015
    functionName: tests::error_idempotency_seconds_too_low
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamConfigOptions::with_idempotency_seconds
    linkageType: ''
    returnType: void
    signature: fn error_idempotency_seconds_too_low()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:2019,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2018
    functionDepth: 1
    functionLinenumber: 2018
    functionLinenumberEnd: 2024
    functionName: tests::error_idempotency_seconds_too_high
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamConfigOptions::with_idempotency_seconds
    linkageType: ''
    returnType: void
    signature: fn error_idempotency_seconds_too_high()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:2028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2033
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2033
    functionName: tests::error_idempotency_maxsize_too_low
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamConfigOptions::with_idempotency_maxsize
    linkageType: ''
    returnType: void
    signature: fn error_idempotency_maxsize_too_low()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:2037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2042
      start: 2036
    functionDepth: 1
    functionLinenumber: 2036
    functionLinenumberEnd: 2042
    functionName: tests::error_idempotency_maxsize_too_high
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamConfigOptions::with_idempotency_maxsize
    linkageType: ''
    returnType: void
    signature: fn error_idempotency_maxsize_too_high()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:2046,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:2046,1
    - Dst: idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:2046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2053
      start: 2045
    functionDepth: 1
    functionLinenumber: 2045
    functionLinenumberEnd: 2053
    functionName: tests::error_setter_idempotency_seconds_too_low
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamConfigOptions::with_idempotency_maxsize
    - Result::unwrap
    - idempotency_seconds
    linkageType: ''
    returnType: void
    signature: fn error_setter_idempotency_seconds_too_low()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:2057,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:2057,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:2057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2056
    functionDepth: 1
    functionLinenumber: 2056
    functionLinenumberEnd: 2064
    functionName: tests::error_setter_idempotency_maxsize_too_high
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamConfigOptions::with_idempotency_seconds
    - Result::unwrap
    - idempotency_maxsize
    linkageType: ''
    returnType: void
    signature: fn error_setter_idempotency_maxsize_too_high()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 246
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 246
    functionName: command_properties
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Properties
    signature: 'fn command_properties(cmd: &[u8]) -> Properties'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 254
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 254
    functionName: is_readonly_cmd
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub(crate) fn is_readonly_cmd(cmd: &[u8]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    functionName: is_cachable_cmd
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub(crate) fn is_cachable_cmd(cmd: &[u8]) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::as_pubsub
      Src: /src/redis-rs/redis/src/commands/mod.rs:3356,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/commands/mod.rs:3357,1
    - Dst: get_message
      Src: /src/redis-rs/redis/src/commands/mod.rs:3360,1
    - Dst: func
      Src: /src/redis-rs/redis/src/commands/mod.rs:3361,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/mod.rs:3363,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - channels
    - func
    argTypes:
    - C
    - F
    constantsTouched: []
    func_position:
      end: 3366
      start: 3351
    functionDepth: 42
    functionLinenumber: 3351
    functionLinenumberEnd: 3366
    functionName: Connection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - func
    - Connection::as_pubsub
    - Ok
    - subscribe
    - get_message
    linkageType: ''
    returnType: RedisResult
    signature: 'fn subscribe<C, F, U>(&mut self, channels: C, mut func: F) -> RedisResult<U>whereF:
      FnMut(Msg) -> ControlFlow<U>,C: ToRedisArgs,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Connection::as_pubsub
      Src: /src/redis-rs/redis/src/commands/mod.rs:3373,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/src/commands/mod.rs:3374,1
    - Dst: get_message
      Src: /src/redis-rs/redis/src/commands/mod.rs:3377,1
    - Dst: func
      Src: /src/redis-rs/redis/src/commands/mod.rs:3378,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/mod.rs:3380,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - patterns
    - func
    argTypes:
    - P
    - F
    constantsTouched: []
    func_position:
      end: 3383
      start: 3368
    functionDepth: 42
    functionLinenumber: 3368
    functionLinenumberEnd: 3383
    functionName: Connection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - func
    - Connection::as_pubsub
    - psubscribe
    - Ok
    - get_message
    linkageType: ''
    returnType: RedisResult
    signature: 'fn psubscribe<P, F, U>(&mut self, patterns: P, mut func: F) -> RedisResult<U>whereF:
      FnMut(Msg) -> ControlFlow<U>,P: ToRedisArgs,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3415
      start: 3412
    functionDepth: 0
    functionLinenumber: 3412
    functionLinenumberEnd: 3415
    functionName: ScanOptions::with_count
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_count(mut self, n: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3419,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/mod.rs:3419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 3421
      start: 3418
    functionDepth: 0
    functionLinenumber: 3418
    functionLinenumberEnd: 3421
    functionName: ScanOptions::with_pattern
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - into
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_pattern(mut self, p: impl Into<String>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3425,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/commands/mod.rs:3425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 3427
      start: 3424
    functionDepth: 0
    functionLinenumber: 3424
    functionLinenumberEnd: 3427
    functionName: ScanOptions::with_type
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - TlsFilePaths::into
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_type(mut self, t: impl Into<String>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3436,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3437,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3441,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3442,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3446,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3447,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3449
      start: 3431
    functionDepth: 45
    functionLinenumber: 3431
    functionLinenumberEnd: 3449
    functionName: ScanOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - write_arg_fmt
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3453,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3456,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3459,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3451
    functionDepth: 0
    functionLinenumber: 3451
    functionLinenumberEnd: 3463
    functionName: ScanOptions::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - is_some
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3499
      start: 3496
    functionDepth: 0
    functionLinenumber: 3496
    functionLinenumberEnd: 3499
    functionName: LposOptions::count
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn count(mut self, n: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - isize
    constantsTouched: []
    func_position:
      end: 3505
      start: 3502
    functionDepth: 0
    functionLinenumber: 3502
    functionLinenumberEnd: 3505
    functionName: LposOptions::rank
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn rank(mut self, n: isize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3511
      start: 3508
    functionDepth: 0
    functionLinenumber: 3508
    functionLinenumberEnd: 3511
    functionName: LposOptions::maxlen
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn maxlen(mut self, n: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3520,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3521,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3525,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3526,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3530,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3531,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3533
      start: 3515
    functionDepth: 45
    functionLinenumber: 3515
    functionLinenumberEnd: 3533
    functionName: LposOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - write_arg_fmt
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3537,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3540,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3543,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3547
      start: 3535
    functionDepth: 0
    functionLinenumber: 3535
    functionLinenumberEnd: 3547
    functionName: LposOptions::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - is_some
    linkageType: ''
    returnType: usize
    signature: fn num_of_args(&self) -> usize
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3569
      start: 3560
    functionDepth: 45
    functionLinenumber: 3560
    functionLinenumberEnd: 3569
    functionName: Direction::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3602
      start: 3597
    functionDepth: 0
    functionLinenumber: 3597
    functionLinenumberEnd: 3602
    functionName: CopyOptions::default
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3609,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - Db2
    constantsTouched: []
    func_position:
      end: 3612
      start: 3607
    functionDepth: 0
    functionLinenumber: 3607
    functionLinenumberEnd: 3612
    functionName: CopyOptions::db
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: CopyOptions
    signature: 'pub fn db<Db2: ToString>(self, db: Db2) -> CopyOptions<Db2>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - replace
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3618
      start: 3615
    functionDepth: 0
    functionLinenumber: 3615
    functionLinenumberEnd: 3618
    functionName: CopyOptions::replace
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn replace(mut self, replace: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3627,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3628,1
    - Dst: i64::to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3628,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3628,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3631,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3633
      start: 3622
    functionDepth: 45
    functionLinenumber: 3622
    functionLinenumberEnd: 3633
    functionName: CopyOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - i64::to_string
    - String::as_bytes
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - existence_check
    argTypes:
    - ExistenceCheck
    constantsTouched: []
    func_position:
      end: 3677
      start: 3674
    functionDepth: 0
    functionLinenumber: 3674
    functionLinenumberEnd: 3677
    functionName: SetOptions::conditional_set
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn conditional_set(mut self, existence_check: ExistenceCheck)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value_comparison
    argTypes:
    - ValueComparison
    constantsTouched: []
    func_position:
      end: 3683
      start: 3680
    functionDepth: 0
    functionLinenumber: 3680
    functionLinenumberEnd: 3683
    functionName: SetOptions::value_comparison
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn value_comparison(mut self, value_comparison: ValueComparison)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - get
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3689
      start: 3686
    functionDepth: 0
    functionLinenumber: 3686
    functionLinenumberEnd: 3689
    functionName: SetOptions::get
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn get(mut self, get: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3695
      start: 3692
    functionDepth: 0
    functionLinenumber: 3692
    functionLinenumberEnd: 3695
    functionName: SetOptions::with_expiration
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_expiration(mut self, expiration: SetExpiry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3704,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3707,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3710,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3715
      start: 3699
    functionDepth: 46
    functionLinenumber: 3699
    functionLinenumberEnd: 3715
    functionName: SetOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - write_redis_args
    - Self::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - existence_check
    argTypes:
    - ExistenceCheck
    constantsTouched: []
    func_position:
      end: 3743
      start: 3740
    functionDepth: 0
    functionLinenumber: 3740
    functionLinenumberEnd: 3743
    functionName: MSetOptions::conditional_set
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn conditional_set(mut self, existence_check: ExistenceCheck)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3749
      start: 3746
    functionDepth: 0
    functionLinenumber: 3746
    functionLinenumberEnd: 3749
    functionName: MSetOptions::with_expiration
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn with_expiration(mut self, expiration: SetExpiry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3758,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3763
      start: 3753
    functionDepth: 46
    functionLinenumber: 3753
    functionLinenumberEnd: 3763
    functionName: MSetOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - Self::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blocking
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 3789
      start: 3786
    functionDepth: 0
    functionLinenumber: 3786
    functionLinenumberEnd: 3789
    functionName: FlushAllOptions::blocking
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn blocking(mut self, blocking: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3798,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3802
      start: 3793
    functionDepth: 45
    functionLinenumber: 3793
    functionLinenumberEnd: 3802
    functionName: FlushAllOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - field_existence_check
    argTypes:
    - FieldExistenceCheck
    constantsTouched: []
    func_position:
      end: 3821
      start: 3818
    functionDepth: 0
    functionLinenumber: 3818
    functionLinenumberEnd: 3821
    functionName: HashFieldExpirationOptions::set_existence_check
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_existence_check(mut self, field_existence_check: FieldExistenceCheck)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3827
      start: 3824
    functionDepth: 0
    functionLinenumber: 3824
    functionLinenumberEnd: 3827
    functionName: HashFieldExpirationOptions::set_expiration
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_expiration(mut self, expiration: SetExpiry) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3836,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3842
      start: 3831
    functionDepth: 46
    functionLinenumber: 3831
    functionLinenumberEnd: 3842
    functionName: HashFieldExpirationOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/commands/mod.rs:3850,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3853,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3854,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/commands/mod.rs:3854,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3854,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3857,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3858,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/commands/mod.rs:3858,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3858,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3861,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3862,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/commands/mod.rs:3862,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3862,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3865,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3866,1
    - Dst: Self::format
      Src: /src/redis-rs/redis/src/commands/mod.rs:3866,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3866,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3869,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3872
      start: 3846
    functionDepth: 45
    functionLinenumber: 3846
    functionLinenumberEnd: 3872
    functionName: Expiry::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - as_bytes
    - Self::format
    - ::itoa::Buffer::new
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3892,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3895,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3898
      start: 3886
    functionDepth: 45
    functionLinenumber: 3886
    functionLinenumberEnd: 3898
    functionName: UpdateCheck::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3915,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/mod.rs:3916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3918
      start: 3913
    functionDepth: 40
    functionLinenumber: 3913
    functionLinenumberEnd: 3918
    functionName: SortedSetAddOptions::add_only
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - Some
    - Default::default
    linkageType: ''
    returnType: Self
    signature: pub fn add_only() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3924,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/mod.rs:3926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conditional_update
    argTypes:
    - Option<UpdateCheck>
    constantsTouched: []
    func_position:
      end: 3928
      start: 3922
    functionDepth: 40
    functionLinenumber: 3922
    functionLinenumberEnd: 3928
    functionName: SortedSetAddOptions::update_only
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - Some
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn update_only(conditional_update: Option<UpdateCheck>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/mod.rs:3935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conditional_update
    argTypes:
    - Option<UpdateCheck>
    constantsTouched: []
    func_position:
      end: 3937
      start: 3932
    functionDepth: 40
    functionLinenumber: 3932
    functionLinenumberEnd: 3937
    functionName: SortedSetAddOptions::add_or_update
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - Default::default
    linkageType: ''
    returnType: Self
    signature: 'pub fn add_or_update(conditional_update: Option<UpdateCheck>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3944
      start: 3941
    functionDepth: 0
    functionLinenumber: 3941
    functionLinenumberEnd: 3944
    functionName: SortedSetAddOptions::include_changed_count
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn include_changed_count(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3951
      start: 3948
    functionDepth: 0
    functionLinenumber: 3948
    functionLinenumberEnd: 3951
    functionName: SortedSetAddOptions::increment_score
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: pub fn increment_score(mut self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3960,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3964,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3967,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3970,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3972
      start: 3955
    functionDepth: 46
    functionLinenumber: 3955
    functionLinenumberEnd: 3972
    functionName: SortedSetAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - write_redis_args
    - Self::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:3978,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3979,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/mod.rs:3981,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3985,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/commands/mod.rs:3985,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3985,1
    - Dst: '&''static str::as_bytes'
      Src: /src/redis-rs/redis/src/commands/mod.rs:3985,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&RedisConnectionInfo'
    constantsTouched: []
    func_position:
      end: 3989
      start: 3977
    functionDepth: 47
    functionLinenumber: 3977
    functionLinenumberEnd: 3989
    functionName: resp3_hello
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - '&mut Self::arg'
    - arg
    - Cmd::arg
    - as_ref
    - cmd::cmd
    - '&''static str::as_bytes'
    linkageType: ''
    returnType: Cmd
    signature: 'pub fn resp3_hello(connection_info: &RedisConnectionInfo) -> Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:4044,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:4044,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/commands/mod.rs:4044,1
    - Dst: query
      Src: /src/redis-rs/redis/src/commands/mod.rs:4044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - opts
    argTypes:
    - hotkeys::HotkeysOptions
    constantsTouched: []
    func_position:
      end: 4045
      start: 4040
    functionDepth: 47
    functionLinenumber: 4040
    functionLinenumberEnd: 4045
    functionName: HotkeysCommands::hotkeys_start
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - cmd::cmd
    - query
    - Cmd::arg
    linkageType: ''
    returnType: RedisResult
    signature: 'fn hotkeys_start(&mut self, opts: hotkeys::HotkeysOptions) -> RedisResult<()>whereSelf:
      Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:4061,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:4061,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/src/commands/mod.rs:4061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 4057
    functionDepth: 47
    functionLinenumber: 4057
    functionLinenumberEnd: 4062
    functionName: HotkeysCommands::hotkeys_get
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::query'
    - cmd::cmd
    - Cmd::arg
    linkageType: ''
    returnType: RedisResult
    signature: 'fn hotkeys_get(&mut self) -> RedisResult<Option<hotkeys::HotkeysResponse>>whereSelf:
      Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:4077,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:4077,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/src/commands/mod.rs:4077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4078
      start: 4073
    functionDepth: 47
    functionLinenumber: 4073
    functionLinenumberEnd: 4078
    functionName: HotkeysCommands::hotkeys_stop
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::query'
    - cmd::cmd
    - Cmd::arg
    linkageType: ''
    returnType: RedisResult
    signature: 'fn hotkeys_stop(&mut self) -> RedisResult<bool>whereSelf: Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:4093,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:4093,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/src/commands/mod.rs:4093,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4094
      start: 4089
    functionDepth: 47
    functionLinenumber: 4089
    functionLinenumberEnd: 4094
    functionName: HotkeysCommands::hotkeys_reset
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::query'
    - cmd::cmd
    - Cmd::arg
    linkageType: ''
    returnType: RedisResult
    signature: 'fn hotkeys_reset(&mut self) -> RedisResult<()>whereSelf: Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/commands/mod.rs:4116,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:4117,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:4117,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/src/commands/mod.rs:4117,1
    - Dst: query_async
      Src: /src/redis-rs/redis/src/commands/mod.rs:4117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - opts
    argTypes:
    - hotkeys::HotkeysOptions
    constantsTouched: []
    func_position:
      end: 4123
      start: 4112
    functionDepth: 47
    functionLinenumber: 4112
    functionLinenumberEnd: 4123
    functionName: AsyncHotkeysCommands::hotkeys_start
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::arg'
    - Cmd::arg
    - query_async
    - cmd::cmd
    - Box::pin
    linkageType: ''
    returnType: crate::types::RedisFuture
    signature: 'fn hotkeys_start(&mut self,opts: hotkeys::HotkeysOptions,) -> crate::types::RedisFuture<''_,
      ()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/commands/mod.rs:4136,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:4136,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:4136,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/src/commands/mod.rs:4136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4137
      start: 4135
    functionDepth: 47
    functionLinenumber: 4135
    functionLinenumberEnd: 4137
    functionName: AsyncHotkeysCommands::hotkeys_get
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::query_async'
    - cmd::cmd
    - Box::pin
    - Cmd::arg
    linkageType: ''
    returnType: crate::types::RedisFuture
    signature: fn hotkeys_get(&mut self) -> crate::types::RedisFuture<'_, Option<hotkeys::HotkeysResponse>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/commands/mod.rs:4149,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:4149,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:4149,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/src/commands/mod.rs:4149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4150
      start: 4148
    functionDepth: 47
    functionLinenumber: 4148
    functionLinenumberEnd: 4150
    functionName: AsyncHotkeysCommands::hotkeys_stop
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::query_async'
    - cmd::cmd
    - Box::pin
    - Cmd::arg
    linkageType: ''
    returnType: crate::types::RedisFuture
    signature: fn hotkeys_stop(&mut self) -> crate::types::RedisFuture<'_, bool>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/commands/mod.rs:4162,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:4162,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:4162,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/src/commands/mod.rs:4162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4163
      start: 4161
    functionDepth: 47
    functionLinenumber: 4161
    functionLinenumberEnd: 4163
    functionName: AsyncHotkeysCommands::hotkeys_reset
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - '&mut Self::query_async'
    - cmd::cmd
    - Box::pin
    - Cmd::arg
    linkageType: ''
    returnType: crate::types::RedisFuture
    signature: fn hotkeys_reset(&mut self) -> crate::types::RedisFuture<'_, ()>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: VSimOptions::set_with_scores
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_with_scores(mut self, enabled: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - count
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: VSimOptions::set_count
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_count(mut self, count: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - factor
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: VSimOptions::set_search_exploration_factor
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_search_exploration_factor(mut self, factor: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:69,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - expression
    argTypes:
    - S
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: VSimOptions::set_filter_expression
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    - Self::into
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_filter_expression<S: Into<String>>(mut self, expression:
      S) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - effort
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: VSimOptions::set_max_filtering_effort
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_max_filtering_effort(mut self, effort: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: VSimOptions::set_truth
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_truth(mut self, enabled: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: VSimOptions::set_no_thread
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_no_thread(mut self, enabled: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:98,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:102,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:103,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:107,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:108,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:112,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:113,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:113,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:117,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:118,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:122,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:126,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 56
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 128
      start: 93
    functionDepth: 45
    functionLinenumber: 93
    functionLinenumberEnd: 128
    functionName: VSimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - as_bytes
    - write_arg_fmt
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:154,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:154,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:156,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:160,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:160,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:162,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:166,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:166,1
    - Dst: Option::write_redis_args
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 172
      start: 148
    functionDepth: 46
    functionLinenumber: 148
    functionLinenumberEnd: 172
    functionName: EmbeddingInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - write_arg_fmt
    - len
    - Option::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:193,1
    - Dst: writer_for_next_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:194,1
    - Dst: impl io::Write + '_::write_all
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:196,1
    - Dst: to_le_bytes
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:196,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:196,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:200,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 204
      start: 186
    functionDepth: 45
    functionLinenumber: 186
    functionLinenumberEnd: 204
    functionName: VectorAddInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - writer_for_next_arg
    - write_redis_args
    - to_le_bytes
    - unwrap
    - impl io::Write + '_::write_all
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dimension
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: VAddOptions::set_reduction_dimension
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_reduction_dimension(mut self, dimension: usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - cas_enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: VAddOptions::set_check_and_set_style
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_check_and_set_style(mut self, cas_enabled: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - vector_quantization
    argTypes:
    - VectorQuantization
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: VAddOptions::set_quantization
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_quantization(mut self, vector_quantization: VectorQuantization)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - build_exploration_factor
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 285
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 285
    functionName: VAddOptions::set_build_exploration_factor
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_build_exploration_factor(mut self, build_exploration_factor:
      usize) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - attributes
    argTypes:
    - serde_json::Value
    constantsTouched: []
    func_position:
      end: 291
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 291
    functionName: VAddOptions::set_attributes
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_attributes(mut self, attributes: serde_json::Value) ->
      Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - max_number_of_links
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 297
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 297
    functionName: VAddOptions::set_max_number_of_links
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_max_number_of_links(mut self, max_number_of_links: usize)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:306,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:311,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:312,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:313,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:318,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:319,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:323,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:324,1
    - Dst: serde_json::to_vec
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:324,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:324,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:328,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 331
      start: 301
    functionDepth: 45
    functionLinenumber: 301
    functionLinenumberEnd: 331
    functionName: VAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - unwrap
    - write_arg_fmt
    - serde_json::to_vec
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - enabled
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: VEmbOptions::set_raw_representation
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Self
    signature: 'pub fn set_raw_representation(mut self, enabled: bool) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 370
      start: 363
    functionDepth: 45
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: VEmbOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:394,1
    - Dst: writer_for_next_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:395,1
    - Dst: impl io::Write + '_::write_all
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:397,1
    - Dst: to_le_bytes
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:397,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:397,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:401,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:402,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:405,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/vector_sets.rs:406,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 409
      start: 387
    functionDepth: 45
    functionLinenumber: 387
    functionLinenumberEnd: 409
    functionName: VectorSimilaritySearchInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - writer_for_next_arg
    - write_redis_args
    - to_le_bytes
    - unwrap
    - impl io::Write + '_::write_all
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 173
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 173
    functionName: implement_json_commands
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/json.rs:340,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/json.rs:341,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/json.rs:342,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/json.rs:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 45
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: FphaType::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - write_arg
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/json.rs:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - existence_check
    argTypes:
    - ExistenceCheck
    constantsTouched: []
    func_position:
      end: 377
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 377
    functionName: JsonSetOptions::conditional_set
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn conditional_set(mut self, existence_check: ExistenceCheck)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/json.rs:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - fpha_type
    argTypes:
    - FphaType
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: JsonSetOptions::fpha
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: Self
    signature: 'pub fn fpha(mut self, fpha_type: FphaType) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/json.rs:392,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/json.rs:395,1
    - Dst: bool::write_redis_args
      Src: /src/redis-rs/redis/src/commands/json.rs:396,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 398
      start: 387
    functionDepth: 46
    functionLinenumber: 387
    functionLinenumberEnd: 398
    functionName: JsonSetOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - Self::write_redis_args
    - bool::write_redis_args
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: args_iter
      Src: /src/redis-rs/redis/src/commands/json.rs:407,1
    - Dst: impl Clone + ExactSizeIterator::map
      Src: /src/redis-rs/redis/src/commands/json.rs:407,1
    - Dst: i64::to_vec
      Src: /src/redis-rs/redis/src/commands/json.rs:409,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/src/commands/json.rs:410,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/json.rs:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 41
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: tests::simple_args
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - i64::to_vec
    - impl Clone + ExactSizeIterator::map
    - '&str::to_vec'
    - args_iter
    - collect
    linkageType: ''
    returnType: Vec
    signature: 'fn simple_args(c: &Cmd) -> Vec<Vec<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/json.rs:416,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/json.rs:417,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/json.rs:417,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/json.rs:417,1
    - Dst: serde_json::to_string
      Src: /src/redis-rs/redis/src/commands/json.rs:419,1
    - Dst: String::unwrap
      Src: /src/redis-rs/redis/src/commands/json.rs:419,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/json.rs:417,1
    - Dst: simple_args
      Src: /src/redis-rs/redis/src/commands/json.rs:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - value
    - opts
    argTypes:
    - '&V'
    - '&JsonSetOptions'
    constantsTouched: []
    func_position:
      end: 422
      start: 415
    functionDepth: 46
    functionLinenumber: 415
    functionLinenumberEnd: 422
    functionName: tests::build
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - arg
    - serde_json::to_string
    - String::unwrap
    - simple_args
    - cmd::cmd
    linkageType: ''
    returnType: Vec
    signature: 'fn build<V: Serialize + ?Sized>(value: &V, opts: &JsonSetOptions)
      -> Vec<Vec<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 435
    functionName: tests::json_value_with_default_options_writes_serialized_document_only
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn json_value_with_default_options_writes_serialized_document_only()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/src/commands/json.rs:439,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/src/commands/json.rs:439,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/src/commands/json.rs:439,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/src/commands/json.rs:442,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/src/commands/json.rs:442,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/src/commands/json.rs:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 446
      start: 438
    functionDepth: 40
    functionLinenumber: 438
    functionLinenumberEnd: 446
    functionName: tests::json_set_options_builder_is_order_independent
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - JsonSetOptions::default
    - Self::conditional_set
    - Self::fpha
    linkageType: ''
    returnType: void
    signature: fn json_set_options_builder_is_order_independent()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/commands/json.rs:451,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/commands/json.rs:452,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/commands/json.rs:453,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/commands/json.rs:454,1
    - Dst: build
      Src: /src/redis-rs/redis/src/commands/json.rs:456,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/src/commands/json.rs:456,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/src/commands/json.rs:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 461
      start: 449
    functionDepth: 40
    functionLinenumber: 449
    functionLinenumberEnd: 461
    functionName: tests::fpha_type_writes_expected_bytes
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - JsonSetOptions::default
    - '&str::as_slice'
    - build
    - Self::fpha
    linkageType: ''
    returnType: void
    signature: fn fpha_type_writes_expected_bytes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build
      Src: /src/redis-rs/redis/src/commands/json.rs:465,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/src/commands/json.rs:467,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/src/commands/json.rs:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 471
      start: 464
    functionDepth: 40
    functionLinenumber: 464
    functionLinenumberEnd: 471
    functionName: tests::conditional_set_nx_appends_existence_check
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - JsonSetOptions::default
    - Self::conditional_set
    - build
    linkageType: ''
    returnType: void
    signature: fn conditional_set_nx_appends_existence_check()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build
      Src: /src/redis-rs/redis/src/commands/json.rs:475,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/src/commands/json.rs:477,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/src/commands/json.rs:477,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/src/commands/json.rs:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 474
    functionDepth: 40
    functionLinenumber: 474
    functionLinenumberEnd: 487
    functionName: tests::fpha_with_existence_check_orders_value_then_existence_check_then_fpha_type
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - JsonSetOptions::default
    - Self::conditional_set
    - build
    - Self::fpha
    linkageType: ''
    returnType: void
    signature: fn fpha_with_existence_check_orders_value_then_existence_check_then_fpha_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build
      Src: /src/redis-rs/redis/src/commands/json.rs:491,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/src/commands/json.rs:491,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/src/commands/json.rs:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 496
      start: 490
    functionDepth: 40
    functionLinenumber: 490
    functionLinenumberEnd: 496
    functionName: tests::fpha_empty_payload_still_emits_fpha_type
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - JsonSetOptions::default
    - build
    - Self::fpha
    linkageType: ''
    returnType: void
    signature: fn fpha_empty_payload_still_emits_fpha_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build
      Src: /src/redis-rs/redis/src/commands/json.rs:501,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/src/commands/json.rs:501,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/src/commands/json.rs:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 506
      start: 499
    functionDepth: 40
    functionLinenumber: 499
    functionLinenumberEnd: 506
    functionName: tests::fpha_with_matrix_emits_nested_json_and_fpha_type
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - JsonSetOptions::default
    - build
    - Self::fpha
    linkageType: ''
    returnType: void
    signature: fn fpha_with_matrix_emits_nested_json_and_fpha_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build
      Src: /src/redis-rs/redis/src/commands/json.rs:511,1
    - Dst: JsonSetOptions::default
      Src: /src/redis-rs/redis/src/commands/json.rs:511,1
    - Dst: Self::fpha
      Src: /src/redis-rs/redis/src/commands/json.rs:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 515
      start: 509
    functionDepth: 40
    functionLinenumber: 509
    functionLinenumberEnd: 515
    functionName: tests::json_object_properly_serialized_with_value_and_fpha_type
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached:
    - JsonSetOptions::default
    - build
    - Self::fpha
    linkageType: ''
    returnType: void
    signature: fn json_object_properly_serialized_with_value_and_fpha_type()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/commands/acl.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 10
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 10
    functionName: not_convertible_error
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - ParsingError::from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:85,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:86,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:88,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:89,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:90,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:91,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:92,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:93,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:95,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:96,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:97,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:98,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:99,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:100,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:102,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:103,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:104,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:105,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:106,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/acl.rs:107,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:117,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/acl.rs:119,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/acl.rs:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 121
      start: 78
    functionDepth: 45
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: Rule::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - as_bytes
    - write_arg_fmt
    linkageType: ''
    returnType: void
    signature: 'fn write_redis_args<W>(&self, out: &mut W)whereW: ?Sized + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/commands/acl.rs:173,1
    - Dst: trim
      Src: /src/redis-rs/redis/src/commands/acl.rs:173,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:173,1
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/commands/acl.rs:174,1
    - Dst: TlsFilePaths::starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:174,1
    - Dst: TlsFilePaths::ends_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:174,1
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/commands/acl.rs:175,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:175,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:180,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:180,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/acl.rs:186,1
    - Dst: impl combine::Parser::as_sequence
      Src: /src/redis-rs/redis/src/commands/acl.rs:188,1
    - Dst: Option::ok_or_else
      Src: /src/redis-rs/redis/src/commands/acl.rs:188,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:191,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:188,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:188,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/src/commands/acl.rs:195,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:196,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:197,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:198,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:199,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:200,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:201,1
    - Dst: Rule::Other
      Src: /src/redis-rs/redis/src/commands/acl.rs:201,1
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/src/commands/acl.rs:201,1
    - Dst: into_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:201,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:203,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:203,1
    - Dst: "as_sequence()\n                    .ok_or_else(|| {\n                \
        \        not_convertible_error!(value, \"Expect an array response of ACL flags\"\
        )\n                    })?\n                    .iter()\n                \
        \    .map(|flag| match flag {\n                        Value::BulkString(flag)\
        \ => match flag.as_slice() {\n                            b\"on\" => Ok(Rule::On),\n\
        \                            b\"off\" => Ok(Rule::Off),\n                \
        \            b\"allkeys\" => Ok(Rule::AllKeys),\n                        \
        \    b\"allcommands\" => Ok(Rule::AllCommands),\n                        \
        \    b\"nopass\" => Ok(Rule::NoPass),\n                            other =>\
        \ Ok(Rule::Other(String::from_utf8_lossy(other).into_owned())),\n        \
        \                },\n                        _ => Err(not_convertible_error!(\n\
        \                            flag,\n                            \"Expect an\
        \ arbitrary binary data\"\n                        )),\n                 \
        \   })\n                    .collect::<Result<_, _>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:188,1
    - Dst: impl combine::Parser::as_sequence
      Src: /src/redis-rs/redis/src/commands/acl.rs:212,1
    - Dst: Option::ok_or_else
      Src: /src/redis-rs/redis/src/commands/acl.rs:212,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:215,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:212,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:212,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/acl.rs:219,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:220,1
    - Dst: Rule::AddHashedPass
      Src: /src/redis-rs/redis/src/commands/acl.rs:220,1
    - Dst: "as_sequence()\n                    .ok_or_else(|| {\n                \
        \        not_convertible_error!(value, \"Expect an array response of ACL passwords\"\
        )\n                    })?\n                    .iter()\n                \
        \    .map(|pass| {\n                        let s = String::from_redis_value_ref(pass)?;\n\
        \                        Ok(Rule::AddHashedPass(s))\n                    })\n\
        \                    .collect::<Result<_, ParsingError>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:212,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/commands/acl.rs:227,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:229,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:229,1
    - Dst: split_terminator
      Src: /src/redis-rs/redis/src/commands/acl.rs:226,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:226,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:237,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:237,1
    - Dst: Rule::AddCategory
      Src: /src/redis-rs/redis/src/commands/acl.rs:237,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:237,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:238,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:238,1
    - Dst: Rule::RemoveCategory
      Src: /src/redis-rs/redis/src/commands/acl.rs:238,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:238,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:239,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:239,1
    - Dst: Rule::AddCommand
      Src: /src/redis-rs/redis/src/commands/acl.rs:239,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:239,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:240,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:240,1
    - Dst: Rule::RemoveCommand
      Src: /src/redis-rs/redis/src/commands/acl.rs:240,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:240,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:241,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:241,1
    - Dst: "split_terminator(' ')\n                .map(|cmd| match cmd {\n      \
        \              x if x.starts_with(\"+@\") => Ok(Rule::AddCategory(x[2..].to_owned())),\n\
        \                    x if x.starts_with(\"-@\") => Ok(Rule::RemoveCategory(x[2..].to_owned())),\n\
        \                    x if x.starts_with('+') => Ok(Rule::AddCommand(x[1..].to_owned())),\n\
        \                    x if x.starts_with('-') => Ok(Rule::RemoveCommand(x[1..].to_owned())),\n\
        \                    _ => Err(not_convertible_error!(\n                  \
        \      cmd,\n                        \"Expect a command addition/removal\"\
        \n                    )),\n                })\n                .collect::<Result<_,\
        \ _>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:226,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:251,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:251,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/acl.rs:254,1
    - Dst: TlsFilePaths::as_str
      Src: /src/redis-rs/redis/src/commands/acl.rs:255,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:256,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:257,1
    - Dst: Rule::Pattern
      Src: /src/redis-rs/redis/src/commands/acl.rs:257,1
    - Dst: "iter()\n                        .map(|pat| {\n                       \
        \     let s = String::from_redis_value_ref(pat)?;\n                      \
        \      match s.as_str() {\n                                \"*\" => Ok(Rule::AllKeys),\n\
        \                                _ => Ok(Rule::Pattern(s)),\n            \
        \                }\n                        })\n                        .collect::<Result<_,\
        \ ParsingError>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:251,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/commands/acl.rs:262,1
    - Dst: TlsFilePaths::trim
      Src: /src/redis-rs/redis/src/commands/acl.rs:263,1
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/commands/acl.rs:264,1
    - Dst: TlsFilePaths::starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:264,1
    - Dst: TlsFilePaths::ends_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:264,1
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/commands/acl.rs:265,1
    - Dst: TlsFilePaths::split_whitespace
      Src: /src/redis-rs/redis/src/commands/acl.rs:267,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:267,1
    - Dst: strip_prefix
      Src: /src/redis-rs/redis/src/commands/acl.rs:269,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:275,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:276,1
    - Dst: Rule::Pattern
      Src: /src/redis-rs/redis/src/commands/acl.rs:276,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:276,1
    - Dst: "split_whitespace()\n                            .map(|tok| {\n       \
        \                         let tok = if let Some(tok) = tok.strip_prefix('~')\
        \ {\n                                    tok\n                           \
        \     } else {\n                                    tok\n                \
        \                };\n                                match tok {\n       \
        \                             \"*\" => Ok(Rule::AllKeys),\n              \
        \                      _ => Ok(Rule::Pattern(tok.to_owned())),\n         \
        \                       }\n                            })\n              \
        \              .collect::<Result<_, ParsingError>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:267,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:282,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:282,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:292,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:292,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/acl.rs:295,1
    - Dst: TlsFilePaths::strip_prefix
      Src: /src/redis-rs/redis/src/commands/acl.rs:296,1
    - Dst: TlsFilePaths::to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:297,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:301,1
    - Dst: Rule::Channel
      Src: /src/redis-rs/redis/src/commands/acl.rs:301,1
    - Dst: "iter()\n                        .map(|pat| {\n                       \
        \     let s = String::from_redis_value_ref(pat)?;\n                      \
        \      let s = if let Some(s) = s.strip_prefix('&') {\n                  \
        \              s.to_owned()\n                            } else {\n      \
        \                          s\n                            };\n           \
        \                 Ok(Rule::Channel(s))\n                        })\n     \
        \                   .collect::<Result<_, ParsingError>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:292,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/commands/acl.rs:305,1
    - Dst: TlsFilePaths::trim
      Src: /src/redis-rs/redis/src/commands/acl.rs:306,1
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/commands/acl.rs:307,1
    - Dst: TlsFilePaths::starts_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:307,1
    - Dst: TlsFilePaths::ends_with
      Src: /src/redis-rs/redis/src/commands/acl.rs:307,1
    - Dst: TlsFilePaths::len
      Src: /src/redis-rs/redis/src/commands/acl.rs:308,1
    - Dst: TlsFilePaths::split_whitespace
      Src: /src/redis-rs/redis/src/commands/acl.rs:310,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:310,1
    - Dst: strip_prefix
      Src: /src/redis-rs/redis/src/commands/acl.rs:312,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:317,1
    - Dst: Rule::Channel
      Src: /src/redis-rs/redis/src/commands/acl.rs:317,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/commands/acl.rs:317,1
    - Dst: "split_whitespace()\n                            .map(|tok| {\n       \
        \                         let tok = if let Some(tok) = tok.strip_prefix('&')\
        \ {\n                                    tok\n                           \
        \     } else {\n                                    tok\n                \
        \                };\n                                Ok(Rule::Channel(tok.to_owned()))\n\
        \                            })\n                            .collect::<Result<_,\
        \ ParsingError>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:310,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:322,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:322,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:335,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/acl.rs:335,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/acl.rs:338,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:339,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/commands/acl.rs:339,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/commands/acl.rs:339,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/commands/acl.rs:339,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/acl.rs:339,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:346,1
    - Dst: "iter()\n                        .map(|pat| {\n                       \
        \     let acl: Self = FromRedisValue::from_redis_value_ref(pat)?;\n      \
        \                      let selector = acl\n                              \
        \  .flags\n                                .into_iter()\n                \
        \                .chain(acl.commands)\n                                .chain(acl.channels)\n\
        \                                .chain(acl.keys)\n                      \
        \          .collect();\n                            Ok(selector)\n       \
        \                 })\n                        .collect::<Result<Vec<Vec<Rule>>,\
        \ ParsingError>>"
      Src: /src/redis-rs/redis/src/commands/acl.rs:335,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:350,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:350,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:356,1
    - Dst: flatten
      Src: /src/redis-rs/redis/src/commands/acl.rs:356,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/acl.rs:356,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:360,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 309
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - '&Value'
    - '&Value'
    constantsTouched: []
    func_position:
      end: 361
      start: 168
    functionDepth: 40
    functionLinenumber: 168
    functionLinenumberEnd: 361
    functionName: AclInfo::handle_pair
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - Rule::AddCategory
    - TlsFilePaths::split_whitespace
    - flatten
    - Err
    - "split_whitespace()\n                            .map(|tok| {\n            \
      \                    let tok = if let Some(tok) = tok.strip_prefix('~') {\n\
      \                                    tok\n                                }\
      \ else {\n                                    tok\n                        \
      \        };\n                                match tok {\n                 \
      \                   \"*\" => Ok(Rule::AllKeys),\n                          \
      \          _ => Ok(Rule::Pattern(tok.to_owned())),\n                       \
      \         }\n                            })\n                            .collect::<Result<_,\
      \ ParsingError>>"
    - Rule::Other
    - to_owned
    - String::from_utf8_lossy
    - starts_with
    - Ok
    - "split_whitespace()\n                            .map(|tok| {\n            \
      \                    let tok = if let Some(tok) = tok.strip_prefix('&') {\n\
      \                                    tok\n                                }\
      \ else {\n                                    tok\n                        \
      \        };\n                                Ok(Rule::Channel(tok.to_owned()))\n\
      \                            })\n                            .collect::<Result<_,\
      \ ParsingError>>"
    - strip_prefix
    - TlsFilePaths::trim
    - TlsFilePaths::strip_prefix
    - Rule::Pattern
    - TlsFilePaths::len
    - collect
    - Rule::AddHashedPass
    - "split_terminator(' ')\n                .map(|cmd| match cmd {\n           \
      \         x if x.starts_with(\"+@\") => Ok(Rule::AddCategory(x[2..].to_owned())),\n\
      \                    x if x.starts_with(\"-@\") => Ok(Rule::RemoveCategory(x[2..].to_owned())),\n\
      \                    x if x.starts_with('+') => Ok(Rule::AddCommand(x[1..].to_owned())),\n\
      \                    x if x.starts_with('-') => Ok(Rule::RemoveCommand(x[1..].to_owned())),\n\
      \                    _ => Err(not_convertible_error!(\n                    \
      \    cmd,\n                        \"Expect a command addition/removal\"\n \
      \                   )),\n                })\n                .collect::<Result<_,\
      \ _>>"
    - map
    - "as_sequence()\n                    .ok_or_else(|| {\n                     \
      \   not_convertible_error!(value, \"Expect an array response of ACL passwords\"\
      )\n                    })?\n                    .iter()\n                  \
      \  .map(|pass| {\n                        let s = String::from_redis_value_ref(pass)?;\n\
      \                        Ok(Rule::AddHashedPass(s))\n                    })\n\
      \                    .collect::<Result<_, ParsingError>>"
    - as_slice
    - into_iter
    - iter
    - Rule::RemoveCommand
    - TlsFilePaths::to_owned
    - split_terminator
    - Rule::Channel
    - std::str::from_utf8
    - Rule::AddCommand
    - "iter()\n                        .map(|pat| {\n                            let\
      \ s = String::from_redis_value_ref(pat)?;\n                            match\
      \ s.as_str() {\n                                \"*\" => Ok(Rule::AllKeys),\n\
      \                                _ => Ok(Rule::Pattern(s)),\n              \
      \              }\n                        })\n                        .collect::<Result<_,\
      \ ParsingError>>"
    - "as_sequence()\n                    .ok_or_else(|| {\n                     \
      \   not_convertible_error!(value, \"Expect an array response of ACL flags\"\
      )\n                    })?\n                    .iter()\n                  \
      \  .map(|flag| match flag {\n                        Value::BulkString(flag)\
      \ => match flag.as_slice() {\n                            b\"on\" => Ok(Rule::On),\n\
      \                            b\"off\" => Ok(Rule::Off),\n                  \
      \          b\"allkeys\" => Ok(Rule::AllKeys),\n                            b\"\
      allcommands\" => Ok(Rule::AllCommands),\n                            b\"nopass\"\
      \ => Ok(Rule::NoPass),\n                            other => Ok(Rule::Other(String::from_utf8_lossy(other).into_owned())),\n\
      \                        },\n                        _ => Err(not_convertible_error!(\n\
      \                            flag,\n                            \"Expect an\
      \ arbitrary binary data\"\n                        )),\n                   \
      \ })\n                    .collect::<Result<_, _>>"
    - String::from_redis_value_ref
    - trim
    - impl combine::Parser::as_sequence
    - "iter()\n                        .map(|pat| {\n                            let\
      \ s = String::from_redis_value_ref(pat)?;\n                            let s\
      \ = if let Some(s) = s.strip_prefix('&') {\n                               \
      \ s.to_owned()\n                            } else {\n                     \
      \           s\n                            };\n                            Ok(Rule::Channel(s))\n\
      \                        })\n                        .collect::<Result<_, ParsingError>>"
    - FromRedisValue::from_redis_value_ref
    - TlsFilePaths::ends_with
    - not_convertible_error
    - into_owned
    - "iter()\n                        .map(|pat| {\n                            let\
      \ acl: Self = FromRedisValue::from_redis_value_ref(pat)?;\n                \
      \            let selector = acl\n                                .flags\n  \
      \                              .into_iter()\n                              \
      \  .chain(acl.commands)\n                                .chain(acl.channels)\n\
      \                                .chain(acl.keys)\n                        \
      \        .collect();\n                            Ok(selector)\n           \
      \             })\n                        .collect::<Result<Vec<Vec<Rule>>,\
      \ ParsingError>>"
    - as_str
    - TlsFilePaths::as_str
    - Option::ok_or_else
    - chain
    - TlsFilePaths::starts_with
    - Rule::RemoveCategory
    linkageType: ''
    returnType: Result
    signature: 'fn handle_pair(&mut self, name: &Value, value: &Value) -> Result<(),
      ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::default
      Src: /src/redis-rs/redis/src/commands/acl.rs:365,1
    - Dst: Option::as_map_iter
      Src: /src/redis-rs/redis/src/commands/acl.rs:368,1
    - Dst: Self::handle_pair
      Src: /src/redis-rs/redis/src/commands/acl.rs:370,1
    - Dst: Option::as_sequence
      Src: /src/redis-rs/redis/src/commands/acl.rs:372,1
    - Dst: len
      Src: /src/redis-rs/redis/src/commands/acl.rs:374,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:375,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:375,1
    - Dst: as_chunks::<2>
      Src: /src/redis-rs/redis/src/commands/acl.rs:377,1
    - Dst: Self::handle_pair
      Src: /src/redis-rs/redis/src/commands/acl.rs:380,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/acl.rs:383,1
    - Dst: not_convertible_error
      Src: /src/redis-rs/redis/src/commands/acl.rs:383,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/acl.rs:385,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 40
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 386
      start: 364
    functionDepth: 40
    functionLinenumber: 364
    functionLinenumberEnd: 386
    functionName: AclInfo::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - Option::as_map_iter
    - Self::default
    - len
    - not_convertible_error
    - Err
    - Ok
    - Option::as_sequence
    - as_chunks::<2>
    - Self::handle_pair
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:402,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:403,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:404,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:405,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:406,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:407,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:408,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:409,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:410,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:411,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:412,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:418,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:424,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:425,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:426,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:427,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:428,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:429,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:430,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/acl.rs:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 438
      start: 399
    functionDepth: 41
    functionLinenumber: 399
    functionLinenumberEnd: 438
    functionName: tests::test_rule_to_arg
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - assert_args
    linkageType: ''
    returnType: void
    signature: fn test_rule_to_arg()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/acl.rs:442,1
    - Dst: AclInfo::from_redis_value_ref
      Src: /src/redis-rs/redis/src/commands/acl.rs:466,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis/src/commands/acl.rs:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 486
      start: 441
    functionDepth: 47
    functionLinenumber: 441
    functionLinenumberEnd: 486
    functionName: tests::test_from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - Result::expect
    - AclInfo::from_redis_value_ref
    - Value::Array
    linkageType: ''
    returnType: void
    signature: fn test_from_redis_value()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 9
      start: 5
    functionDepth: 0
    functionLinenumber: 5
    functionLinenumberEnd: 9
    functionName: main
    functionSourceFile: /src/redis-rs/afl/parser/src/main.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: fn main()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:24,1
    - Dst: tokio::time::interval
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:25,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:25,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:28,1
    - Dst: checked_duration_since
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:28,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:28,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:28,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:29,1
    - Dst: tick
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:31,1
    - Dst: future::join3
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:40,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:41,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:41,1
    - Dst: C::clone
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:41,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:42,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:42,1
    - Dst: C::clone
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:42,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:43,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/examples/async-connection-loss.rs:43,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 1
    argNames:
    - con
    argTypes:
    - C
    constantsTouched: []
    func_position:
      end: 50
      start: 23
    functionDepth: 44
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: run_multi
    functionSourceFile: /src/redis-rs/redis/examples/async-connection-loss.rs
    functionUses: 0
    functionsReached:
    - checked_duration_since
    - redis::cmd
    - Instant::now
    - tick
    - C::clone
    - future::join3
    - redis::Cmd::query_async
    - unwrap
    - Duration::from_millis
    - Ok
    - Duration::from_secs
    - tokio::time::interval
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn run_multi<C: ConnectionLike + Clone>(mut con: C) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/examples/streams.rs:44,1
    - Dst: push
      Src: /src/redis-rs/redis/examples/streams.rs:47,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/examples/streams.rs:47,1
    - Dst: add_records
      Src: /src/redis-rs/redis/examples/streams.rs:51,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/examples/streams.rs:51,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/examples/streams.rs:52,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/examples/streams.rs:52,1
    - Dst: random_wait_millis
      Src: /src/redis-rs/redis/examples/streams.rs:52,1
    - Dst: clone
      Src: /src/redis-rs/redis/examples/streams.rs:72,1
    - Dst: push
      Src: /src/redis-rs/redis/examples/streams.rs:73,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/examples/streams.rs:73,1
    - Dst: Result::get_connection
      Src: /src/redis-rs/redis/examples/streams.rs:74,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/examples/streams.rs:74,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/examples/streams.rs:80,1
    - Dst: read_group_records
      Src: /src/redis-rs/redis/examples/streams.rs:87,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/examples/streams.rs:87,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/examples/streams.rs:92,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/examples/streams.rs:92,1
    - Dst: random_wait_millis
      Src: /src/redis-rs/redis/examples/streams.rs:92,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/examples/streams.rs:107,1
    - Dst: map
      Src: /src/redis-rs/redis/examples/streams.rs:107,1
    - Dst: collect
      Src: /src/redis-rs/redis/examples/streams.rs:107,1
    - Dst: xack::<_, _, _, ()>
      Src: /src/redis-rs/redis/examples/streams.rs:108,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:108,1
    - Dst: join
      Src: /src/redis-rs/redis/examples/streams.rs:116,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:116,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 1
    argNames:
    - client
    argTypes:
    - '&redis::Client'
    constantsTouched: []
    func_position:
      end: 118
      start: 37
    functionDepth: 44
    functionLinenumber: 37
    functionLinenumberEnd: 118
    functionName: demo_group_reads
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - read_group_records
    - xack::<_, _, _, ()>
    - join
    - map
    - thread::spawn
    - clone
    - push
    - Result::get_connection
    - RedisResult::expect
    - Duration::from_millis
    - RedisResult::iter
    - add_records
    - thread::sleep
    - random_wait_millis
    - xgroup_create_mkstream
    - expect
    - collect
    linkageType: ''
    returnType: void
    signature: 'fn demo_group_reads(client: &redis::Client)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection
      Src: /src/redis-rs/redis/examples/streams.rs:123,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/examples/streams.rs:123,1
    - Dst: StreamMaxlen::Approx
      Src: /src/redis-rs/redis/examples/streams.rs:125,1
    - Dst: thrifty_rand
      Src: /src/redis-rs/redis/examples/streams.rs:128,1
    - Dst: xadd_maxlen
      Src: /src/redis-rs/redis/examples/streams.rs:129,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/examples/streams.rs:133,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/examples/streams.rs:133,1
    - Dst: thrifty_rand
      Src: /src/redis-rs/redis/examples/streams.rs:138,1
    - Dst: xadd_maxlen
      Src: /src/redis-rs/redis/examples/streams.rs:139,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/examples/streams.rs:144,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/examples/streams.rs:145,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/examples/streams.rs:146,1
    - Dst: thrifty_rand
      Src: /src/redis-rs/redis/examples/streams.rs:152,1
    - Dst: xadd_maxlen
      Src: /src/redis-rs/redis/examples/streams.rs:153,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/examples/streams.rs:158,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/examples/streams.rs:159,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/examples/streams.rs:160,1
    - Dst: arbitrary_value
      Src: /src/redis-rs/redis/examples/streams.rs:161,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/streams.rs:166,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 1
    argNames:
    - client
    argTypes:
    - '&redis::Client'
    constantsTouched: []
    func_position:
      end: 167
      start: 122
    functionDepth: 41
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: add_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - xadd_maxlen
    - thrifty_rand
    - RedisResult::expect
    - Ok
    - StreamMaxlen::Approx
    - get_connection
    - arbitrary_value
    linkageType: ''
    returnType: RedisResult
    signature: 'fn add_records(client: &redis::Client) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/examples/streams.rs:172,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/examples/streams.rs:172,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:172,1
    - Dst: as_nanos
      Src: /src/redis-rs/redis/examples/streams.rs:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: thrifty_rand
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - duration_since
    - as_nanos
    - SystemTime::now
    - expect
    linkageType: ''
    returnType: u8
    signature: fn thrifty_rand() -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: thrifty_rand
      Src: /src/redis-rs/redis/examples/streams.rs:182,1
    - Dst: thrifty_rand
      Src: /src/redis-rs/redis/examples/streams.rs:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - slowness
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 183
    functionName: random_wait_millis
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - thrifty_rand
    linkageType: ''
    returnType: u64
    signature: 'fn random_wait_millis(slowness: u8) -> u64'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection
      Src: /src/redis-rs/redis/examples/streams.rs:207,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/examples/streams.rs:207,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/examples/streams.rs:209,1
    - Dst: Self::block
      Src: /src/redis-rs/redis/examples/streams.rs:209,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/examples/streams.rs:216,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:216,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/streams.rs:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 1
    argNames:
    - client
    argTypes:
    - '&redis::Client'
    constantsTouched: []
    func_position:
      end: 235
      start: 206
    functionDepth: 41
    functionLinenumber: 206
    functionLinenumberEnd: 235
    functionName: read_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - StreamReadOptions::default
    - RedisResult::expect
    - Ok
    - xread_options
    - get_connection
    - Self::block
    - expect
    linkageType: ''
    returnType: RedisResult
    signature: 'fn read_records(client: &redis::Client) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - slowness
    argTypes:
    - u8
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: consumer_name
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: 'fn consumer_name(slowness: u8) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection
      Src: /src/redis-rs/redis/examples/streams.rs:244,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/examples/streams.rs:244,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/examples/streams.rs:246,1
    - Dst: Self::block
      Src: /src/redis-rs/redis/examples/streams.rs:246,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/examples/streams.rs:246,1
    - Dst: group
      Src: /src/redis-rs/redis/examples/streams.rs:246,1
    - Dst: consumer_name
      Src: /src/redis-rs/redis/examples/streams.rs:249,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/examples/streams.rs:251,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:251,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/streams.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - client
    - slowness
    argTypes:
    - '&redis::Client'
    - u8
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 41
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: read_group_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - group
    - consumer_name
    - Self::count
    - StreamReadOptions::default
    - RedisResult::expect
    - Ok
    - xread_options
    - get_connection
    - Self::block
    - expect
    linkageType: ''
    returnType: RedisResult
    signature: 'fn read_group_records(client: &redis::Client, slowness: u8) -> RedisResult<StreamReadReply>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection
      Src: /src/redis-rs/redis/examples/streams.rs:263,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/examples/streams.rs:263,1
    - Dst: xtrim
      Src: /src/redis-rs/redis/examples/streams.rs:265,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/examples/streams.rs:265,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:266,1
    - Dst: xgroup_destroy
      Src: /src/redis-rs/redis/examples/streams.rs:268,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - client
    argTypes:
    - '&redis::Client'
    constantsTouched: []
    func_position:
      end: 271
      start: 262
    functionDepth: 41
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: clean_up
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - xgroup_destroy
    - StreamMaxlen::Equals
    - RedisResult::expect
    - get_connection
    - xtrim
    - expect
    linkageType: ''
    returnType: void
    signature: 'fn clean_up(client: &redis::Client)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/acl.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: run
    functionSourceFile: /src/redis-rs/redis/examples/acl.rs
    functionUses: 1
    functionsReached:
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: fn run() -> RedisResult<()>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: abort
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: ProbeHandle::drop
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 0
    functionsReached:
    - abort
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpsc::unbounded_channel
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:57,1
    - Dst: watch::channel
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:58,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:58,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:60,1
    - Dst: ProbeHandle
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:60,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:60,1
    - Dst: probe_task
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - probe_interval
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 47
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: LatencyAwareFactory::new
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 0
    functionsReached:
    - HashMap::new
    - ProbeHandle
    - tokio::spawn
    - mpsc::unbounded_channel
    - Arc::new
    - probe_task
    - watch::channel
    linkageType: ''
    returnType: Self
    signature: 'fn new(probe_interval: Duration) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::new
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:76,1
    - Dst: clone
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:77,1
    - Dst: clone
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:78,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 39
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: LatencyAwareFactory::create_strategy
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 0
    functionsReached:
    - Arc::clone
    - clone
    - Box::new
    linkageType: ''
    returnType: Box
    signature: fn create_strategy(&self) -> Box<dyn ReadRoutingStrategy>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: send
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - topology
    argTypes:
    - ClusterTopology
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: LatencyAwareStrategy::on_topology_changed
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 0
    functionsReached:
    - send
    linkageType: ''
    returnType: void
    signature: 'fn on_topology_changed(&self, topology: ClusterTopology)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: borrow
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:104,1
    - Dst: get
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:106,1
    - Dst: to_string
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:107,1
    - Dst: copied
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:106,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:106,1
    - Dst: std::iter::once
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:112,1
    - Dst: primary
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:112,1
    - Dst: chain
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:112,1
    - Dst: replicas
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:113,1
    - Dst: iter
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:113,1
    - Dst: min_by_key
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:112,1
    - Dst: latency_of
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:114,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:112,1
    - Dst: replicas
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:116,1
    - Dst: iter
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:116,1
    - Dst: min_by_key
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:116,1
    - Dst: latency_of
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:119,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 1
    argNames:
    - candidates
    argTypes:
    - '&ReadCandidates<''a>'
    constantsTouched: []
    func_position:
      end: 122
      start: 103
    functionDepth: 41
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: LatencyAwareStrategy::route_read
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 0
    functionsReached:
    - get
    - to_string
    - copied
    - std::iter::once
    - unwrap_or
    - min_by_key
    - replicas
    - latency_of
    - iter
    - primary
    - chain
    - expect
    - borrow
    linkageType: ''
    returnType: '&''a NodeAddress'
    signature: 'fn route_read<''a>(&self, candidates: &ReadCandidates<''a>) -> &''a
      NodeAddress'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:138,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:140,1
    - Dst: mpsc::UnboundedReceiver<ClusterTopology>::try_recv
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:146,1
    - Dst: Some
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:147,1
    - Dst: unique_addresses
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:153,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:161,1
    - Dst: mpsc::UnboundedReceiver<ClusterTopology>::recv
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:163,1
    - Dst: unique_addresses
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:165,1
    - Dst: contains_key
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:178,1
    - Dst: ConnectionAddr::as_str
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:178,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:179,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:180,1
    - Dst: insert
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:182,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:182,1
    - Dst: iter
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:196,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:196,1
    - Dst: get
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:199,1
    - Dst: ConnectionAddr::as_str
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:199,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:199,1
    - Dst: clone
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:200,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:201,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:203,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:204,1
    - Dst: redis::Cmd::exec_async
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:204,1
    - Dst: map
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:205,1
    - Dst: elapsed
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:205,1
    - Dst: collect
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:196,1
    - Dst: futures::future::join_all
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:210,1
    - Dst: HashMap::with_capacity
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:212,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:212,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:216,1
    - Dst: remove
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:221,1
    - Dst: ConnectionAddr::as_str
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:221,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:227,1
    - Dst: collect
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:227,1
    - Dst: sort_by_key
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:228,1
    - Dst: watch::Sender<LatencySnapshot>::send
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:235,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:237,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 128
    argCount: 3
    argNames:
    - topology_rx
    - latency_tx
    - probe_interval
    argTypes:
    - mpsc::UnboundedReceiver<ClusterTopology>
    - watch::Sender<LatencySnapshot>
    - Duration
    constantsTouched: []
    func_position:
      end: 239
      start: 133
    functionDepth: 39
    functionLinenumber: 133
    functionLinenumberEnd: 239
    functionName: probe_task
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 1
    functionsReached:
    - elapsed
    - tokio::time::sleep
    - Self::insert
    - HashMap::with_capacity
    - sort_by_key
    - ConnectionAddr::clone
    - mpsc::UnboundedReceiver<ClusterTopology>::recv
    - Some
    - RedisResult::len
    - collect
    - HashMap::new
    - Instant::now
    - Option::map
    - map
    - redis::Cmd::exec_async
    - clone
    - iter
    - mpsc::UnboundedReceiver<ClusterTopology>::try_recv
    - get_multiplexed_async_connection
    - get
    - remove
    - redis::Client::open
    - ConnectionAddr::as_str
    - HashSet::new
    - watch::Sender<LatencySnapshot>::send
    - Self::iter
    - is_empty
    - futures::future::join_all
    - insert
    - redis::cmd
    - contains_key
    - filter_map
    - unique_addresses
    linkageType: ''
    returnType: void
    signature: 'async fn probe_task(mut topology_rx: mpsc::UnboundedReceiver<ClusterTopology>,latency_tx:
      watch::Sender<LatencySnapshot>,probe_interval: Duration,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:243,1
    - Dst: ClusterTopology::shards
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:244,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:245,1
    - Dst: primary
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:245,1
    - Dst: to_string
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:245,1
    - Dst: replicas
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:246,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:247,1
    - Dst: Result::to_string
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - topology
    argTypes:
    - '&ClusterTopology'
    constantsTouched: []
    func_position:
      end: 251
      start: 242
    functionDepth: 39
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: unique_addresses
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 3
    functionsReached:
    - ClusterTopology::shards
    - to_string
    - Result::to_string
    - Self::insert
    - replicas
    - HashSet::new
    - primary
    linkageType: ''
    returnType: HashSet
    signature: 'fn unique_addresses(topology: &ClusterTopology) -> HashSet<String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::clone
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:5,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:11,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:11,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:11,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:11,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:17,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:17,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:17,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:22,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:22,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:22,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:22,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/async-multiplexed.rs:27,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 2
    argNames:
    - con
    - i
    argTypes:
    - '&MultiplexedConnection'
    - i32
    constantsTouched: []
    func_position:
      end: 30
      start: 4
    functionDepth: 47
    functionLinenumber: 4
    functionLinenumberEnd: 30
    functionName: test_cmd
    functionSourceFile: /src/redis-rs/redis/examples/async-multiplexed.rs
    functionUses: 1
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - '&mut Self::exec_async'
    - '&mut Self::query_async'
    - Ok
    - Self::clone
    - RedisResult::map
    - exec_async
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn test_cmd(con: &MultiplexedConnection, i: i32) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::bf_add'
      Src: /src/redis-rs/redis/examples/bloom.rs:20,1
    - Dst: '&mut Connection::bf_madd'
      Src: /src/redis-rs/redis/examples/bloom.rs:23,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/bloom.rs:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 26
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 26
    functionName: add_elements
    functionSourceFile: /src/redis-rs/redis/examples/bloom.rs
    functionUses: 0
    functionsReached:
    - '&mut Connection::bf_add'
    - Ok
    - '&mut Connection::bf_madd'
    linkageType: ''
    returnType: RedisResult
    signature: 'fn add_elements(con: &mut Connection) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::bf_exists'
      Src: /src/redis-rs/redis/examples/bloom.rs:32,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/bloom.rs:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: check_membership
    functionSourceFile: /src/redis-rs/redis/examples/bloom.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&mut Connection::bf_exists'
    linkageType: ''
    returnType: RedisResult
    signature: 'fn check_membership(con: &mut Connection) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: BloomFilterDumpIterator::new
      Src: /src/redis-rs/redis/examples/bloom.rs:43,1
    - Dst: Self::map
      Src: /src/redis-rs/redis/examples/bloom.rs:43,1
    - Dst: ConnectionAddr::expect
      Src: /src/redis-rs/redis/examples/bloom.rs:44,1
    - Dst: "map(|r| r.expect(\"dump should succeed\"))\n        .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/examples/bloom.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 43
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: dump
    functionSourceFile: /src/redis-rs/redis/examples/bloom.rs
    functionUses: 2
    functionsReached:
    - Self::map
    - "map(|r| r.expect(\"dump should succeed\"))\n        .collect::<Vec<_>>"
    - ConnectionAddr::expect
    - BloomFilterDumpIterator::new
    linkageType: ''
    returnType: Vec
    signature: 'fn dump(con: &mut Connection) -> Vec<BloomFilterDumpChunk>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::bf_loadchunk'
      Src: /src/redis-rs/redis/examples/bloom.rs:52,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/bloom.rs:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - con
    - dump
    argTypes:
    - '&mut Connection'
    - Vec<BloomFilterDumpChunk>
    constantsTouched: []
    func_position:
      end: 56
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 56
    functionName: load
    functionSourceFile: /src/redis-rs/redis/examples/bloom.rs
    functionUses: 28
    functionsReached:
    - '&mut Connection::bf_loadchunk'
    - Ok
    linkageType: ''
    returnType: RedisResult
    signature: 'fn load(con: &mut Connection, dump: Vec<BloomFilterDumpChunk>) ->
      RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut Connection::del'
      Src: /src/redis-rs/redis/examples/bloom.rs:61,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/bloom.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 40
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: cleanup
    functionSourceFile: /src/redis-rs/redis/examples/bloom.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&mut Connection::del'
    linkageType: ''
    returnType: RedisResult
    signature: 'fn cleanup(con: &mut Connection) -> RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/basic.rs:14,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/examples/basic.rs:14,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/examples/basic.rs:14,1
    - Dst: query
      Src: /src/redis-rs/redis/examples/basic.rs:14,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/basic.rs:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut redis::Connection'
    constantsTouched: []
    func_position:
      end: 39
      start: 10
    functionDepth: 47
    functionLinenumber: 10
    functionLinenumberEnd: 39
    functionName: do_print_max_entry_limits
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - Ok
    - query
    linkageType: ''
    returnType: redis::RedisResult
    signature: 'fn do_print_max_entry_limits(con: &mut redis::Connection) -> redis::RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/examples/basic.rs:48,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/examples/basic.rs:50,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/examples/basic.rs:50,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/examples/basic.rs:50,1
    - Dst: ignore
      Src: /src/redis-rs/redis/examples/basic.rs:50,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/examples/basic.rs:55,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/basic.rs:59,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/examples/basic.rs:60,1
    - Dst: '&mut Self::cursor_arg'
      Src: /src/redis-rs/redis/examples/basic.rs:60,1
    - Dst: iter::<i32>
      Src: /src/redis-rs/redis/examples/basic.rs:62,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/basic.rs:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut redis::Connection'
    constantsTouched: []
    func_position:
      end: 73
      start: 44
    functionDepth: 47
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: do_show_scanning
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Pipeline::cmd
    - redis::cmd
    - iter::<i32>
    - '&mut Self::arg'
    - redis::Cmd::arg
    - Pipeline::exec
    - '&mut Self::cursor_arg'
    - Cmd::arg
    - ignore
    - Ok
    linkageType: ''
    returnType: redis::RedisResult
    signature: 'fn do_show_scanning(con: &mut redis::Connection) -> redis::RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/basic.rs:81,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/examples/basic.rs:81,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/examples/basic.rs:81,1
    - Dst: exec
      Src: /src/redis-rs/redis/examples/basic.rs:81,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/basic.rs:86,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/examples/basic.rs:86,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/examples/basic.rs:86,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/examples/basic.rs:89,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/examples/basic.rs:89,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/examples/basic.rs:89,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/examples/basic.rs:93,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/examples/basic.rs:93,1
    - Dst: '&mut Self::cmd'
      Src: /src/redis-rs/redis/examples/basic.rs:93,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/examples/basic.rs:93,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/examples/basic.rs:93,1
    - Dst: ignore
      Src: /src/redis-rs/redis/examples/basic.rs:93,1
    - Dst: cmd
      Src: /src/redis-rs/redis/examples/basic.rs:93,1
    - Dst: arg
      Src: /src/redis-rs/redis/examples/basic.rs:93,1
    - Dst: query
      Src: /src/redis-rs/redis/examples/basic.rs:93,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/basic.rs:115,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 53
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut redis::Connection'
    constantsTouched: []
    func_position:
      end: 116
      start: 76
    functionDepth: 47
    functionLinenumber: 76
    functionLinenumberEnd: 116
    functionName: do_atomic_increment_lowlevel
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - redis::Pipeline::atomic
    - arg
    - '&mut Self::cmd'
    - '&mut Self::query'
    - ignore
    - exec
    - Ok
    - query
    - '&mut Self::exec'
    - cmd
    linkageType: ''
    returnType: redis::RedisResult
    signature: 'fn do_atomic_increment_lowlevel(con: &mut redis::Connection) -> redis::RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut redis::Connection::set'
      Src: /src/redis-rs/redis/examples/basic.rs:124,1
    - Dst: redis::transaction
      Src: /src/redis-rs/redis/examples/basic.rs:127,1
    - Dst: '&mut redis::Connection::get'
      Src: /src/redis-rs/redis/examples/basic.rs:129,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/examples/basic.rs:131,1
    - Dst: ignore
      Src: /src/redis-rs/redis/examples/basic.rs:131,1
    - Dst: get
      Src: /src/redis-rs/redis/examples/basic.rs:131,1
    - Dst: query
      Src: /src/redis-rs/redis/examples/basic.rs:131,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/basic.rs:137,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut redis::Connection'
    constantsTouched: []
    func_position:
      end: 138
      start: 119
    functionDepth: 48
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: do_atomic_increment
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - '&mut redis::Connection::get'
    - get
    - Pipeline::set
    - ignore
    - '&mut redis::Connection::set'
    - Ok
    - query
    - redis::transaction
    linkageType: ''
    returnType: redis::RedisResult
    signature: 'fn do_atomic_increment(con: &mut redis::Connection) -> redis::RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/examples/basic.rs:143,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/examples/basic.rs:144,1
    - Dst: do_print_max_entry_limits
      Src: /src/redis-rs/redis/examples/basic.rs:147,1
    - Dst: do_show_scanning
      Src: /src/redis-rs/redis/examples/basic.rs:150,1
    - Dst: do_atomic_increment_lowlevel
      Src: /src/redis-rs/redis/examples/basic.rs:153,1
    - Dst: do_atomic_increment
      Src: /src/redis-rs/redis/examples/basic.rs:154,1
    - Dst: Ok
      Src: /src/redis-rs/redis/examples/basic.rs:156,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - url
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 157
      start: 141
    functionDepth: 41
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: do_redis_code
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::Client::open
    - do_atomic_increment_lowlevel
    - Ok
    - do_show_scanning
    - do_print_max_entry_limits
    - get_connection
    - do_atomic_increment
    linkageType: ''
    returnType: redis::RedisResult
    signature: 'fn do_redis_code(url: &str) -> redis::RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:19,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:21,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:22,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:23,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:23,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:23,1
    - Dst: exec
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:23,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:23,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:24,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:28,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:29,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:29,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:29,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:29,1
    - Dst: arg(key).query::<isize>
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:29,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:29,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:33,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:33,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:33,1
    - Dst: exec
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:33,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:33,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:34,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:34,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:34,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:34,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:36,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:37,1
    - Dst: set_and_del
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:38,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:39,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 2
    argNames:
    - c
    - con
    argTypes:
    - '&mut Criterion'
    - '&mut redis::cluster::ClusterConnection'
    constantsTouched: []
    func_position:
      end: 44
      start: 16
    functionDepth: 40
    functionLinenumber: 16
    functionLinenumberEnd: 44
    functionName: bench_set_get_and_del
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - std::hint::black_box
    - redis::Cmd::arg
    - '&mut Self::arg'
    - benchmark_group
    - arg(key).query::<isize>
    - set_and_del
    - i64::iter
    - bench_function
    - exec
    - unwrap
    - '&mut Self::exec'
    - finish
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_set_get_and_del(c: &mut Criterion, con: &mut redis::cluster::ClusterConnection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:47,1
    - Dst: throughput
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:48,1
    - Dst: Throughput::Elements
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:48,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:50,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:52,1
    - Dst: redis::cluster::cluster_pipe
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:56,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:58,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:58,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:61,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:62,1
    - Dst: build_pipeline
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:63,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:64,1
    - Dst: redis::cluster::cluster_pipe
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:68,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:70,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:70,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:72,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:73,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:74,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:74,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:75,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 65
    argCount: 2
    argNames:
    - c
    - con
    argTypes:
    - '&mut Criterion'
    - '&mut redis::cluster::ClusterConnection'
    constantsTouched: []
    func_position:
      end: 80
      start: 46
    functionDepth: 39
    functionLinenumber: 46
    functionLinenumberEnd: 80
    functionName: bench_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - std::hint::black_box
    - Pipeline::exec
    - benchmark_group
    - Throughput::Elements
    - Self::push
    - build_pipeline
    - Pipeline::set
    - redis::cluster::cluster_pipe
    - ignore
    - bench_function
    - i64::iter
    - throughput
    - finish
    - Vec::new
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_pipeline(c: &mut Criterion, con: &mut redis::cluster::ClusterConnection)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:84,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:84,1
    - Dst: wait_for_cluster_up
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:85,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:86,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:87,1
    - Dst: async_connection
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:87,1
    - Dst: bench_cluster_async
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 41
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: bench_cluster_setup
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bench_cluster_async
    - async_connection
    - current_thread_runtime
    - wait_for_cluster_up
    - RedisClusterConfiguration::single_replica_config
    - tokio::runtime::Runtime::block_on
    - TestClusterContext::new_with_config
    linkageType: ''
    returnType: void
    signature: 'fn bench_cluster_setup(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:94,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:95,1
    - Dst: read_routing_strategy
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:96,1
    - Dst: wait_for_cluster_up
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:98,1
    - Dst: connection
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:100,1
    - Dst: bench_set_get_and_del
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:101,1
    - Dst: bench_pipeline
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 40
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: bench_cluster_read_from_replicas_setup
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - bench_pipeline
    - TestClusterContext::new_with_config_and_builder
    - connection
    - wait_for_cluster_up
    - RedisClusterConfiguration::single_replica_config
    - read_routing_strategy
    - bench_set_get_and_del
    linkageType: ''
    returnType: void
    signature: 'fn bench_cluster_read_from_replicas_setup(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:20,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:21,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:22,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:23,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:26,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:26,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:26,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:26,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:27,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:27,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:27,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:28,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:28,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:28,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:30,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:23,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:33,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:37,1
    - Dst: map
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:39,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:40,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:40,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:40,1
    - Dst: clone
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:40,1
    - Dst: collect
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:39,1
    - Dst: std::iter::repeat_with
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:43,1
    - Dst: '&mut redis::cluster_async::ClusterConnection::clone'
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:43,1
    - Dst: take
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:43,1
    - Dst: "clone())\n            .take(num_parallel)\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:43,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:47,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:48,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:50,1
    - Dst: zip
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:50,1
    - Dst: map
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:50,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:52,1
    - Dst: "iter()\n                        .zip(&mut connections)\n             \
        \           .map(|(cmd, con)| cmd.exec_async(con))\n                     \
        \   .collect::<stream::FuturesUnordered<_>>"
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:50,1
    - Dst: try_for_each
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:50,1
    - Dst: Ok
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:54,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:48,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:58,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:62,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:65,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:68,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:68,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:68,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:71,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:72,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:73,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:72,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:75,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:79,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 134
    argCount: 3
    argNames:
    - c
    - con
    - runtime
    argTypes:
    - '&mut Criterion'
    - '&mut redis::cluster_async::ClusterConnection'
    - '&Runtime'
    constantsTouched: []
    func_position:
      end: 80
      start: 15
    functionDepth: 40
    functionLinenumber: 15
    functionLinenumberEnd: 80
    functionName: bench_cluster_async
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster_async.rs
    functionUses: 1
    functionsReached:
    - redis::pipe
    - zip
    - Cmd::exec_async
    - try_for_each
    - '&str::to_string'
    - i64::iter
    - '&mut Self::query_async'
    - unwrap
    - Ok::<_, RedisError>
    - RedisResult::iter
    - Ok
    - finish
    - collect
    - std::hint::black_box
    - '&mut Self::arg'
    - std::iter::repeat_with
    - "iter()\n                        .zip(&mut connections)\n                  \
      \      .map(|(cmd, con)| cmd.exec_async(con))\n                        .collect::<stream::FuturesUnordered<_>>"
    - map
    - clone
    - Pipeline::set
    - exec_async
    - take
    - redis::Cmd::arg
    - "clone())\n            .take(num_parallel)\n            .collect::<Vec<_>>"
    - benchmark_group
    - '&mut redis::cluster_async::ClusterConnection::clone'
    - redis::cmd
    - '&mut Self::exec_async'
    - Pipeline::exec_async
    - ignore
    - bench_function
    - tokio::runtime::Runtime::block_on
    linkageType: ''
    returnType: void
    signature: 'fn bench_cluster_async(c: &mut Criterion,con: &mut redis::cluster_async::ClusterConnection,runtime:
      &Runtime,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::rng
      Src: /src/redis-rs/redis/benches/bench_cache.rs:18,1
    - Dst: Bernoulli::from_ratio
      Src: /src/redis-rs/redis/benches/bench_cache.rs:19,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:19,1
    - Dst: sample_iter
      Src: /src/redis-rs/redis/benches/bench_cache.rs:20,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/benches/bench_cache.rs:21,1
    - Dst: take
      Src: /src/redis-rs/redis/benches/bench_cache.rs:20,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/benches/bench_cache.rs:25,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cache.rs:25,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cache.rs:25,1
    - Dst: '&mut Self::clone'
      Src: /src/redis-rs/redis/benches/bench_cache.rs:25,1
    - Dst: RedisResult::push
      Src: /src/redis-rs/redis/benches/bench_cache.rs:27,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_cache.rs:28,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_cache.rs:28,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_cache.rs:28,1
    - Dst: random_range
      Src: /src/redis-rs/redis/benches/bench_cache.rs:30,1
    - Dst: clone
      Src: /src/redis-rs/redis/benches/bench_cache.rs:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 3
    argNames:
    - key
    - total_command
    - total_read
    argTypes:
    - String
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 36
      start: 16
    functionDepth: 44
    functionLinenumber: 16
    functionLinenumberEnd: 36
    functionName: generate_commands
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - take
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - '&mut Self::clone'
    - clone
    - random_range
    - unwrap
    - RedisResult::push
    - Bernoulli::from_ratio
    - sample_iter
    linkageType: ''
    returnType: Vec
    signature: 'fn generate_commands(key: String, total_command: u32, total_read:
      u32) -> Vec<Cmd>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_cache.rs:44,1
    - Dst: Self::async_connection_with_cache_config
      Src: /src/redis-rs/redis/benches/bench_cache.rs:46,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/benches/bench_cache.rs:46,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:46,1
    - Dst: Self::multiplexed_async_connection_tokio
      Src: /src/redis-rs/redis/benches/bench_cache.rs:50,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:50,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/benches/bench_cache.rs:53,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/benches/bench_cache.rs:54,1
    - Dst: clone
      Src: /src/redis-rs/redis/benches/bench_cache.rs:56,1
    - Dst: Self::push
      Src: /src/redis-rs/redis/benches/bench_cache.rs:58,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/benches/bench_cache.rs:58,1
    - Dst: generate_commands
      Src: /src/redis-rs/redis/benches/bench_cache.rs:59,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/benches/bench_cache.rs:64,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:64,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:69,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 4
    argNames:
    - is_cache_enabled
    - read_ratio
    - per_key_command
    - key_count
    argTypes:
    - bool
    - f32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 71
      start: 38
    functionDepth: 39
    functionLinenumber: 38
    functionLinenumberEnd: 71
    functionName: benchmark_executer
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - tokio::spawn
    - TestContext::new
    - CacheConfig::new
    - Self::multiplexed_async_connection_tokio
    - clone
    - Vec::new
    - Self::push
    - generate_commands
    - Cmd::query_async
    - unwrap
    - Self::async_connection_with_cache_config
    linkageType: ''
    returnType: void
    signature: 'async fn benchmark_executer(is_cache_enabled: bool,read_ratio: f32,per_key_command:
      u32,key_count: u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::runtime::Builder::new_multi_thread
      Src: /src/redis-rs/redis/benches/bench_cache.rs:81,1
    - Dst: worker_threads
      Src: /src/redis-rs/redis/benches/bench_cache.rs:81,1
    - Dst: enable_all
      Src: /src/redis-rs/redis/benches/bench_cache.rs:81,1
    - Dst: build
      Src: /src/redis-rs/redis/benches/bench_cache.rs:81,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cache.rs:81,1
    - Dst: '&mut Bencher::iter'
      Src: /src/redis-rs/redis/benches/bench_cache.rs:86,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cache.rs:87,1
    - Dst: benchmark_executer
      Src: /src/redis-rs/redis/benches/bench_cache.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 6
    argNames:
    - bencher
    - thread_num
    - is_cache_enabled
    - read_ratio
    - per_key_command
    - key_count
    argTypes:
    - '&mut Bencher'
    - usize
    - bool
    - f32
    - u32
    - u32
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 40
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: prepare_benchmark
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - '&mut Bencher::iter'
    - worker_threads
    - enable_all
    - unwrap
    - tokio::runtime::Builder::new_multi_thread
    - benchmark_executer
    - tokio::runtime::Runtime::block_on
    - build
    linkageType: ''
    returnType: void
    signature: 'fn prepare_benchmark(bencher: &mut Bencher,thread_num: usize,is_cache_enabled:
      bool,read_ratio: f32,per_key_command: u32,key_count: u32,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/benches/bench_cache.rs:97,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/benches/bench_cache.rs:97,1
    - Dst: env::var
      Src: /src/redis-rs/redis/benches/bench_cache.rs:100,1
    - Dst: String::unwrap_or_default
      Src: /src/redis-rs/redis/benches/bench_cache.rs:100,1
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_cache.rs:111,1
    - Dst: throughput
      Src: /src/redis-rs/redis/benches/bench_cache.rs:112,1
    - Dst: Throughput::Elements
      Src: /src/redis-rs/redis/benches/bench_cache.rs:112,1
    - Dst: sample_size
      Src: /src/redis-rs/redis/benches/bench_cache.rs:115,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cache.rs:118,1
    - Dst: prepare_benchmark
      Src: /src/redis-rs/redis/benches/bench_cache.rs:119,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_cache.rs:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 131
      start: 96
    functionDepth: 41
    functionLinenumber: 96
    functionLinenumberEnd: 131
    functionName: bench_cache
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - ProtocolVersion::supports_resp3
    - env::var
    - benchmark_group
    - Throughput::Elements
    - redis_test::server::use_protocol
    - bench_function
    - prepare_benchmark
    - sample_size
    - throughput
    - finish
    - String::unwrap_or_default
    linkageType: ''
    returnType: void
    signature: 'fn bench_cache(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:11,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/benches/bench_basic.rs:12,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:14,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:16,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:16,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:16,1
    - Dst: exec
      Src: /src/redis-rs/redis/benches/bench_basic.rs:16,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:16,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:17,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:17,1
    - Dst: '&mut Self::query'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:17,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:17,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:18,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:18,1
    - Dst: '&mut Self::exec'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:18,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 20
      start: 10
    functionDepth: 39
    functionLinenumber: 10
    functionLinenumberEnd: 20
    functionName: bench_simple_getsetdel
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - '&mut Self::query'
    - i64::iter
    - Self::connection
    - exec
    - unwrap
    - '&mut Self::exec'
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_simple_getsetdel(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:23,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/benches/bench_basic.rs:24,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_basic.rs:25,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/benches/bench_basic.rs:25,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:25,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:27,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_basic.rs:28,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:31,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:31,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:31,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/benches/bench_basic.rs:31,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:36,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:36,1
    - Dst: '&mut Self::query_async'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:36,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:37,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:37,1
    - Dst: '&mut Self::exec_async'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:37,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/benches/bench_basic.rs:38,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:28,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 39
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: bench_simple_getsetdel_async
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - redis::Cmd::arg
    - current_thread_runtime
    - '&mut Self::arg'
    - TestContext::new
    - '&mut Self::exec_async'
    - Self::async_connection
    - unwrap
    - i64::iter
    - '&mut Self::query_async'
    - Ok::<_, RedisError>
    - tokio::runtime::Runtime::block_on
    - exec_async
    linkageType: ''
    returnType: void
    signature: 'fn bench_simple_getsetdel_async(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:45,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/benches/bench_basic.rs:46,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:48,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: query
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 63
      start: 44
    functionDepth: 39
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: bench_simple_getsetdel_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - redis::Pipeline::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - arg
    - ignore
    - i64::iter
    - Self::connection
    - query
    - unwrap
    - cmd
    linkageType: ''
    returnType: void
    signature: 'fn bench_simple_getsetdel_pipeline(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:66,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/benches/bench_basic.rs:67,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:69,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:70,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:70,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:70,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:70,1
    - Dst: cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:70,1
    - Dst: arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:70,1
    - Dst: cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:70,1
    - Dst: arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:70,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:70,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:80,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/benches/bench_basic.rs:81,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 83
      start: 65
    functionDepth: 39
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: bench_simple_getsetdel_pipeline_precreated
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Pipeline::cmd
    - redis::Cmd::arg
    - '&mut Self::arg'
    - TestContext::new
    - arg
    - ignore
    - Self::connection
    - i64::iter
    - Pipeline::query
    - cmd
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_simple_getsetdel_pipeline_precreated(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:88,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_basic.rs:91,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 7
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Pipeline::set
    - ignore
    linkageType: ''
    returnType: redis::Pipeline
    signature: fn long_pipeline() -> redis::Pipeline
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:97,1
    - Dst: Self::connection
      Src: /src/redis-rs/redis/benches/bench_basic.rs:98,1
    - Dst: long_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:100,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:102,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/benches/bench_basic.rs:103,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 39
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: bench_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - Pipeline::exec
    - TestContext::new
    - i64::iter
    - Self::connection
    - long_pipeline
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_long_pipeline(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:108,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/benches/bench_basic.rs:109,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_basic.rs:110,1
    - Dst: Self::async_connection
      Src: /src/redis-rs/redis/benches/bench_basic.rs:110,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:110,1
    - Dst: long_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:112,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:114,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_basic.rs:115,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/benches/bench_basic.rs:116,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 119
      start: 107
    functionDepth: 39
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: bench_async_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - current_thread_runtime
    - TestContext::new
    - Pipeline::exec_async
    - Self::async_connection
    - unwrap
    - i64::iter
    - tokio::runtime::Runtime::block_on
    - long_pipeline
    linkageType: ''
    returnType: void
    signature: 'fn bench_async_long_pipeline(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:122,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/benches/bench_basic.rs:123,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_basic.rs:124,1
    - Dst: Self::multiplexed_async_connection_tokio
      Src: /src/redis-rs/redis/benches/bench_basic.rs:125,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:124,1
    - Dst: long_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:128,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:130,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_basic.rs:131,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/benches/bench_basic.rs:132,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 135
      start: 121
    functionDepth: 39
    functionLinenumber: 121
    functionLinenumberEnd: 135
    functionName: bench_multiplexed_async_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - current_thread_runtime
    - TestContext::new
    - Self::multiplexed_async_connection_tokio
    - Pipeline::exec_async
    - unwrap
    - i64::iter
    - tokio::runtime::Runtime::block_on
    - long_pipeline
    linkageType: ''
    returnType: void
    signature: 'fn bench_multiplexed_async_long_pipeline(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:138,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/benches/bench_basic.rs:139,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_basic.rs:140,1
    - Dst: Self::multiplexed_async_connection_tokio
      Src: /src/redis-rs/redis/benches/bench_basic.rs:141,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:140,1
    - Dst: map
      Src: /src/redis-rs/redis/benches/bench_basic.rs:144,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:145,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:145,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:145,1
    - Dst: clone
      Src: /src/redis-rs/redis/benches/bench_basic.rs:145,1
    - Dst: collect
      Src: /src/redis-rs/redis/benches/bench_basic.rs:144,1
    - Dst: std::iter::repeat_with
      Src: /src/redis-rs/redis/benches/bench_basic.rs:148,1
    - Dst: clone
      Src: /src/redis-rs/redis/benches/bench_basic.rs:148,1
    - Dst: take
      Src: /src/redis-rs/redis/benches/bench_basic.rs:148,1
    - Dst: "clone())\n        .take(PIPELINE_QUERIES)\n        .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/benches/bench_basic.rs:148,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:152,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_basic.rs:153,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:155,1
    - Dst: zip
      Src: /src/redis-rs/redis/benches/bench_basic.rs:155,1
    - Dst: map
      Src: /src/redis-rs/redis/benches/bench_basic.rs:155,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/benches/bench_basic.rs:157,1
    - Dst: "iter()\n                    .zip(&mut connections)\n                 \
        \   .map(|(cmd, con)| cmd.exec_async(con))\n                    .collect::<stream::FuturesUnordered<_>>"
      Src: /src/redis-rs/redis/benches/bench_basic.rs:155,1
    - Dst: try_for_each
      Src: /src/redis-rs/redis/benches/bench_basic.rs:155,1
    - Dst: Ok
      Src: /src/redis-rs/redis/benches/bench_basic.rs:159,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:153,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 57
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 39
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: bench_multiplexed_async_implicit_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - zip
    - Cmd::exec_async
    - try_for_each
    - unwrap
    - i64::iter
    - RedisResult::iter
    - Ok
    - collect
    - '&mut Self::arg'
    - current_thread_runtime
    - std::iter::repeat_with
    - TestContext::new
    - map
    - clone
    - "iter()\n                    .zip(&mut connections)\n                    .map(|(cmd,\
      \ con)| cmd.exec_async(con))\n                    .collect::<stream::FuturesUnordered<_>>"
    - take
    - redis::Cmd::arg
    - "clone())\n        .take(PIPELINE_QUERIES)\n        .collect::<Vec<_>>"
    - Self::multiplexed_async_connection_tokio
    - redis::cmd
    - tokio::runtime::Runtime::block_on
    linkageType: ''
    returnType: void
    signature: 'fn bench_multiplexed_async_implicit_pipeline(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_basic.rs:167,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:168,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:168,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:168,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:168,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_basic.rs:176,1
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_basic.rs:178,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:179,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:179,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:179,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:179,1
    - Dst: throughput
      Src: /src/redis-rs/redis/benches/bench_basic.rs:179,1
    - Dst: Throughput::Elements
      Src: /src/redis-rs/redis/benches/bench_basic.rs:190,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_basic.rs:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 192
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 192
    functionName: bench_query
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - benchmark_group
    - Throughput::Elements
    - bench_function
    - throughput
    - finish
    linkageType: ''
    returnType: void
    signature: 'fn bench_query(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:195,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:196,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:198,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:198,1
    - Dst: arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:198,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/benches/bench_basic.rs:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 204
      start: 194
    functionDepth: 40
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: bench_encode_small
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::cmd
    - '&mut Self::arg'
    - arg
    - Cmd::arg
    - Cmd::get_packed_command
    - i64::iter
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode_small(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:207,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:208,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_basic.rs:211,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:211,1
    - Dst: Pipeline::get_packed_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 215
      start: 206
    functionDepth: 40
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: bench_encode_integer
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Pipeline::get_packed_pipeline
    - Pipeline::set
    - ignore
    - i64::iter
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode_integer(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:219,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:220,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/benches/bench_basic.rs:223,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:223,1
    - Dst: '&mut Self::arg'
      Src: /src/redis-rs/redis/benches/bench_basic.rs:223,1
    - Dst: arg
      Src: /src/redis-rs/redis/benches/bench_basic.rs:223,1
    - Dst: redis::SetExpiry::EX
      Src: /src/redis-rs/redis/benches/bench_basic.rs:226,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:223,1
    - Dst: Pipeline::get_packed_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 231
      start: 217
    functionDepth: 40
    functionLinenumber: 217
    functionLinenumberEnd: 231
    functionName: bench_encode_set_ex
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Pipeline::cmd
    - '&mut Self::arg'
    - redis::Cmd::arg
    - Pipeline::get_packed_pipeline
    - arg
    - redis::SetExpiry::EX
    - ignore
    - i64::iter
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode_set_ex(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:234,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:235,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_basic.rs:238,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:238,1
    - Dst: Pipeline::get_packed_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 40
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: bench_encode_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Pipeline::get_packed_pipeline
    - Pipeline::set
    - ignore
    - i64::iter
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode_pipeline(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:245,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:246,1
    - Dst: Pipeline::mset
      Src: /src/redis-rs/redis/benches/bench_basic.rs:249,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:249,1
    - Dst: Pipeline::get_packed_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 40
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: bench_encode_pipeline_nested
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::pipe
    - Pipeline::get_packed_pipeline
    - ignore
    - i64::iter
    - Pipeline::mset
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode_pipeline_nested(b: &mut Bencher)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_basic.rs:262,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:263,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:263,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:263,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:263,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:263,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_basic.rs:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 270
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 270
    functionName: bench_encode
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - bench_function
    - finish
    - benchmark_group
    linkageType: ''
    returnType: void
    signature: 'fn bench_encode(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_basic.rs:273,1
    - Dst: redis::parse_redis_value
      Src: /src/redis-rs/redis/benches/bench_basic.rs:273,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - b
    - input
    argTypes:
    - '&mut Bencher'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 40
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: bench_decode_simple
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - redis::parse_redis_value
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: 'fn bench_decode_simple(b: &mut Bencher, input: &[u8])'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/benches/bench_basic.rs:276,1
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_basic.rs:285,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:287,1
    - Dst: support::encode_value
      Src: /src/redis-rs/redis/benches/bench_basic.rs:288,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:288,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:290,1
    - Dst: bench_decode_simple
      Src: /src/redis-rs/redis/benches/bench_basic.rs:290,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_basic.rs:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 293
      start: 275
    functionDepth: 39
    functionLinenumber: 275
    functionLinenumberEnd: 293
    functionName: bench_decode
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - io::Result::unwrap
    - benchmark_group
    - support::encode_value
    - bench_function
    - Value::Array
    - finish
    - Vec::new
    - bench_decode_simple
    linkageType: ''
    returnType: void
    signature: 'fn bench_decode(c: &mut Criterion)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::parse_redis_value
      Src: /src/redis-rs/fuzz/fuzz_targets/parser.rs:2,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 41
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: fuzz_target
    functionSourceFile: /src/redis-rs/fuzz/fuzz_targets/parser.rs
    functionUses: 0
    functionsReached:
    - redis::parse_redis_value
    linkageType: ''
    returnType: ''
    signature: ''
Fuzzer filename: /src/redis-rs/fuzz/fuzz_targets/parser.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - build_keys_and_certs_for_tls
  - build_keys_and_certs_for_tls_ext
  - b::u::i::l::d::_::k::e::y::s::_::a::n::d::_::c::e::r::t::s::_::f::o::r::_::t::l::s::_::w::i::t::h::_::h::o::s::t::n::a::m::e::make_key
  - build_keys_and_certs_for_tls_with_hostname
  - build_client_cert_with_custom_cn
  - get_listener_on_free_port
  - get_random_available_port
  source_file: /src/redis-rs/redis-test/src/utils.rs
- function_names:
  - use_protocol
  - redis_settings
  - get_default_host
  - ServerType::get_intended
  - RedisServer::drop
  - RedisServer::default
  - RedisServer::new
  - RedisServer::new_with_mtls
  - RedisServer::log_file_contents
  - RedisServer::get_addr
  - RedisServer::with_modules
  - RedisServer::new_with_addr_and_modules
  - RedisServer::new_with_addr_tls_modules_and_spawner
  - RedisServer::client_addr
  - RedisServer::host_and_port
  - RedisServer::connection_info
  - RedisServer::stop
  - RedisServer::log_file
  - get_major_version
  source_file: /src/redis-rs/redis-test/src/server.rs
- function_names:
  - RedisSentinelCluster::log_sentinel_state_via_cli
  - RedisSentinelCluster::log_redis_state_via_cli
  - get_addr
  - spawn_master_server
  - spawn_replica_server
  - spawn_sentinel_server
  - wait_for_master_server
  - wait_for_replica
  - wait_for_replicas_to_sync
  - RedisSentinelCluster::new
  - RedisSentinelCluster::with_modules
  - RedisSentinelCluster::stop
  - RedisSentinelCluster::iter_sentinel_servers
  - RedisSentinelCluster::drop
  source_file: /src/redis-rs/redis-test/src/sentinel.rs
- function_names:
  - into_redis_value_impl_int
  - into_redis_value_impl_float
  - String::into_redis_value
  - '&str::into_redis_value'
  - bool::into_redis_value
  - bytes::Bytes::into_redis_value
  - Vec::into_redis_value
  - Vec::into_redis_value
  - Vec::into_redis_value
  - HashMap::into_redis_value
  - HashSet::into_redis_value
  - Value::into_redis_value
  - ServerError::into_redis_value
  - redis_value
  - Cmd::into_redis_cmd_bytes
  - '&Cmd::into_redis_cmd_bytes'
  - '&mut Cmd::into_redis_cmd_bytes'
  - Pipeline::into_redis_cmd_bytes
  - '&Pipeline::into_redis_cmd_bytes'
  - '&mut Pipeline::into_redis_cmd_bytes'
  - MockCmd::new
  - MockCmd::with_values
  - MockRedisConnection::new
  - MockRedisConnection::add_commands
  - MockRedisConnection::assert_all_commands_consumed
  - MockRedisConnection::drop
  - MockRedisConnection::is_empty
  - MockRedisConnection::req_packed_command
  - MockRedisConnection::req_packed_commands
  - MockRedisConnection::get_db
  - MockRedisConnection::check_connection
  - MockRedisConnection::is_open
  - MockRedisConnection::req_packed_command
  - MockRedisConnection::req_packed_commands
  - MockRedisConnection::get_db
  - tests::into_redis_value_i8
  - tests::into_redis_value_i16
  - tests::into_redis_value_i32
  - tests::into_redis_value_i64
  - tests::into_redis_value_u8
  - tests::into_redis_value_u16
  - tests::into_redis_value_u32
  - tests::into_redis_value_string
  - tests::into_redis_value_str_ref
  - tests::into_redis_value_bool_true
  - tests::into_redis_value_bool_false
  - tests::into_redis_value_bytes
  - tests::into_redis_value_vec_u8
  - tests::into_redis_value_vec_value
  - tests::into_redis_value_vec_value_value
  - tests::into_redis_value_hashmap
  - tests::into_redis_value_hashset
  - tests::into_redis_value_value
  - tests::into_redis_value_server_error
  - tests::redis_simple_direct
  - tests::redis_simple_in_complex
  - tests::redis_nil
  - tests::redis_ok
  - tests::redis_okay
  - tests::redis_i8
  - tests::redis_i16
  - tests::redis_i32
  - tests::redis_i64
  - tests::redis_u8
  - tests::redis_u16
  - tests::redis_u32
  - tests::redis_string
  - tests::redis_str_ref
  - tests::redis_true
  - tests::redis_false
  - tests::redis_value
  - tests::redis_array_empty
  - tests::redis_array_single_entry
  - tests::redis_array_single_entry_trailing_comma
  - tests::redis_array_multiple_primitive_entries
  - tests::redis_array_multiple_entries
  - tests::redis_set_empty
  - tests::redis_set_single_entry
  - tests::redis_set_single_entry_trailing_comma
  - tests::redis_set_multiple_primitive_entries
  - tests::redis_set_multiple_entries
  - tests::redis_map_empty
  - tests::redis_map_single_entry
  - tests::redis_map_single_entry_trailing_comma
  - tests::redis_map_multiple_primitive_entries
  - tests::redis_map_multiple_entries
  - tests::sync_basic_test
  - tests::async_basic_test
  - tests::errors_for_unexpected_commands
  - tests::errors_for_mismatched_commands
  - tests::pipeline_basic_test
  - tests::pipeline_atomic_test
  - tests::extent_commands_test
  source_file: /src/redis-rs/redis-test/src/lib.rs
- function_names:
  - RedisClusterConfiguration::single_replica_config
  - RedisClusterConfiguration::default
  - ClusterType::get_intended
  - ClusterType::build_addr
  - port_in_use
  - RedisCluster::username
  - RedisCluster::password
  - RedisCluster::new
  - RedisCluster::wait_for_replicas
  - RedisCluster::stop
  - RedisCluster::iter_servers
  - wait_for_status_ok
  - RedisCluster::drop
  source_file: /src/redis-rs/redis-test/src/cluster.rs
- function_names:
  - async_test
  source_file: /src/redis-rs/test-macros/src/lib.rs
- function_names:
  - log_connection_error
  - parse_replication_info
  - assert_is_master_role
  - assert_replica_role_and_master_addr
  - assert_is_connection_to_master
  - assert_connection_is_replica_of_correct_master
  - connect_to_all_replicas
  - assert_connect_to_known_replicas
  - test_get_replica_clients_success
  - test_get_replica_clients_invalid_master_name
  - test_get_replica_clients_report_correct_master
  - test_get_replica_clients_with_one_replica_down
  - test_sentinel_role_no_permission
  - test_sentinel_no_role_or_info_permission
  - test_sentinel_connect_to_random_replica
  - test_sentinel_connect_to_multiple_replicas
  - test_sentinel_server_down
  - test_sentinel_redis_client
  - test_sentinel_client
  - test_sentinel_non_sentinel_address_error
  - test_sentinel_client_io_error
  - test_sentinel_client_not_sentinel_error
  - test_sentinel_client_builder
  - async_tests::async_assert_is_connection_to_master
  - async_tests::async_assert_connection_is_replica_of_correct_master
  - async_tests::async_connect_to_all_replicas
  - async_tests::async_assert_connect_to_known_replicas
  - async_tests::test_sentinel_connect_to_random_replica_async
  - async_tests::test_sentinel_connect_to_multiple_replicas_async
  - async_tests::test_sentinel_server_down_async
  - async_tests::test_sentinel_redis_client_async
  - async_tests::test_sentinel_client_async
  - async_tests::test_sentinel_non_sentinel_address_error_async
  - async_tests::test_sentinel_client_async_not_sentinel_error
  - async_tests::test_sentinel_client_async_io_error
  - async_tests::test_sentinel_client_async_with_connection_timeout
  - async_tests::test_sentinel_client_async_with_response_timeout
  - async_tests::test_sentinel_client_async_with_timeouts
  - async_tests::test_get_replica_clients_success_async
  - async_tests::test_get_replica_clients_invalid_master_name_async
  - async_tests::test_get_replica_clients_report_correct_master_async
  - async_tests::test_get_replica_clients_with_one_replica_down_async
  - pool_tests::parse_client_info
  - pool_tests::test_sentinel_client
  - bb8_pool_tests::parse_client_info
  - bb8_pool_tests::test_sentinel_client
  source_file: /src/redis-rs/redis/tests/test_sentinel.rs
- function_names:
  - hotkeys::setup_connection_with_protocol
  - hotkeys::setup_test_keys_and_make_hot_keys
  - hotkeys::test_hotkeys_state_machine_behavior
  - hotkeys::test_hotkeys_with_metric
  - hotkeys::test_hotkeys_options_with_duration_and_count
  - hotkeys::test_hotkeys_options_with_sample_ratio
  - hotkeys::test_hotkeys_start_with_slots_on_standalone_errors
  - hotkeys_cluster::direct_connection
  - hotkeys_cluster::port_of
  - hotkeys_cluster::first_owned_slot_range
  - hotkeys_cluster::find_key_in_range
  - hotkeys_cluster::setup_cluster_and_target
  - hotkeys_cluster::test_hotkeys_cluster_with_slots_via_direct_client
  - hotkeys_cluster::test_hotkeys_cluster_with_slots_via_cluster_routing
  - hotkeys_cluster::test_hotkeys_cluster_all_primaries_via_cluster_routing
  - async_hotkeys::setup_async_connection_with_protocol
  - async_hotkeys::setup_test_keys_and_make_hot_keys
  - async_hotkeys::test_hotkeys_state_machine_behavior_async
  - async_hotkeys::test_hotkeys_with_metric_async
  - async_hotkeys::test_hotkeys_options_with_duration_and_count_async
  - async_hotkeys::test_hotkeys_options_with_sample_ratio_async
  - async_hotkeys::test_hotkeys_start_with_slots_on_standalone_errors_async
  source_file: /src/redis-rs/redis/tests/test_hotkeys.rs
- function_names:
  - test
  - test_rust_decimal
  - test_bigdecimal
  - test_bigint
  - test_biguint
  source_file: /src/redis-rs/redis/tests/test_bignum.rs
- function_names:
  - CertAuthTestContext::setup_connection
  - CertAuthTestContext::cert_auth_connection
  - create_cert_auth_context_with_username
  - generate_random_username
  - test_tls_certificate_authentication_with_matching_acl_user
  - test_tls_certificate_authentication_no_matching_user
  source_file: /src/redis-rs/redis/tests/test_tls_cert_auth.rs
- function_names:
  - assert_hit
  - assert_miss
  - assert_invalidate
  - test_cache_basic
  - test_cache_mget
  - test_module_json_cache_get_mget
  - test_module_json_cache_get_mget_different_paths
  - test_cache_is_not_target_type_dependent
  - test_cache_with_pipeline
  - test_cache_basic_partial_opt_in
  - test_cache_pipeline_partial_opt_in
  - test_cache_different_commands
  - test_connection_manager_maintains_statistics_after_crashes
  - test_cache_async_cluster_reconnect_all_nodes
  - test_cache_async_cluster_mget
  - get_pipe
  - test_cache_async_cluster_slot_change
  - get_cmd
  - test_readonly_commands_with_patterns_are_not_cached
  - test_bitcount_is_handled_correctly
  - test_that_a_pipeline_with_all_commands_cached_does_not_hang
  source_file: /src/redis-rs/redis/tests/test_cache.rs
- function_names:
  - types::test_is_io_error
  - types::test_redis_error_source_presence_for_io_wrapped_errors
  - types::test_redis_error_source_absence_for_non_io_wrapped_errors
  - types::test_is_single_arg
  - types::test_info_dict
  - types::test_role_ret
  - types::test_i32
  - types::test_u32
  - types::test_parse_boxed
  - types::test_parse_arc
  - types::test_parse_rc
  - types::test_vec
  - types::test_box_slice
  - types::test_arc_slice
  - types::test_single_bool_vec
  - types::test_single_i32_vec
  - types::test_single_u32_vec
  - types::test_single_string_vec
  - types::test_tuple
  - types::test_tuple_does_not_panic_if_vec_is_wrong_size
  - types::test_hashmap
  - types::test_hashbrown_hashmap
  - types::test_hashbrown_hashset
  - types::test_bool
  - types::test_bytes
  - types::test_uuid
  - types::test_cstring
  - types::test_std_types_to_redis_args
  - types::test_deref_types_to_redis_args
  - types::test_cow_types_to_redis_args
  - types::test_large_usize_array_to_redis_args_and_back
  - types::test_large_u8_array_to_redis_args_and_back
  - types::test_large_string_array_to_redis_args_and_back
  - types::test_0_length_usize_array_to_redis_args_and_back
  - types::test_attributes
  - types::arrays_to_tuples
  - types::test_complex_nested_tuples
  - types::test_complex_nested_tuples_resp3
  source_file: /src/redis-rs/redis/tests/test_types.rs
- function_names:
  - cluster::smoke_test_connection
  - cluster::test_cluster_basics
  - cluster::test_cluster_numbered_database
  - cluster::assert_all_nodes_on_db
  - cluster::test_default_reject_invalid_hostnames
  - cluster::test_danger_accept_invalid_hostnames
  - cluster::test_cluster_with_username_and_password
  - cluster::test_cluster_with_bad_password
  - cluster::test_cluster_read_from_replicas
  - cluster::test_cluster_eval
  - cluster::test_cluster_resp3
  - cluster::test_cluster_multi_shard_commands
  - cluster::test_cluster_script
  - cluster::test_cluster_pipeline
  - cluster::test_cluster_pipeline_multiple_keys
  - cluster::test_cluster_pipeline_invalid_command
  - cluster::test_cluster_pipeline_command_ordering
  - cluster::test_cluster_pipeline_ordering_with_improper_command
  - cluster::test_cluster_can_connect_to_server_that_sends_cluster_slots_with_null_host_name
  - cluster::test_cluster_can_connect_to_server_that_sends_cluster_slots_with_partial_nodes_with_unknown_host_name
  - cluster::test_cluster_retries
  - cluster::test_cluster_exhaust_retries
  - cluster::test_cluster_move_error_when_new_node_is_added
  - cluster::test_cluster_ask_redirect
  - cluster::test_cluster_ask_error_when_new_node_is_added
  - cluster::test_cluster_random_replica_read
  - cluster::test_cluster_round_robin_read
  - cluster::test_cluster_io_error
  - cluster::test_cluster_non_retryable_error_should_not_retry
  - cluster::test_cluster_fan_out
  - cluster::test_cluster_fan_out_to_all_primaries
  - cluster::test_cluster_fan_out_to_all_nodes
  - cluster::test_cluster_fan_out_out_once_to_each_primary_when_no_replicas_are_available
  - cluster::test_cluster_fan_out_out_once_even_if_primary_has_multiple_slot_ranges
  - cluster::test_cluster_split_multi_shard_command_and_combine_arrays_of_values
  - cluster::test_cluster_route_correctly_on_packed_transaction_with_single_node_requests
  - cluster::test_cluster_route_correctly_on_packed_transaction_with_single_node_requests2
  - cluster::test_cluster_can_be_created_with_partial_slot_coverage
  - cluster::test_cluster_handle_complete_server_disconnect_without_panicking
  - cluster::test_cluster_reconnect_after_complete_server_disconnect
  - cluster::test_cluster_reconnect_after_complete_server_disconnect_route_to_many
  - cluster::fail_on_empty_command
  - cluster::test_cluster_basics_with_mtls
  - cluster::test_cluster_should_not_connect_without_mtls
  - cluster::test_cluster_node_address_map_remaps_connections
  - cluster::test_cluster_node_address_map_fixes_tls_hostname_mismatch
  source_file: /src/redis-rs/redis/tests/test_cluster.rs
- function_names:
  - build_available_components
  - assert_components_eq
  - MockTestContext::new
  - MockTestContext::get_available_components
  - ctx_supports_exact_match
  - ctx_supports_major_smaller
  - ctx_supports_major_bigger
  - ctx_supports_major_match_minor_smaller
  - ctx_supports_major_match_minor_bigger
  - ctx_supports_major_match_minor_match_patch_smaller
  - ctx_supports_major_match_minor_match_patch_bigger
  - ctx_supports_disjunctive
  - ctx_supports_conjunctive
  - ctx_live_test_server
  - component_parse_single_all_single_digit
  - component_parse_single_multiple_digits_suffixed
  - component_parse_triplet_all_single_digit
  - component_parse_triplet_multiple_digits_suffixed
  - component_parse_multiline_simple_server_version
  - component_parse_multiline_simple_module_version
  - component_parse_mix
  source_file: /src/redis-rs/redis/tests/test_support.rs
- function_names:
  - script::test_script
  - script::test_script_load
  - script::test_script_load_through_invocation
  - script::test_script_that_is_not_loaded_fails_on_pipeline_invocation
  - script::test_script_pipeline
  source_file: /src/redis-rs/redis/tests/test_script.rs
- function_names:
  - digest_utils::test_calculate_value_digest_basic
  - digest_utils::test_calculate_value_digest_leading_zeroes
  - digest_utils::test_calculate_value_digest_consistency
  - digest_utils::test_calculate_value_digest_different_values
  - digest_utils::test_calculate_value_digest_numeric
  - digest_utils::test_calculate_value_digest_bytes
  - digest_utils::test_calculate_value_digest_empty
  source_file: /src/redis-rs/redis/tests/test_digest_utils.rs
- function_names:
  - basic_async::test_block_on_all_panics_from_spawns
  - basic_async::test_args
  - basic_async::test_no_response_skips_response_even_on_error
  - b::a::s::i::c::_::a::s::y::n::c::::::::w::o::r::k::s::_::w::i::t::h::_::p::a::u::s::e::d::_::t::i::m::e::_::w::h::e::n::_::n::o::_::t::i::m::e::o::u::t::s::_::a::r::e::_::s::e::t::test
  - basic_async::works_with_paused_time_when_no_timeouts_are_set
  - basic_async::test_set_write_backpressure_boundary_does_not_break_connection
  - basic_async::test_can_authenticate_with_username_and_password
  - basic_async::test_nice_hash_api
  - basic_async::test_nice_hash_api_in_pipe
  - basic_async::test_dont_panic_on_closed_multiplexed_connection
  - basic_async::test_pipeline_transaction
  - basic_async::test_client_tracking_doesnt_block_execution
  - basic_async::test_pipeline_transaction_with_errors
  - basic_async::test_module_json_and_pipeline_transaction_with_ignore_errors
  - basic_async::test_pipeline_with_ignore_errors
  - basic_async::test_pipeline_returns_server_errors
  - basic_async::test_cmd
  - basic_async::test_pipe_over_multiplexed_connection
  - basic_async::test_running_multiple_commands
  - basic_async::test_async_transaction
  - basic_async::test_async_scanning
  - basic_async::test_async_scanning_iterative
  - basic_async::test_async_scanning_stream
  - basic_async::test_response_timeout_multiplexed_connection
  - basic_async::test_script
  - basic_async::test_script_load
  - basic_async::test_script_returning_complex_type
  - basic_async::test_io_error_on_kill_issue_320
  - basic_async::test_invalid_password_issue_343
  - basic_async::test_scan_with_options_works
  - basic_async::test_issue_stream_blocks
  - basic_async::test_issue_async_commands_scan_broken
  - basic_async::test_pub_sub_subscription
  - basic_async::test_pub_sub_subscription_to_multiple_channels
  - basic_async::test_issue_async_commands_scan_finishing_prematurely
  - basic_async::test_pub_sub_unsubscription
  - basic_async::test_can_receive_messages_while_sending_requests_from_split_pub_sub
  - basic_async::test_can_send_ping_on_split_pubsub
  - basic_async::test_can_receive_messages_from_split_pub_sub_after_sink_was_dropped
  - basic_async::test_can_receive_messages_from_split_pub_sub_after_into_on_message
  - basic_async::test_cannot_subscribe_on_split_pub_sub_after_stream_was_dropped
  - basic_async::test_automatic_unsubscription
  - basic_async::test_automatic_unsubscription_on_split
  - basic_async::test_pipe_errors_do_not_affect_subsequent_commands
  - basic_async::test_multiplexed_pub_sub_subscribe_on_multiple_channels
  - basic_async::test_non_transaction_errors_do_not_affect_other_results_in_pipeline
  - basic_async::test_pub_sub_multiple
  - basic_async::test_pub_sub_requires_resp3
  - basic_async::test_push_sender_send_on_disconnect
  - basic_async::test_manager_should_resubscribe_to_pubsub_channels_after_disconnect
  - basic_async::test_async_basic_pipe_with_parsing_error
  - basic_async::test_connection_manager_reconnect_after_delay
  - basic_async::test_manager_should_reconnect_without_actions_if_resp3_is_set
  - basic_async::test_manager_should_completely_disconnect_when_drop
  - basic_async::test_manager_should_reconnect_without_actions_if_push_sender_is_set_even_after_sender_returns_error
  - b::a::s::i::c::_::a::s::y::n::c::::::::t::e::s::t::_::m::u::l::t::i::p::l::e::x::e::d::_::c::o::n::n::e::c::t::i::o::n::_::k::i::l::l::s::_::c::o::n::n::e::c::t::i::o::n::_::o::n::_::d::r::o::p::_::e::v::e::n::_::w::h::e::n::_::b::l::o::c::k::i::n::g::count_ids
  - basic_async::test_multiplexed_connection_kills_connection_on_drop_even_when_blocking
  - basic_async::test_monitor
  - basic_async::test_should_connect_mtls
  - basic_async::test_should_not_connect_if_tls_active
  - basic_async::test_resp3_pushes_connection_manager
  - basic_async::test_select_db
  - basic_async::test_multiplexed_connection_send_single_disconnect_on_connection_failure
  - basic_async::test_fail_on_empty_command
  - basic_async::check_unwatched
  - basic_async::test_simple_case_success
  - basic_async::test_transaction_should_retry_on_watch
  - basic_async::test_transaction_should_retry_on_none_from_closure
  - basic_async::test_transaction_abort_if_internal_function_returns_error
  - basic_async::test_lazy_connection_manager_can_be_created_synchronously
  - basic_async::test_lazy_connection_manager_reconnects_after_disconnect
  - basic_async::test_lazy_connection_manager_can_be_cloned_before_sending
  - basic_async::test_lazy_connection_manager_with_resp3_push
  source_file: /src/redis-rs/redis/tests/test_async.rs
- function_names:
  - xadd
  - xadd_keyrange
  - test_cmd_options
  - test_assorted_1
  - test_xgroup_create
  - test_xgroup_createconsumer
  - test_assorted_2
  - assert_stream_pending_data
  - test_xadd_maxlen_map
  - t::e::s::t::_::x::a::d::d::_::o::p::t::i::o::n::s::setup_stream
  - test_xadd_options
  - test_xread_options_deleted_pel_entry
  - create_group_add_and_read
  - test_xautoclaim
  - test_xclaim
  - test_xclaim_last_id
  - test_xreadgroup_with_claim_option
  - test_xreadgroup_claim_with_idle_and_incoming_messages
  - test_xreadgroup_claim_multiple_streams
  - test_xdel
  - test_xadd_options_deletion_policy_keepref
  - test_xadd_options_deletion_policy_delref
  - test_xadd_options_deletion_policy_acked
  - test_xtrim_options_deletion_policy_keepref
  - test_xtrim_options_deletion_policy_delref
  - test_xtrim_options_deletion_policy_acked
  - test_xdel_ex
  - test_xack_del
  - test_xtrim
  - test_xtrim_options
  - test_xgroup
  - test_xrange
  - test_xrevrange
  - test_xautoclaim_invalid_pel_entries_claiming_full_entries
  - test_xautoclaim_invalid_pel_entries_claiming_just_ids
  - idempotency_tests::test_xadd_idempotency_manual_mode
  - idempotency_tests::test_xadd_idempotency_automatic_mode
  - idempotency_tests::test_xadd_idempotency_with_other_options
  - idempotency_tests::test_xcfgset
  - idempotency_tests::test_xcfgset_with_idempotent_messages
  - idempotency_tests::test_xcfgset_idempotency_behavior
  - xnack_tests::xnack_setup_pending
  - xnack_tests::pel_times_delivered
  - xnack_tests::test_xnack_basic_returns_count_of_nacked_messages
  - xnack_tests::test_xnack_marks_message_as_unowned
  - xnack_tests::test_xnack_silent_decrements_delivery_counter
  - xnack_tests::test_xnack_fail_keeps_delivery_counter
  - xnack_tests::test_xnack_fatal_marks_delivery_counter_as_sentinel
  - xnack_tests::test_xnack_prioritized_at_pel_head_when_claiming
  - xnack_tests::test_xnack_ignores_unknown_ids_and_returns_zero
  - xnack_tests::test_xnack_only_affects_known_ids
  - xnack_tests::test_xnack_nonexistent_stream_errors
  - xnack_tests::test_xnack_nonexistent_group_errors
  - xnack_tests::test_xnack_idempotent_double_nack
  - xnack_tests::test_xnack_fifo_ordering_among_multiple_nacked_messages
  - xnack_tests::test_xnack_three_tier_delivery_order
  source_file: /src/redis-rs/redis/tests/test_streams.rs
- function_names:
  - entra_id_tests::init_logger
  - entra_id_tests::get_redis_url
  - entra_id_tests::get_env_var
  - entra_id_tests::get_redis_scopes
  - entra_id_tests::test_redis_connection
  - entra_id_tests::test_service_principal_client_secret
  - entra_id_tests::setup_provider_with_client_certificate_and_scopes
  - entra_id_tests::test_service_principal_client_certificate
  - entra_id_tests::test_system_assigned_managed_identity
  - entra_id_tests::test_user_assigned_managed_identity
  - entra_id_tests::get_redis_cluster_url
  - entra_id_tests::test_redis_cluster_connection
  - entra_id_tests::test_service_principal_client_secret_cluster
  - entra_id_tests::test_service_principal_client_certificate_cluster
  - entra_id_tests::test_system_assigned_managed_identity_cluster
  - entra_id_tests::test_user_assigned_managed_identity_cluster
  source_file: /src/redis-rs/redis/tests/test_auth.rs
- function_names:
  - basic::generate_random_testing_hash_key
  - basic::test_parse_redis_url
  - basic::test_redis_url_fromstr
  - basic::test_args
  - basic::test_can_authenticate_with_username_and_password
  - basic::test_getset
  - basic::test_key_type
  - basic::test_client_tracking_doesnt_block_execution
  - basic::test_incr
  - basic::test_ping
  - basic::test_getdel
  - basic::test_getex
  - basic::test_info
  - basic::test_hash_ops
  - basic::test_hash_expiration
  - basic::verify_exact_hash_fields_and_values
  - basic::verify_fields_absence_from_hash
  - basic::test_hget_del
  - basic::test_hget_ex
  - basic::test_hget_ex_field_expiration_options
  - basic::test_hset_ex
  - basic::test_hsetex_field_expiration_options
  - basic::test_hsetex_can_update_the_expiration_of_a_field_that_has_already_been_set_to_expire
  - basic::test_unlink
  - basic::test_set_ops
  - basic::test_scan
  - basic::test_optionals
  - basic::test_scanning
  - basic::test_checked_scanning_error
  - basic::test_filtered_scanning
  - basic::test_scan_with_options_works
  - basic::test_pipeline
  - basic::test_pipeline_with_err
  - basic::test_pipeline_returns_server_errors
  - basic::test_empty_pipeline
  - basic::test_pipeline_transaction
  - basic::test_pipeline_transaction_with_errors
  - basic::test_pipeline_reuse_query
  - basic::test_pipeline_reuse_query_clear
  - basic::test_pipeline_len
  - basic::test_pipeline_is_empty
  - basic::test_real_transaction
  - basic::test_real_transaction_highlevel
  - basic::test_pubsub
  - basic::test_pubsub_handles_timeout
  - basic::test_pubsub_send_ping
  - basic::pub_sub_subscription_to_multiple_channels
  - basic::test_pubsub_unsubscribe
  - basic::test_pubsub_subscribe_while_messages_are_sent
  - basic::test_pubsub_unsubscribe_no_subs
  - basic::test_pubsub_unsubscribe_one_sub
  - basic::test_pubsub_unsubscribe_one_sub_one_psub
  - basic::scoped_pubsub
  - basic::test_tuple_args
  - basic::test_nice_api
  - basic::test_auto_m_versions
  - basic::test_nice_hash_api
  - basic::test_nice_list_api
  - basic::test_tuple_decoding_regression
  - basic::test_tuple_decoding_from_iter
  - basic::test_setbit_and_getbit_single_offset
  - b::a::s::i::c::::::::t::e::s::t::_::b::i::t::_::o::p::e::r::a::t::i::o::n::s::perform_bitwise_operation
  - basic::test_bit_operations
  - basic::test_redis_server_down
  - basic::test_zinterstore_weights
  - basic::test_zunionstore_weights
  - basic::test_zrembylex
  - basic::test_zrandmember
  - basic::test_sismember
  - basic::test_smismember
  - basic::test_object_freq_command
  - basic::test_object_idletime_command
  - basic::test_mget
  - basic::test_variable_length_get
  - basic::test_multi_generics
  - basic::test_set_options_with_get
  - basic::test_set_options_options
  - basic::test_set_options_value_comparison
  - basic::test_set_value_comparison_value_equals
  - basic::test_set_value_comparison_value_not_equals
  - basic::test_digest_command
  - basic::test_set_value_comparison_digest_equals
  - basic::test_set_value_comparison_digest_not_equals
  - basic::test_del_ex
  - basic::test_mset_options
  - basic::test_mset_ex_nx
  - basic::test_mset_ex_xx
  - basic::test_mset_ex_expiration_options
  - basic::test_copy_options
  - basic::test_copy
  - basic::test_expire_time
  - basic::test_timeout_leaves_usable_connection
  - b::a::s::i::c::::::::t::e::s::t::_::t::i::m::e::o::u::t::_::i::n::_::m::i::d::d::l::e::_::o::f::_::m::e::s::s::a::g::e::_::l::e::a::v::e::s::_::c::o::n::n::e::c::t::i::o::n::_::u::s::a::b::l::e::fake_redis
  - basic::test_timeout_in_middle_of_message_leaves_connection_usable
  - basic::test_blocking_sorted_set_api
  - basic::test_sorted_set_add_options
  - basic::test_vector_sets_basic_operations
  - basic::test_vector_sets_similarity_search
  - basic::test_vector_sets_auxiliary_commands
  - basic::test_vector_sets_edge_cases
  - basic::test_push_manager
  - basic::test_push_manager_disconnection
  - basic::test_raw_pubsub_with_push_manager
  - basic::test_select_db
  - basic::test_client_getname
  - basic::test_client_id
  - basic::test_client_setname
  - basic::test_role_primary
  - basic::test_connection_timeout_on_busy_server
  - basic::fail_on_empty_command
  - basic::test_connection_info_lib_name
  source_file: /src/redis-rs/redis/tests/test_basic.rs
- function_names:
  - cluster_async::smoke_test_connection
  - cluster_async::test_async_cluster_basic_cmd
  - cluster_async::test_async_cluster_numbered_database
  - cluster_async::assert_all_nodes_on_db
  - cluster_async::test_no_response_skips_response_even_on_error
  - cluster_async::test_reconnect_only_the_disconnected_node_leave_other_connections_intact
  - cluster_async::test_async_cluster_basic_eval
  - cluster_async::test_async_cluster_basic_script
  - cluster_async::test_async_cluster_route_flush_to_specific_node
  - cluster_async::test_async_cluster_route_flush_to_node_by_address
  - cluster_async::test_async_cluster_route_info_to_nodes
  - cluster_async::test_cluster_resp3
  - cluster_async::test_async_cluster_basic_pipe
  - cluster_async::test_pipeline_returns_server_errors
  - cluster_async::test_async_cluster_multi_shard_commands
  - cluster_async::test_async_cluster_can_run_a_transaction
  - cluster_async::test_async_cluster_default_reject_invalid_hostnames
  - cluster_async::test_async_cluster_danger_accept_invalid_hostnames
  - cluster_async::async_cluster_node_address_map_fixes_tls_hostname_mismatch
  - cluster_async::test_async_cluster_basic_failover
  - cluster_async::do_failover
  - cluster_async::test_failover
  - cluster_async::test_async_cluster_error_in_inner_connection
  - cluster_async::test_cluster_async_can_connect_to_server_that_sends_cluster_slots_with_null_host_name
  - cluster_async::test_cluster_async_can_connect_to_server_that_sends_cluster_slots_with_partial_nodes_with_unknown_host_name
  - cluster_async::test_async_cluster_retries
  - cluster_async::test_async_cluster_readonly_error_refreshes_slots_and_retries
  - cluster_async::test_async_cluster_tryagain_exhaust_retries
  - cluster_async::test_async_cluster_move_error_when_new_node_is_added
  - cluster_async::test_async_cluster_refresh_topology_even_with_zero_retries
  - cluster_async::test_async_cluster_reconnect_even_with_zero_retries
  - cluster_async::test_async_cluster_ask_redirect
  - cluster_async::test_async_cluster_ask_save_new_connection
  - cluster_async::test_async_cluster_reset_routing_if_redirect_fails
  - cluster_async::test_async_cluster_ask_redirect_even_if_original_call_had_no_route
  - cluster_async::test_async_cluster_ask_error_when_new_node_is_added
  - cluster_async::test_async_cluster_random_replica_read
  - cluster_async::test_async_cluster_round_robin_read
  - cluster_async::test_async_cluster_fan_out
  - cluster_async::test_async_cluster_fan_out_to_all_primaries
  - cluster_async::test_async_cluster_fan_out_to_all_nodes
  - cluster_async::test_async_cluster_fan_out_once_to_each_primary_when_no_replicas_are_available
  - cluster_async::test_async_cluster_fan_out_once_even_if_primary_has_multiple_slot_ranges
  - cluster_async::test_async_cluster_route_according_to_passed_argument
  - cluster_async::test_async_cluster_fan_out_and_aggregate_numeric_response_with_min
  - cluster_async::test_async_cluster_fan_out_and_aggregate_logical_array_response
  - cluster_async::test_async_cluster_fan_out_and_return_one_succeeded_response
  - cluster_async::test_async_cluster_fan_out_and_return_nil_if_no_other_value_was_received
  - cluster_async::test_async_cluster_fan_out_and_fail_one_succeeded_if_there_are_no_successes
  - cluster_async::test_async_cluster_fan_out_and_return_all_succeeded_response
  - cluster_async::test_async_cluster_fan_out_and_fail_all_succeeded_if_there_is_a_single_failure
  - cluster_async::test_async_cluster_fan_out_and_return_one_succeeded_ignoring_empty_values
  - cluster_async::test_async_cluster_fan_out_and_return_map_of_results_for_special_response_policy
  - cluster_async::test_async_cluster_fan_out_and_combine_arrays_of_values
  - cluster_async::test_async_cluster_split_multi_shard_command_and_combine_arrays_of_values
  - cluster_async::test_async_cluster_handle_asking_error_in_split_multi_shard_command
  - cluster_async::test_async_cluster_with_username_and_password
  - cluster_async::test_async_cluster_io_error
  - cluster_async::test_async_cluster_io_error_without_fallback_redirects
  - cluster_async::test_async_cluster_io_error_recovers_via_repair
  - cluster_async::test_async_cluster_reconnect_does_not_stall_healthy_shard
  - cluster_async::test_async_cluster_read_routes_around_dead_replica
  - cluster_async::test_async_cluster_non_retryable_error_should_not_retry
  - cluster_async::test_async_cluster_can_be_created_with_partial_slot_coverage
  - cluster_async::test_async_cluster_handle_complete_server_disconnect_without_panicking
  - cluster_async::test_async_cluster_reconnect_after_complete_server_disconnect
  - cluster_async::test_async_cluster_reconnect_after_complete_server_disconnect_route_to_many
  - cluster_async::test_async_cluster_saves_reconnected_connection
  - cluster_async::test_async_cluster_limit_reconnection_attempts
  - c::l::u::s::t::e::r::_::a::s::y::n::c::::::::t::e::s::t::_::k::i::l::l::_::c::o::n::n::e::c::t::i::o::n::_::o::n::_::d::r::o::p::_::e::v::e::n::_::w::h::e::n::_::b::l::o::c::k::i::n::g::count_ids
  - cluster_async::test_kill_connection_on_drop_even_when_blocking
  - cluster_async::test_async_cluster_do_not_retry_when_receiver_was_dropped
  - cluster_async::test_async_cluster_connect_lazily
  - cluster_async::test_fail_on_empty_command
  - cluster_async::subscribe_to_channels
  - cluster_async::get_push_with_timeout
  - cluster_async::get_push
  - cluster_async::check_publishing
  - cluster_async::test_pub_sub_subscription
  - cluster_async::test_pub_sub_subscription_with_config
  - cluster_async::test_pub_sub_shardnumsub
  - cluster_async::test_pub_sub_unsubscription
  - cluster_async::test_connection_is_still_usable_if_pubsub_receiver_is_dropped
  - cluster_async::test_multiple_subscribes_and_unsubscribes_work
  - cluster_async::test_pub_sub_reconnect_after_disconnect
  - cluster_async::test_pub_sub_should_not_reconnect_if_subscription_failed
  - cluster_async::test_async_cluster_basic_cmd_with_mtls
  - cluster_async::test_async_cluster_should_not_connect_without_mtls_enabled
  - cluster_async::check_unwatched
  - cluster_async::test_simple_case_success
  - cluster_async::test_transaction_should_retry_on_watch
  - cluster_async::test_transaction_should_retry_on_none_from_closure
  - cluster_async::test_transaction_abort_if_internal_function_returns_error
  source_file: /src/redis-rs/redis/tests/test_cluster_async.rs
- function_names:
  - ArbitraryValue::arbitrary
  - ArbitraryValue::shrink
  - arbitrary_value
  - PartialAsyncRead::poll_read
  source_file: /src/redis-rs/redis/tests/parser.rs
- function_names:
  - test_geoadd_single_tuple
  - test_geoadd_multiple_tuples
  - test_geodist_existing_members
  - test_geodist_support_option
  - test_geohash
  - test_geopos
  - test_use_coord_struct
  - test_georadius
  - test_georadius_by_member
  source_file: /src/redis-rs/redis/tests/test_geospatial.rs
- function_names:
  - test_module_bloom_single_value_updates
  - test_module_bloom_multiple_value_updates
  - test_module_bloom_infos
  - test_module_bloom_reserving
  - test_module_bloom_dump_and_load
  - test_module_bloom_dump_iterator
  source_file: /src/redis-rs/redis/tests/test_module_bloom.rs
- function_names:
  - test_acl_whoami
  - test_acl_help
  - test_acl_getsetdel_users
  - test_acl_cat
  - test_acl_genpass
  - test_acl_log
  - test_acl_dryrun
  - test_acl_info
  - test_acl_sample_info
  - token_based_authentication_acl_tests::init_logger
  - token_based_authentication_acl_tests::test_authentication_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::add_users_with_jwt_tokens
  - token_based_authentication_acl_tests::token_rotation_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::test_authentication_error_handling_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::test_multiple_connections_from_one_client_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::test_multiple_clients_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::test_server_rejects_after_user_invalidated
  - token_based_authentication_acl_tests::add_user_on_all_nodes
  - token_based_authentication_acl_tests::add_users_with_jwt_tokens_on_all_nodes
  - token_based_authentication_acl_tests::test_cluster_authentication_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::test_cluster_token_rotation_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::test_cluster_authentication_error_handling_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::test_cluster_multiple_connections_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::test_cluster_multiple_clients_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::delete_user_on_all_nodes
  - token_based_authentication_acl_tests::test_cluster_server_rejects_after_user_invalidated
  source_file: /src/redis-rs/redis/tests/test_acl.rs
- function_names:
  - test_module_json_serialize_error
  - test_module_json_arr_append
  - test_module_json_arr_index
  - test_module_json_arr_insert
  - test_module_json_arr_len
  - test_module_json_arr_pop
  - test_module_json_arr_trim
  - test_module_json_clear
  - test_module_json_del
  - test_module_json_get
  - test_module_json_mget
  - test_module_json_num_incr_by
  - test_module_json_obj_keys
  - test_module_json_obj_len
  - test_module_json_set
  - test_module_json_str_append
  - test_module_json_str_len
  - test_module_json_toggle
  - test_module_json_type
  - test_module_json_set_options_json_value
  - test_module_json_set_options_nx_xx
  - test_module_json_set_fpha_roundtrip
  - test_module_json_set_fpha_empty_payload
  - test_module_json_set_fpha_with_existence_check
  - test_module_json_set_fpha_fp16_overflow
  - test_module_json_set_fpha_fp16_partial_overflow
  - test_module_json_set_fpha_fp16_max_boundary
  - test_module_json_set_fpha_fp32_max_boundary
  - test_module_json_set_fpha_bf16_above_fp16_range
  - test_module_json_set_fpha_fp32_scientific_notation
  - test_module_json_set_fpha_bf16_truncation
  - test_module_json_set_fpha_fp16_truncation
  - test_module_json_set_fpha_matrix
  - test_module_json_set_fpha_object_with_array_fields
  - test_module_json_set_fpha_nested_partial_overflow
  - test_module_json_set_fpha_scalar
  source_file: /src/redis-rs/redis/tests/test_module_json.rs
- function_names:
  - init_logger
  - ImmediatelyFailingCredentialsProvider::subscribe
  - EmptyStreamCredentialsProvider::subscribe
  - credentials_provider_failures_tests::test_connection_fails_when_initial_credentials_request_returns_error
  - credentials_provider_failures_tests::test_connection_fails_when_credentials_stream_closes
  - credentials_provider_failures_tests::test_cluster_connection_fails_when_credentials_provider_returns_error
  - credentials_provider_failures_tests::test_cluster_connection_fails_when_credentials_stream_is_empty
  source_file: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
- function_names:
  - MockConnection::execute_cmd
  - MockConnection::execute_buffered_cmd
  - MockConnection::connect_with_config
  - MockConnection::connect
  - MockConnection::send_packed_command
  - MockConnection::set_write_timeout
  - MockConnection::set_read_timeout
  - MockConnection::recv_response
  - contains_slice
  - is_connection_check
  - respond_startup
  - respond_startup_with_replica
  - respond_startup_two_nodes
  - respond_startup_with_replica_using_config
  - broken_pipe_error
  - MockConnection::req_packed_command
  - MockConnection::req_packed_commands
  - MockConnection::get_db
  - MockConnection::req_packed_command
  - MockConnection::req_packed_commands
  - MockConnection::get_db
  - MockConnection::check_connection
  - MockConnection::is_open
  - RemoveHandler::drop
  - MockEnv::new
  - MockEnv::with_client_builder
  source_file: /src/redis-rs/redis/tests/support/mock_cluster.rs
- function_names:
  - current_thread_runtime
  - block_on_all
  - block_on_all_using_tokio
  - block_on_all_using_smol
  - start_tls_crypto_provider
  - TestContext::new
  - TestContext::new_with_mtls
  - TestContext::new_with_cert_auth
  - TestContext::new_with_cert_auth_field
  - TestContext::with_tls
  - TestContext::with_modules
  - TestContext::new_with_addr
  - TestContext::with_modules_and_tls
  - TestContext::with_modules_addr_and_tls
  - TestContext::with_modules_addr_tls_and_cert_auth
  - TestContext::connection
  - TestContext::async_connection
  - TestContext::async_pubsub
  - TestContext::stop_server
  - TestContext::multiplexed_async_connection_tokio
  - TestContext::async_connection_with_cache
  - TestContext::async_connection_with_cache_config
  - TestContext::get_available_components
  - encode_iter
  - encode_map
  - encode_value
  - load_certs_from_file
  - build_single_client
  - build_single_client_with_separate_client_cert
  - build_single_client
  - mtls_test::clean_node_info
  - mtls_test::create_cluster_client_from_cluster
  - build_simple_pipeline_for_invalidation
  - kill_client_async
  - spawn
  source_file: /src/redis-rs/redis/tests/support/mod.rs
- function_names:
  - assert_args
  source_file: /src/redis-rs/redis/tests/support/util.rs
- function_names:
  - TestSentinelContext::new
  - TestSentinelContext::new_with_cluster_client_builder
  - TestSentinelContext::sentinel
  - TestSentinelContext::sentinel_mut
  - TestSentinelContext::sentinels_connection_info
  - TestSentinelContext::sentinel_node_connection_info
  - TestSentinelContext::tls_mode
  - TestSentinelContext::wait_for_cluster_up
  source_file: /src/redis-rs/redis/tests/support/sentinel.rs
- function_names:
  - TestClusterContext::new
  - TestClusterContext::new_with_mtls
  - TestClusterContext::new_without_ip_alts
  - TestClusterContext::new_with_config
  - TestClusterContext::new_with_cluster_client_builder
  - TestClusterContext::new_insecure_with_cluster_client_builder
  - TestClusterContext::new_with_config_and_builder
  - TestClusterContext::new_client_with_builder
  - TestClusterContext::connection
  - TestClusterContext::async_connection
  - TestClusterContext::async_connection_with_config
  - TestClusterContext::async_generic_connection
  - TestClusterContext::wait_for_cluster_up
  - TestClusterContext::build_single_client_connection
  - TestClusterContext::disable_default_user
  - TestClusterContext::get_ports
  - TestClusterContext::get_available_components
  source_file: /src/redis-rs/redis/tests/support/cluster.rs
- function_names:
  - ComponentMatcher::matches
  - ComponentMatcher::from
  - ComponentMatcher::from
  - ComponentMatcher::from
  - ComponentMatcher::from
  - ComponentMatcher::from
  - AvailableComponents::parse_info
  - AvailableComponents::parse_info_kv
  - AvailableComponents::extract_version
  - AvailableComponents::supports
  - AvailableComponents::from
  - Vec::from
  - TestContextVersioning::supports
  - skip_if_context_does_not_support
  - run_test_if_version_supported
  source_file: /src/redis-rs/redis/tests/support/version.rs
- function_names:
  - inner_build_with_tls
  - retrieve_tls_certificates
  - ClientTlsParams::clone
  source_file: /src/redis-rs/redis/src/tls.rs
- function_names:
  - SetExpiry::write_redis_args
  - ExistenceCheck::write_redis_args
  - FieldExistenceCheck::write_redis_args
  - ValueComparison::ifeq
  - ValueComparison::ifne
  - ValueComparison::ifdeq
  - ValueComparison::ifdne
  - ValueComparison::arg_to_string
  - ValueComparison::write_redis_args
  - PushKind::has_reply
  - VerbatimFormat::fmt
  - PushKind::fmt
  - MapIter::next
  - MapIter::size_hint
  - OwnedMapIter::next
  - OwnedMapIter::size_hint
  - Value::looks_like_cursor
  - Value::as_sequence
  - Value::into_sequence
  - Value::as_map_iter
  - Value::into_map_iter
  - Value::extract_error
  - Value::extract_error_vec
  - Value::extract_error_map
  - Value::is_collection_of_len
  - Value::is_error_that_requires_action
  - Value::fmt
  - RedisResult::from_redis_value_ref
  - RedisResult::from_redis_value
  - InfoDict::new
  - InfoDict::get
  - InfoDict::find
  - InfoDict::contains_key
  - InfoDict::len
  - InfoDict::is_empty
  - InfoDict::deref
  - ReplicaInfo::from_redis_value_ref
  - ReplicaInfo::from_redis_value
  - Role::from_redis_value_ref
  - Role::from_redis_value
  - Role::new_primary
  - Role::new_replica
  - Role::new_sentinel
  - RedisWrite::write_arg_fmt
  - RedisWrite::reserve_space_for_args
  - RedisWrite::bufmut_for_next_arg
  - Vec::write_arg
  - Vec::write_arg_fmt
  - Vec::writer_for_next_arg
  - Vec::reserve_space_for_args
  - Vec::bufmut_for_next_arg
  - ToRedisArgs::to_redis_args
  - ToRedisArgs::describe_numeric_behavior
  - ToRedisArgs::num_of_args
  - ToRedisArgs::write_args_from_slice
  - ToRedisArgs::make_arg_iter_ref
  - ToRedisArgs::is_single_vec_arg
  - itoa_based_to_redis_impl
  - non_zero_itoa_based_to_redis_impl
  - ryu_based_to_redis_impl
  - u8::write_redis_args
  - u8::write_args_from_slice
  - u8::is_single_vec_arg
  - bignum_to_redis_impl
  - bool::write_redis_args
  - String::write_redis_args
  - '&str::write_redis_args'
  - Cow::write_redis_args
  - Option::write_redis_args
  - Option::describe_numeric_behavior
  - Option::num_of_args
  - impl_write_redis_args_for_collection
  - deref_to_write_redis_args_impl
  - impl_to_redis_args_for_set
  - impl_to_redis_args_for_map
  - to_redis_args_for_tuple
  - '&[T; N]::write_redis_args'
  - '&[T; N]::num_of_args'
  - vec_to_array
  - '[T; N]::from_redis_value_ref'
  - '[T; N]::from_redis_value'
  - FromRedisValue::from_redis_value_ref
  - FromRedisValue::from_redis_value_refs
  - FromRedisValue::from_redis_values
  - FromRedisValue::from_each_redis_values
  - FromRedisValue::from_byte_slice
  - FromRedisValue::from_byte_vec
  - get_inner_value
  - get_owned_inner_value
  - from_redis_value_for_num_internal
  - from_redis_value_for_num
  - u8::from_redis_value_ref
  - u8::from_redis_value
  - u8::from_byte_slice
  - u8::from_byte_vec
  - from_redis_value_for_bignum_internal
  - from_redis_value_for_bignum
  - bool::from_redis_value_ref
  - bool::from_redis_value
  - CString::from_redis_value_ref
  - CString::from_redis_value
  - String::from_redis_value_ref
  - String::from_redis_value
  - pointer_from_redis_value_impl
  - from_vec_from_redis_value
  - impl_from_redis_value_for_map
  - impl_from_redis_value_for_set
  - Value::from_redis_value_ref
  - Value::from_redis_value
  - ()::from_redis_value_ref
  - ()::from_redis_value
  - from_redis_value_for_tuple
  - InfoDict::from_redis_value_ref
  - InfoDict::from_redis_value
  - Option::from_redis_value_ref
  - Option::from_redis_value
  - bytes::Bytes::from_redis_value_ref
  - bytes::Bytes::from_redis_value
  - uuid::Uuid::from_redis_value_ref
  - uuid::Uuid::from_redis_value
  - uuid::Uuid::write_redis_args
  - from_redis_value_ref
  - from_redis_value
  - calculate_value_digest
  - is_valid_16_bytes_hex_digest
  - ProtocolVersion::supports_resp3
  - ExpireOption::write_redis_args
  - PushInfo::disconnect
  - ValueType::from
  - String::from
  - ValueType::from_redis_value_ref
  - ValueType::from_redis_value
  - IntegerReplyOrNoOp::raw
  - IntegerReplyOrNoOp::from_redis_value_ref
  - IntegerReplyOrNoOp::from_redis_value
  - IntegerReplyOrNoOp::eq
  - IntegerReplyOrNoOp::eq
  - IntegerReplyOrNoOp::eq
  - IntegerReplyOrNoOp::eq
  source_file: /src/redis-rs/redis/src/types.rs
- function_names:
  - SubscriptionAction::additive
  - SubscriptionTracker::to_request
  - SubscriptionTracker::update_with_request
  - SubscriptionTracker::update_with_cmd
  - SubscriptionTracker::get_subscription_pipeline
  - tests::test_add_and_remove_subscriptions
  - tests::test_skip_empty_subscriptions
  - tests::test_only_unsubscribe_from_existing_subscriptions
  source_file: /src/redis-rs/redis/src/subscription_tracker.rs
- function_names:
  - impl_manage_connection
  source_file: /src/redis-rs/redis/src/r2d2.rs
- function_names:
  - CommandCacheConfig::new
  - CommandCacheConfig::set_enable_cache
  - CommandCacheConfig::set_client_side_ttl
  - CommandCacheConfig::default
  - Cmd::fmt
  - Iter::next
  - CheckedIter::next
  - AsyncIterInner::next_item
  - AsyncIter::next_item
  - AsyncIter::poll_next
  - countdigits
  - bulklen
  - args_len
  - cmd_len
  - encode_command
  - write_command_to_vec
  - write_command
  - Cmd::write_arg
  - Cmd::write_arg_fmt
  - Cmd::writer_for_next_arg
  - Cmd::reserve_space_for_args
  - Cmd::bufmut_for_next_arg
  - Cmd::default
  - Cmd::new
  - Cmd::with_capacity
  - Cmd::capacity
  - Cmd::clear
  - Cmd::arg
  - Cmd::take
  - Cmd::cursor_arg
  - Cmd::get_packed_command
  - Cmd::write_packed_command
  - Cmd::write_packed_command_preallocated
  - Cmd::in_scan_mode
  - Cmd::query
  - Cmd::query_async
  - Cmd::set_cursor_and_get_batch
  - Cmd::iter
  - Cmd::iter_async
  - Cmd::exec
  - Cmd::exec_async
  - Cmd::args_iter
  - Cmd::arg_idx
  - Cmd::set_no_response
  - Cmd::is_no_response
  - Cmd::set_cache_config
  - Cmd::get_cache_config
  - Cmd::is_empty
  - cmd
  - pack_command
  - pipe
  - tests::args_iter_to_str
  - tests::assert_arg_equality
  - tests::assert_practical_equivalent
  - tests::test_cmd_packed_command_simple_args
  - tests::test_cmd_packed_command_with_cursor
  - tests::test_cmd_clean
  - tests::test_cmd_clean_cache_aio
  - tests::test_cmd_writer_for_next_arg
  - tests::test_cmd_writer_for_next_arg_multiple
  - tests::test_cmd_writer_for_next_arg_empty
  - tests::test_cmd_bufmut_for_next_arg
  - tests::test_cmd_bufmut_for_next_arg_multiple
  - tests::test_cmd_bufmut_for_next_arg_empty
  - tests::test_cmd_arg_idx
  source_file: /src/redis-rs/redis/src/cmd.rs
- function_names:
  - fail
  source_file: /src/redis-rs/redis/src/macros.rs
- function_names:
  - Pipeline::new
  - Pipeline::with_capacity
  - Pipeline::atomic
  - Pipeline::ignore_errors
  - Pipeline::is_transaction
  - Pipeline::get_packed_pipeline
  - Pipeline::len
  - Pipeline::is_empty
  - Pipeline::query
  - Pipeline::query_async
  - Pipeline::exec
  - Pipeline::exec_async
  - Pipeline::complete_request
  - encode_pipeline
  - write_pipeline
  - implement_pipeline_commands
  - Pipeline::set_cache_config
  - Pipeline::into_cmd_iter
  - tests::test_pipe
  - tests::server_error
  - tests::test_pipeline_passes_values_only_from_non_ignored_commands
  - tests::test_pipeline_passes_errors_from_ignored_commands
  - tests::test_pipeline_passes_response_from_each_commands_despite_errors
  source_file: /src/redis-rs/redis/src/pipeline.rs
- function_names:
  - Client::open
  - Client::get_connection
  - Client::get_connection_with_timeout
  - Client::get_connection_info
  - Client::build_with_tls
  - AsyncConnectionConfig::default
  - AsyncConnectionConfig::new
  - AsyncConnectionConfig::set_connection_timeout
  - AsyncConnectionConfig::set_response_timeout
  - AsyncConnectionConfig::set_push_sender
  - AsyncConnectionConfig::set_push_sender_internal
  - AsyncConnectionConfig::set_cache_config
  - AsyncConnectionConfig::set_cache_manager
  - AsyncConnectionConfig::set_dns_resolver
  - AsyncConnectionConfig::set_dns_resolver_internal
  - AsyncConnectionConfig::set_pipeline_buffer_size
  - AsyncConnectionConfig::set_concurrency_limit
  - AsyncConnectionConfig::set_write_backpressure_boundary
  - AsyncConnectionConfig::set_credentials_provider
  - AsyncConnectionConfig::set_credentials_provider_internal
  - Client::get_multiplexed_async_connection
  - Client::get_multiplexed_async_connection_with_config
  - Client::get_connection_manager
  - Client::get_connection_manager_lazy
  - Client::get_connection_manager_with_config
  - Client::get_multiplexed_async_connection_inner_with_timeout
  - Client::get_multiplexed_async_connection_inner
  - Client::create_multiplexed_async_connection_inner
  - Client::get_simple_async_connection_dynamically
  - Client::get_simple_async_connection
  - Client::connection_info
  - Client::get_async_pubsub
  - Client::get_async_monitor
  - Client::req_packed_command
  - Client::req_packed_commands
  - Client::get_db
  - Client::check_connection
  - Client::is_open
  - test::regression_293_parse_ipv6_with_interface
  - test::test_async_connection_config_pipeline_buffer_size_default
  - test::test_async_connection_config_pipeline_buffer_size_custom
  - test::test_async_connection_config_concurrency_limit_default
  - test::test_async_connection_config_concurrency_limit_custom
  - test::test_async_connection_config_write_backpressure_boundary_default
  - test::test_async_connection_config_write_backpressure_boundary_custom
  source_file: /src/redis-rs/redis/src/client.rs
- function_names:
  - TaskAborter::drop
  - EntraIdCredentialsProvider::validate_scopes
  - EntraIdCredentialsProvider::convert_credentials
  - EntraIdCredentialsProvider::convert_error
  - EntraIdCredentialsProvider::convert_error_ref
  - EntraIdCredentialsProvider::unwrap_credential
  - EntraIdCredentialsProvider::notify_subscribers
  - EntraIdCredentialsProvider::start_refresh_service
  - EntraIdCredentialsProvider::new_developer_tools
  - EntraIdCredentialsProvider::new_developer_tools_with_scopes
  - EntraIdCredentialsProvider::new_client_secret
  - EntraIdCredentialsProvider::new_client_secret_with_scopes
  - EntraIdCredentialsProvider::new_client_certificate
  - EntraIdCredentialsProvider::new_client_certificate_with_scopes
  - EntraIdCredentialsProvider::new_system_assigned_managed_identity
  - EntraIdCredentialsProvider::new_system_assigned_managed_identity_with_scopes
  - EntraIdCredentialsProvider::new_user_assigned_managed_identity
  - EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
  - EntraIdCredentialsProvider::new_with_credential
  - EntraIdCredentialsProvider::start
  - EntraIdCredentialsProvider::subscribe
  - EntraIdCredentialsProvider::fmt
  - tests::test_entra_id_provider_creation
  - tests::test_scope_validation
  - tests::test_custom_scopes
  - entra_id_mock_tests::init_logger
  - entra_id_mock_tests::create_mock_entra_id_credentials_provider
  - entra_id_mock_tests::create_arc_mock_entra_id_credentials_provider
  - entra_id_mock_tests::test_mock_successful_authentication
  - entra_id_mock_tests::test_mock_authentication_failure
  - entra_id_mock_tests::test_mock_retry_mechanism
  - entra_id_mock_tests::test_mock_multiple_subscribers
  - entra_id_mock_tests::test_mock_multiple_tokens_over_time
  - entra_id_mock_tests::test_mock_scope_validation
  - entra_id_mock_tests::test_mock_subscriber_cleanup
  - entra_id_mock_tests::test_mock_provider_with_running_background_task_cleanup
  source_file: /src/redis-rs/redis/src/entra_id.rs
- function_names:
  - err_parser
  - get_push_kind
  - value
  - to_redis_err
  - aio_support::parse_redis_value_async
  - Parser::default
  - Parser::new
  - Parser::parse_value
  - parse_redis_value
  - tests::decode_eof_returns_none_at_eof
  - tests::decode_eof_returns_error_inside_array_and_can_parse_more_inputs
  - tests::parse_nested_error_and_handle_more_inputs
  - tests::decode_resp3_double
  - tests::decode_resp3_map
  - tests::decode_resp3_boolean
  - tests::decode_resp3_blob_error
  - tests::decode_resp3_big_number
  - tests::decode_resp3_set
  - tests::decode_resp3_push
  - tests::test_max_recursion_depth_set_and_array
  - tests::test_max_recursion_depth_map
  source_file: /src/redis-rs/redis/src/parser.rs
- function_names:
  - impl_bb8_manage_connection
  source_file: /src/redis-rs/redis/src/bb8.rs
- function_names:
  - not_a_sentinel_error
  - SentinelNodeConnectionInfo::set_tls_mode
  - SentinelNodeConnectionInfo::set_redis_connection_info
  - SentinelNodeConnectionInfo::set_tcp_settings
  - SentinelNodeConnectionInfo::create_connection_info
  - '&SentinelNodeConnectionInfo::default'
  - sentinel_masters_cmd
  - sentinel_replicas_cmd
  - is_master_valid
  - is_replica_valid
  - random_replica_index
  - build_replica_clients
  - try_connect_to_first_replica
  - valid_addrs
  - determine_master_from_role_or_info_replication
  - get_node_role
  - check_role
  - check_info_replication
  - evaluate_role_check_errors
  - parse_replication_info
  - find_valid_master
  - async_determine_master_from_role_or_info_replication
  - async_determine_slave_from_role_or_info_replication
  - async_check_role
  - async_check_info_replication
  - async_find_valid_master
  - get_valid_replicas_addresses
  - get_valid_replicas_addresses
  - a::s::y::n::c::_::g::e::t::_::v::a::l::i::d::_::r::e::p::l::i::c::a::s::_::a::d::d::r::e::s::s::e::s::is_replica_role_valid
  - async_get_valid_replicas_addresses
  - a::s::y::n::c::_::g::e::t::_::v::a::l::i::d::_::r::e::p::l::i::c::a::s::_::a::d::d::r::e::s::s::e::s::is_replica_role_valid
  - async_get_valid_replicas_addresses
  - async_reconnect
  - async_try_single_sentinel
  - reconnect
  - try_single_sentinel
  - Sentinel::build
  - Sentinel::build
  - Sentinel::build_inner
  - Sentinel::try_all_sentinels
  - Sentinel::get_sentinel_masters
  - Sentinel::get_sentinel_replicas
  - Sentinel::find_master_address
  - Sentinel::find_master_address
  - Sentinel::find_valid_replica_addresses
  - Sentinel::find_valid_replica_addresses
  - Sentinel::master_for
  - Sentinel::get_replica_clients
  - Sentinel::replica_for
  - Sentinel::replica_rotate_for
  - Sentinel::async_try_all_sentinels
  - Sentinel::async_get_sentinel_masters
  - Sentinel::async_get_sentinel_replicas
  - Sentinel::async_find_master_address
  - Sentinel::async_find_master_address
  - Sentinel::async_find_valid_replica_addresses
  - Sentinel::async_find_valid_replica_addresses
  - Sentinel::async_master_for
  - Sentinel::async_get_replica_clients
  - Sentinel::async_replica_for
  - Sentinel::async_replica_rotate_for
  - LockedSentinelClient::new
  - LockedSentinelClient::get_connection
  - AsyncLockedSentinelClient::new
  - AsyncLockedSentinelClient::get_async_connection
  - SentinelClient::build
  - SentinelClient::build
  - SentinelClient::build_inner
  - SentinelClient::get_client
  - SentinelClient::get_sentinel_client
  - SentinelClient::get_connection
  - SentinelClient::async_get_client
  - SentinelClient::async_get_sentinel_client
  - SentinelClient::get_async_connection
  - SentinelClient::get_async_connection_with_config
  - SentinelClientBuilder::new
  - SentinelClientBuilder::build
  - SentinelClientBuilder::set_client_to_redis_tls_mode
  - SentinelClientBuilder::set_client_to_redis_db
  - SentinelClientBuilder::set_client_to_redis_username
  - SentinelClientBuilder::set_client_to_redis_password
  - SentinelClientBuilder::set_client_to_redis_protocol
  - SentinelClientBuilder::set_client_to_redis_certificates
  - SentinelClientBuilder::set_client_to_redis_tcp_settings
  - SentinelClientBuilder::set_client_to_sentinel_tls_mode
  - SentinelClientBuilder::set_client_to_sentinel_username
  - SentinelClientBuilder::set_client_to_sentinel_password
  - SentinelClientBuilder::set_client_to_sentinel_tcp_settings
  - SentinelClientBuilder::set_client_to_sentinel_protocol
  - SentinelClientBuilder::set_client_to_sentinel_certificates
  source_file: /src/redis-rs/redis/src/sentinel.rs
- function_names:
  - check_resp3
  - t::e::s::t::s::::::::t::e::s::t::_::i::s::_::s::e::n::d::assert_send
  - tests::test_is_send
  source_file: /src/redis-rs/redis/src/lib.rs
- function_names:
  - TokenRefreshConfig::set_expiration_refresh_ratio
  - TokenRefreshConfig::set_retry_config
  - TokenRefreshConfig::default
  - RetryConfig::default
  - RetryConfig::set_number_of_retries
  - RetryConfig::set_min_delay
  - RetryConfig::set_max_delay
  - RetryConfig::set_exponent_base
  - credentials_management_utils::calculate_refresh_threshold
  - credentials_management_utils::extract_oid_from_jwt
  - auth_management_tests::test_token_refresh_config
  - auth_management_tests::test_refresh_threshold_calculation
  - auth_management_tests::test_extract_oid_from_jwt
  - auth_management_tests::test_extract_oid_from_jwt_with_invalid_token
  - auth_management_tests::test_extract_oid_from_jwt_with_no_oid_claim
  source_file: /src/redis-rs/redis/src/auth_management.rs
- function_names:
  - connect_tcp
  - connect_tcp_timeout
  - parse_redis_url
  - ConnectionAddr::eq
  - ConnectionAddr::is_supported
  - ConnectionAddr::set_danger_accept_invalid_hostnames
  - ConnectionAddr::tls_mode
  - ConnectionAddr::fmt
  - ConnectionInfo::addr
  - ConnectionInfo::tcp_settings
  - ConnectionInfo::redis_settings
  - ConnectionInfo::set_addr
  - ConnectionInfo::set_tcp_settings
  - ConnectionInfo::set_redis_settings
  - RedisConnectionInfo::username
  - RedisConnectionInfo::password
  - RedisConnectionInfo::protocol
  - RedisConnectionInfo::skip_set_lib_name
  - RedisConnectionInfo::lib_name
  - RedisConnectionInfo::lib_ver
  - RedisConnectionInfo::db
  - RedisConnectionInfo::set_username
  - RedisConnectionInfo::set_password
  - RedisConnectionInfo::set_protocol
  - RedisConnectionInfo::set_skip_set_lib_name
  - RedisConnectionInfo::set_lib_name
  - RedisConnectionInfo::set_db
  - RedisConnectionInfo::fmt
  - ConnectionInfo::from_str
  - ConnectionInfo::into_connection_info
  - ConnectionAddr::into_connection_info
  - '&str::into_connection_info'
  - (T, u16)::into_connection_info
  - String::into_connection_info
  - parse_protocol
  - is_wildcard_address
  - url_to_tcp_connection_info
  - url_to_unix_connection_info
  - url_to_unix_connection_info
  - url::Url::into_connection_info
  - NoCertificateVerification::verify_server_cert
  - NoCertificateVerification::verify_tls12_signature
  - NoCertificateVerification::verify_tls13_signature
  - NoCertificateVerification::supported_verify_schemes
  - NoCertificateVerification::fmt
  - is_hostname_error
  - AcceptInvalidHostnamesCertVerifier::verify_server_cert
  - AcceptInvalidHostnamesCertVerifier::verify_tls12_signature
  - AcceptInvalidHostnamesCertVerifier::verify_tls13_signature
  - AcceptInvalidHostnamesCertVerifier::supported_verify_schemes
  - ActualConnection::new
  - ActualConnection::send_bytes
  - ActualConnection::set_write_timeout
  - ActualConnection::set_read_timeout
  - ActualConnection::is_open
  - create_rustls_config
  - authenticate_cmd
  - connect
  - connection_setup_pipeline
  - check_resp3_auth
  - check_resp2_auth
  - check_db_select
  - check_caching
  - check_connection_setup
  - execute_connection_pipeline
  - setup_connection
  - ConnectionLike::req_command
  - ConnectionLike::supports_pipelining
  - Connection::send_packed_command
  - Connection::recv_response
  - Connection::set_write_timeout
  - Connection::set_read_timeout
  - Connection::as_pubsub
  - Connection::exit_pubsub
  - Connection::clear_active_subscriptions
  - Connection::send_push
  - Connection::try_send
  - Connection::send_disconnect
  - Connection::close_connection
  - Connection::read
  - Connection::set_push_sender
  - Connection::send_bytes
  - Connection::subscribe_resp3
  - Connection::psubscribe_resp3
  - Connection::unsubscribe_resp3
  - Connection::punsubscribe_resp3
  - Connection::req_command
  - Connection::req_packed_command
  - Connection::req_packed_commands
  - Connection::get_db
  - Connection::check_connection
  - Connection::is_open
  - T::req_packed_command
  - T::req_packed_commands
  - T::req_command
  - T::get_db
  - T::supports_pipelining
  - T::check_connection
  - T::is_open
  - PubSub::new
  - PubSub::cache_messages_until_received_response
  - PubSub::subscribe
  - PubSub::psubscribe
  - PubSub::unsubscribe
  - PubSub::punsubscribe
  - PubSub::ping_message
  - PubSub::ping
  - PubSub::get_message
  - PubSub::set_read_timeout
  - PubSub::drop
  - Msg::from_value
  - Msg::from_owned_value
  - Msg::from_push_info
  - Msg::get_channel
  - Msg::get_channel_name
  - Msg::get_payload
  - Msg::get_payload_bytes
  - Msg::from_pattern
  - Msg::get_pattern
  - transaction
  - resp2_is_pub_sub_state_cleared
  - resp3_is_pub_sub_state_cleared
  - no_sub_err_is_pub_sub_state_cleared
  - get_resp3_hello_command_error
  - tests::assert_lib_name_in_connection_setup_pipeline
  - tests::test_parse_redis_url
  - tests::test_url_to_tcp_connection_info
  - tests::test_url_to_tcp_connection_info_failed
  - tests::test_url_to_unix_connection_info
  - tests::redis_connection_info_lib_name_default
  - tests::redis_connection_info_lib_name_custom
  source_file: /src/redis-rs/redis/src/connection.rs
- function_names:
  - BasicAuth::new
  - BasicAuth::username
  - BasicAuth::password
  - BasicAuth::set_username
  - BasicAuth::set_password
  source_file: /src/redis-rs/redis/src/auth.rs
- function_names:
  - BloomFilterInfoType::write_redis_args
  - BloomFilterInfoTypeResponse::deref
  - BloomFilterInfoTypeResponse::eq
  - BloomFilterInfoTypeResponse::from_redis_value
  - BloomFilterScalingOptions::write_redis_args
  - BloomFilterInsertOptions::nocreate
  - BloomFilterInsertOptions::expansion
  - BloomFilterInsertOptions::error_rate
  - BloomFilterInsertOptions::capacity
  - BloomFilterInsertOptions::write_redis_args
  - BloomFilterDumpChunk::from_redis_value
  - BloomFilterDumpIterator::new
  - BloomFilterDumpIterator::next
  - tests::info_type_response_from_value_wrong_type
  - tests::info_type_response_from_value_array_missing_item
  - tests::info_type_response_from_value_array_extra_item
  - tests::info_type_response_from_value_array_wrong_type
  - tests::info_type_response_from_value_map_missing_item
  - tests::info_type_response_from_value_map_extra_item
  - tests::info_type_response_from_value_map_wrong_type
  - tests::info_type_response_from_value_ok_resp2
  - tests::info_type_response_from_value_ok_resp3
  - tests::info_type_response_from_value_ok_int
  - tests::info_type_response_from_value_ok_float_in_string
  - tests::info_type_response_from_value_ok_nil
  - tests::dump_chunk_from_value_no_array
  - tests::dump_chunk_from_value_first_item_wrong_type
  - tests::dump_chunk_from_value_second_item_wrong_type
  - tests::dump_chunk_from_value_missing_item
  - tests::dump_chunk_from_value_extra_item
  - tests::dump_chunk_from_value_ok
  source_file: /src/redis-rs/redis/src/bloom.rs
- function_names:
  - Script::new
  - Script::get_hash
  - Script::load_cmd
  - Script::load
  - Script::load_async
  - Script::key
  - Script::arg
  - Script::prepare_invoke
  - Script::invoke
  - Script::invoke_async
  - ScriptInvocation::arg
  - ScriptInvocation::key
  - ScriptInvocation::invoke
  - ScriptInvocation::invoke_async
  - ScriptInvocation::load
  - ScriptInvocation::load_async
  - ScriptInvocation::estimate_buflen
  - ScriptInvocation::eval_cmd
  - tests::script_eval_should_work
  source_file: /src/redis-rs/redis/src/script.rs
- function_names:
  - RedisError::from
  - RedisError::eq
  - RedisError::from
  - RedisError::from
  - RedisError::from
  - RedisError::from
  - RedisError::from
  - RedisError::source
  - RedisError::fmt
  - RedisError::fmt
  - RedisError::kind
  - RedisError::detail
  - RedisError::code
  - RedisError::category
  - RedisError::is_io_error
  - RedisError::as_io_error
  - RedisError::is_cluster_error
  - RedisError::is_connection_refusal
  - RedisError::is_timeout
  - RedisError::is_connection_dropped
  - RedisError::is_unrecoverable_error
  - RedisError::redirect_node
  - RedisError::retry_method
  - RedisError::into_server_errors
  - RedisError::pipeline
  - RedisError::make_aborted_transaction
  - RedisError::make_empty_command
  - make_extension_error
  - RedisError::from
  - RedisError::from
  - RedisError::from
  - ErrorKind::from
  - RedisError::from
  - ServerError::try_from
  - tests::test_redirect_node
  source_file: /src/redis-rs/redis/src/errors/redis_error.rs
- function_names:
  - ServerErrorKind::code
  - ServerErrorKind::retry_method
  - ServerError::kind
  - ServerError::code
  - ServerError::details
  - ServerError::requires_action
  - ServerError::fmt
  source_file: /src/redis-rs/redis/src/errors/server_error.rs
- function_names:
  - invalid_type_error_inner
  - invalid_type_error
  - closed_connection_error
  - tests::test_closed_connection_error
  source_file: /src/redis-rs/redis/src/errors/mod.rs
- function_names:
  - ParsingError::fmt
  - ParsingError::from
  - ParsingError::from
  - ParsingError::from
  - ParsingError::from
  - ParsingError::from
  - ParsingError::from
  - ParsingError::from
  source_file: /src/redis-rs/redis/src/errors/parsing_error.rs
- function_names: []
  source_file: /src/redis-rs/redis/src/io/dns.rs
- function_names:
  - TcpSettings::nodelay
  - TcpSettings::keepalive
  - TcpSettings::user_timeout
  - TcpSettings::set_nodelay
  - TcpSettings::set_keepalive
  - TcpSettings::set_linger_time
  - TcpSettings::set_user_timeout
  - TcpSettings::default
  - stream_with_settings
  source_file: /src/redis-rs/redis/src/io/tcp.rs
- function_names: []
  source_file: /src/redis-rs/redis/src/io/mod.rs
- function_names:
  - ResponseAggregate::new
  - Pipeline::fmt
  - send_push
  - send_disconnect
  - PipelineSink::new
  - PipelineSink::poll_read
  - PipelineSink::send_result
  - PipelineSink::poll_ready
  - PipelineSink::start_send
  - PipelineSink::poll_flush
  - PipelineSink::poll_close
  - Pipeline::resolve_buffer_size
  - Pipeline::new
  - Pipeline::send_recv
  - permit_vec_capacity
  - build_concurrency_limiter
  - MultiplexedConnection::fmt
  - MultiplexedConnection::new
  - MultiplexedConnection::new_with_config
  - MultiplexedConnection::set_task_handle
  - MultiplexedConnection::set_response_timeout
  - MultiplexedConnection::send_packed_command
  - MultiplexedConnection::send_packed_commands
  - MultiplexedConnection::get_cache_statistics
  - MultiplexedConnection::req_packed_command
  - MultiplexedConnection::req_packed_commands
  - MultiplexedConnection::get_db
  - MultiplexedConnection::subscribe
  - MultiplexedConnection::unsubscribe
  - MultiplexedConnection::psubscribe
  - MultiplexedConnection::punsubscribe
  - MultiplexedConnection::re_authenticate_with_credentials
  - tests::test_pipeline_resolve_buffer_size_default
  - tests::test_pipeline_resolve_buffer_size_custom
  - tests::test_permit_vec_capacity_is_bounded_by_limit
  - tests::test_build_concurrency_limiter_rejects_zero
  - tests::test_build_concurrency_limiter_allows_none_and_positive
  - tests::mock_conn_info
  - tests::create_mock_connection
  - tests::test_concurrency_limit_enforced
  - tests::test_no_limit_bypasses_concurrency_limit
  - tests::test_pipeline_acquires_multiple_permits
  - tests::test_pipeline_proceeds_with_partial_permits
  - tests::test_permit_released_on_cancellation
  - tests::test_deadlock_when_writes_blocked_with_pending_response
  - tests::test_permit_released_on_response_timeout
  source_file: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
- function_names:
  - TaskHandle::detach
  - HandleContainer::new
  - HandleContainer::drop
  - SharedHandleContainer::new
  - set_runtime
  - prefer_smol
  - prefer_tokio
  - Runtime::locate
  - Runtime::spawn
  - Runtime::timeout
  - Runtime::sleep
  - Runtime::locate_and_sleep
  - RedisError::from
  source_file: /src/redis-rs/redis/src/aio/runtime.rs
- function_names:
  - ConnectionManagerConfig::fmt
  - ConnectionManagerConfig::new
  - ConnectionManagerConfig::min_delay
  - ConnectionManagerConfig::max_delay
  - ConnectionManagerConfig::exponent_base
  - ConnectionManagerConfig::number_of_retries
  - ConnectionManagerConfig::response_timeout
  - ConnectionManagerConfig::connection_timeout
  - ConnectionManagerConfig::automatic_resubscription
  - ConnectionManagerConfig::cache_config
  - ConnectionManagerConfig::set_min_delay
  - ConnectionManagerConfig::set_max_delay
  - ConnectionManagerConfig::set_exponent_base
  - ConnectionManagerConfig::set_number_of_retries
  - ConnectionManagerConfig::set_response_timeout
  - ConnectionManagerConfig::set_connection_timeout
  - ConnectionManagerConfig::set_push_sender
  - ConnectionManagerConfig::set_automatic_resubscription
  - ConnectionManagerConfig::set_cache_config
  - ConnectionManagerConfig::set_pipeline_buffer_size
  - ConnectionManagerConfig::set_concurrency_limit
  - ConnectionManagerConfig::set_write_backpressure_boundary
  - ConnectionManagerConfig::set_credentials_provider
  - ConnectionManagerConfig::default
  - ConnectionManager::fmt
  - reconnect_if_dropped
  - reconnect_if_io_error
  - ConnectionManager::new
  - ConnectionManager::new_with_config
  - ConnectionManager::new_lazy_with_config
  - ConnectionManager::new_connection
  - ConnectionManager::reconnect
  - ConnectionManager::check_for_disconnect_pushes
  - ConnectionManager::send_packed_command
  - ConnectionManager::send_packed_commands
  - ConnectionManager::update_subscription_tracker
  - ConnectionManager::subscribe
  - ConnectionManager::unsubscribe
  - ConnectionManager::psubscribe
  - ConnectionManager::punsubscribe
  - ConnectionManager::get_cache_statistics
  - ConnectionManager::req_packed_command
  - ConnectionManager::req_packed_commands
  - ConnectionManager::get_db
  - tests::test_connection_manager_config_pipeline_buffer_size_default
  - tests::test_connection_manager_config_pipeline_buffer_size_custom
  - tests::test_connection_manager_config_concurrency_limit_default
  - tests::test_connection_manager_config_concurrency_limit_custom
  - tests::test_connection_manager_config_write_backpressure_boundary_default
  - tests::test_connection_manager_config_write_backpressure_boundary_custom
  - tests::test_lazy_connection_manager_with_config
  - tests::test_lazy_connection_manager_wires_write_backpressure_boundary
  - tests::test_lazy_connection_manager_rejects_invalid_config
  source_file: /src/redis-rs/redis/src/aio/connection_manager.rs
- function_names:
  - PipelineSink::new
  - PipelineSink::poll_read
  - PipelineSink::handle_message
  - PipelineSink::poll_ready
  - PipelineSink::start_send
  - PipelineSink::poll_flush
  - PipelineSink::poll_close
  - PubSubSink::new
  - PubSubSink::send_recv
  - PubSubSink::subscribe
  - PubSubSink::unsubscribe
  - PubSubSink::psubscribe
  - PubSubSink::punsubscribe
  - PubSubSink::ping_message
  - PubSubSink::ping
  - PubSub::new
  - PubSub::subscribe
  - PubSub::unsubscribe
  - PubSub::psubscribe
  - PubSub::punsubscribe
  - PubSub::ping
  - PubSub::ping_message
  - PubSub::on_message
  - PubSub::into_on_message
  - PubSub::split
  - PubSubStream::poll_next
  source_file: /src/redis-rs/redis/src/aio/pubsub.rs
- function_names:
  - connect_tcp
  - Tokio::poll_write
  - Tokio::poll_flush
  - Tokio::poll_shutdown
  - Tokio::poll_read
  - Tokio::connect_tcp
  - Tokio::connect_tcp_tls
  - Tokio::connect_tcp_tls
  - Tokio::connect_unix
  - Tokio::spawn
  - Tokio::boxed
  source_file: /src/redis-rs/redis/src/aio/tokio.rs
- function_names:
  - Monitor::new
  - Monitor::on_message
  - Monitor::into_on_message
  - convert_value
  - MonitorStream::poll_next
  - MonitorStreamRef::poll_next
  source_file: /src/redis-rs/redis/src/aio/monitor.rs
- function_names:
  - RedisRuntime::boxed
  - execute_connection_pipeline
  - setup_connection
  - ::tokio::sync::mpsc::UnboundedSender::send
  - ::tokio::sync::broadcast::Sender::send
  - Func::send
  - std::sync::mpsc::Sender::send
  - futures_channel::mpsc::UnboundedSender::send
  - std::sync::Arc::send
  - DefaultAsyncDNSResolver::resolve
  - get_socket_addrs
  source_file: /src/redis-rs/redis/src/aio/mod.rs
- function_names:
  - connect_simple
  - transaction_async
  - t::e::s::t::s::::::::t::e::s::t::_::i::s::_::s::y::n::c::assert_sync
  - tests::test_is_sync
  - t::e::s::t::s::::::::t::e::s::t::_::i::s::_::s::e::n::d::assert_send
  - tests::test_is_send
  source_file: /src/redis-rs/redis/src/aio/connection.rs
- function_names:
  - connect_tcp
  - SmolWrapped::new
  - SmolWrapped::poll_write
  - SmolWrapped::poll_flush
  - SmolWrapped::poll_shutdown
  - SmolWrapped::poll_read
  - Smol::poll_write
  - Smol::poll_flush
  - Smol::poll_shutdown
  - Smol::poll_read
  - Smol::connect_tcp
  - Smol::connect_tcp_tls
  - Smol::connect_tcp_tls
  - Smol::connect_unix
  - Smol::spawn
  - Smol::boxed
  source_file: /src/redis-rs/redis/src/aio/smol.rs
- function_names:
  - CacheConfig::new
  - CacheConfig::set_mode
  - CacheConfig::set_size
  - CacheConfig::set_default_client_ttl
  - CacheConfig::default
  source_file: /src/redis-rs/redis/src/caching/config.rs
- function_names:
  - CacheablePipeline::resolve
  - CacheableCommand::resolve
  - CacheableCommand::pack_command
  - get_next_reply
  source_file: /src/redis-rs/redis/src/caching/cmd.rs
- function_names: []
  source_file: /src/redis-rs/redis/src/caching/mod.rs
- function_names:
  - Statistics::increase_hit
  - Statistics::increase_miss
  - Statistics::increase_invalidate
  - CacheStatistics::from
  source_file: /src/redis-rs/redis/src/caching/statistics.rs
- function_names:
  - CacheManager::new
  - CacheManager::clone_and_increase_epoch
  - CacheManager::get
  - CacheManager::insert
  - CacheManager::statistics
  - CacheManager::handle_push_value
  - CacheManager::get_cached_cmd
  - CacheManager::calculate_expiration_time
  - CacheManager::prepare_key_buffer
  - CacheManager::extract_simple_arguments
  - CacheManager::process_multi_key_arguments
  - CacheManager::handle_multi_key_command
  - CacheManager::handle_single_key_command
  - CacheManager::get_cached_cmd_inner
  - CacheManager::get_cached_pipeline
  - is_multi_key
  - tests::test_custom_command_ttl
  - tests::test_epoch_on_shared_cache_managers
  source_file: /src/redis-rs/redis/src/caching/cache_manager.rs
- function_names:
  - ShardedLRU::new
  - ShardedLRU::get_shard
  - ShardedLRU::get
  - ShardedLRU::insert
  - ShardedLRU::invalidate
  - ShardedLRU::increase_epoch
  - tests::test_expire
  - tests::test_different_cmd_keys
  - tests::test_invalidate
  - tests::test_epoch_change
  source_file: /src/redis-rs/redis/src/caching/sharded_lru.rs
- function_names:
  - SlotRangeMap::new
  - SlotRangeMap::insert
  - SlotRangeMap::get
  - SlotRangeMap::values
  - SlotRangeMap::iter
  - SlotRangeMap::clear
  - SlotRangeMap::default
  - tests::point_lookup_within_range
  - tests::point_lookup_in_gaps_returns_none
  - tests::iter_yields_ranges_in_order
  source_file: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
- function_names:
  - SingleNodeRoutingInfo::from
  - command_for_multi_slot_indices
  - aggregate
  - logical_aggregate
  - combine_map_results
  - combine_array_results
  - calculate_multi_slot_result_indices
  - combine_and_sort_array_results
  - get_route
  - multi_shard
  - ResponsePolicy::for_command
  - base_routing
  - RoutingInfo::for_routable
  - RoutingInfo::for_key
  - Routable::command
  - Cmd::arg_idx
  - Cmd::position
  - Value::arg_idx
  - Value::position
  - Route::new
  - Route::with_slot
  - Route::with_key
  - Route::slot
  - Route::slot_addr
  - Route::new_random_primary
  - Slot::new
  - S::l::o::t::::::::f::o::r::_::k::e::y::impl_
  - Slot::for_key
  - Slot::new_random
  - get_hashtag
  - tests_routing::test_routing_info_mixed_capatalization
  - tests_routing::test_routing_info
  - tests_routing::test_slot_for_packed_cmd
  - tests_routing::test_multi_shard_keys_only
  - tests_routing::test_multi_shard_key_value_pairs
  - tests_routing::test_multi_shard_keys_and_path
  - tests_routing::test_multi_shard_key_with_two_arg_triples
  - tests_routing::test_command_creation_for_multi_shard
  - tests_routing::test_combine_multi_shard_to_single_node_when_all_keys_are_in_same_slot
  - tests_routing::test_combining_results_into_single_array_only_keys
  - tests_routing::test_combining_results_into_single_array_key_value_paires
  - tests_routing::test_combining_results_into_single_array_keys_and_path
  - tests_routing::test_combining_results_into_single_array_key_with_two_arg_triples
  - tests_routing::test_combine_map_results
  source_file: /src/redis-rs/redis/src/cluster_handling/routing.rs
- function_names:
  - RetryParams::default
  - cluster_retry_wait_upper_ms
  - RetryParams::wait_time_for_retry
  - ClusterParams::from
  - ClusterParams::with_config
  - ClusterClientBuilder::new
  - ClusterClientBuilder::build
  - ClusterClientBuilder::password
  - ClusterClientBuilder::username
  - ClusterClientBuilder::retries
  - ClusterClientBuilder::max_retry_wait
  - ClusterClientBuilder::min_retry_wait
  - ClusterClientBuilder::retry_wait_formula
  - ClusterClientBuilder::tls
  - ClusterClientBuilder::danger_accept_invalid_hostnames
  - ClusterClientBuilder::certs
  - ClusterClientBuilder::read_from_replicas
  - ClusterClientBuilder::read_routing_strategy
  - ClusterClientBuilder::connection_timeout
  - ClusterClientBuilder::response_timeout
  - ClusterClientBuilder::overall_response_timeout
  - ClusterClientBuilder::use_protocol
  - ClusterClientBuilder::database_id
  - ClusterClientBuilder::push_sender
  - ClusterClientBuilder::tcp_settings
  - ClusterClientBuilder::node_address_map
  - ClusterClientBuilder::async_dns_resolver
  - ClusterClientBuilder::cache_config
  - ClusterClientBuilder::connection_concurrency_limit
  - ClusterClientBuilder::write_backpressure_boundary
  - ClusterClientBuilder::set_credentials_provider
  - ClusterClientBuilder::max_connection_attempts
  - ClusterClient::new
  - ClusterClient::builder
  - ClusterClient::get_connection
  - ClusterClient::get_connection_with_config
  - ClusterClient::get_async_connection
  - ClusterClient::get_async_connection_with_config
  - ClusterClient::get_pending_async_connection_with_config
  - ClusterClient::get_generic_connection
  - ClusterClient::get_async_generic_connection
  - tests::get_connection_data
  - tests::get_connection_data_with_password
  - tests::get_connection_data_with_username_and_password
  - tests::give_no_password
  - tests::give_password_by_initial_nodes
  - tests::give_username_and_password_by_initial_nodes
  - tests::fail_if_received_different_password_between_initial_nodes
  - tests::fail_if_received_different_username_between_initial_nodes
  - tests::fail_if_received_different_protocol_between_initial_nodes
  - tests::fail_if_received_different_tls_between_initial_nodes
  - tests::give_username_password_by_method
  - tests::give_empty_initial_nodes
  - tests::database_id_defaults_to_zero
  - tests::give_database_id_by_method
  - tests::give_database_id_by_initial_nodes
  - tests::fail_if_database_id_method_conflicts_with_initial_nodes
  - tests::fail_if_explicit_database_id_zero_conflicts_with_initial_nodes
  - tests::give_database_id_by_method_matching_initial_nodes
  - tests::give_database_id_zero_by_method_matching_initial_nodes
  - tests::fail_if_received_different_database_between_initial_nodes
  - tests::overall_response_timeout_defaults_to_response_timeout
  - tests::overall_response_timeout_can_be_disabled
  - tests::overall_response_timeout_can_be_set_independently
  - tests::connection_concurrency_limit_default
  - tests::connection_concurrency_limit_custom
  - tests::write_backpressure_boundary_default
  - tests::write_backpressure_boundary_custom
  - tests::cluster_retry_clamp_order_caps_at_max_after_floor
  - tests::cluster_retry_wait_upper_strictly_above_min_when_min_equals_max
  - tests::cluster_retry_wait_time_does_not_panic_when_min_equals_max
  source_file: /src/redis-rs/redis/src/cluster_handling/client.rs
- function_names:
  - NodeAddress::new
  - NodeAddress::from_parts
  - NodeAddress::host
  - NodeAddress::port
  - NodeAddress::fmt
  - NodeAddress::fmt
  - NodeAddress::try_from
  - NodeAddress::try_from
  - NodeAddress::eq
  - NodeAddress::eq
  - slot_cmd
  - split_node_address
  - get_connection_addr
  - get_connection_info
  - tests::parse_node_address
  - tests::reject_invalid_node_address
  - tests::get_connection_info_uses_node_address_map
  - tests::get_connection_info_falls_back_without_mapping
  - tests::get_connection_info_without_map
  source_file: /src/redis-rs/redis/src/cluster_handling/mod.rs
- function_names:
  - parse_slots
  - tests::slot_value_with_replicas
  - tests::slot_value
  - tests::parse_slots_returns_slots_with_host_name_if_missing
  - tests::parse_slots_treats_wildcard_hostnames_as_answering_node
  source_file: /src/redis-rs/redis/src/cluster_handling/topology.rs
- function_names:
  - SlotMap::new
  - SlotMap::from_slots
  - SlotMap::fill_slots
  - SlotMap::slot_addr_for_route
  - SlotMap::shard_fallback_addrs
  - SlotMap::clear
  - SlotMap::values
  - SlotMap::all_unique_addresses
  - SlotMap::addresses_for_all_primaries
  - SlotMap::addresses_for_all_nodes
  - SlotMap::addresses_for_multi_slot
  - SlotMap::topology
  - SlotAddrs::new
  - SlotAddrs::slot_addr
  - SlotAddrs::from_slot
  - '&''a SlotAddrs::into_iter'
  - SlotRange::new
  - tests::addr
  - tests::test_slot_map_with_strategy
  - tests::test_slot_map_when_no_strategy_is_set
  - tests::test_shard_fallback_addrs_master_is_empty
  - tests::test_shard_fallback_addrs_replica_optional
  - tests::test_shard_fallback_addrs_replica_requiredy
  - tests::test_shard_fallback_addrs_missing_slot_is_empty
  - tests::get_slot_map
  - tests::test_slot_map_get_all_primaries
  - tests::test_slot_map_get_all_nodes
  - tests::test_slot_map_get_multi_node
  - tests::test_slot_map_should_ignore_replicas_in_multi_slot_if_no_strategy_is_set
  - tests::test_slot_map_get_repeating_addresses_when_the_same_node_is_found_in_multi_slot
  - tests::test_slot_map_get_none_when_slot_is_missing_from_multi_slot
  - tests::test_slot_map_topology
  - tests::test_slot_map_topology_groups_by_primary
  - tests::test_slot_map_topology_shard_lookup
  - tests::test_custom_strategy
  source_file: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
- function_names:
  - is_illegal_cmd
  - ClusterPipeline::new
  - ClusterPipeline::with_capacity
  - ClusterPipeline::commands
  - ClusterPipeline::query
  - ClusterPipeline::exec
  - cluster_pipe
  source_file: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
- function_names:
  - Input::send
  - Input::arg_idx
  - Input::position
  - Value::from
  - Vec::from
  - Connection::connect
  - Connection::send_packed_command
  - Connection::set_write_timeout
  - Connection::set_read_timeout
  - Connection::recv_response
  - ClusterConfig::new
  - ClusterConfig::set_connection_timeout
  - ClusterConfig::set_response_timeout
  - ClusterConfig::set_push_sender
  - ClusterConfig::set_dns_resolver
  - ClusterConnection::new
  - ClusterConnection::set_auto_reconnect
  - ClusterConnection::set_write_timeout
  - ClusterConnection::set_read_timeout
  - ClusterConnection::check_connection
  - ClusterConnection::execute_pipeline
  - ClusterConnection::create_initial_connections
  - ClusterConnection::refresh_slots
  - ClusterConnection::create_new_slots
  - ClusterConnection::connect
  - ClusterConnection::get_connection
  - ClusterConnection::get_connection_by_addr
  - ClusterConnection::get_addr_for_cmd
  - ClusterConnection::map_cmds_to_nodes
  - ClusterConnection::execute_on_all
  - ClusterConnection::execute_on_all_nodes
  - ClusterConnection::execute_on_all_primaries
  - ClusterConnection::execute_multi_slot
  - ClusterConnection::execute_on_multiple_nodes
  - ClusterConnection::request
  - ClusterConnection::send_recv_and_retry_cmds
  - ClusterConnection::send_all_commands
  - ClusterConnection::recv_all_commands
  - ClusterConnection::route_command
  - ClusterConnection::supports_pipelining
  - ClusterConnection::req_command
  - ClusterConnection::req_packed_command
  - ClusterConnection::req_packed_commands
  - ClusterConnection::get_db
  - ClusterConnection::is_open
  - ClusterConnection::check_connection
  - NodeCmd::new
  - get_random_connection
  - get_random_connection_or_error
  source_file: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
- function_names:
  - RandomReplicaStrategy::route_read
  - tests::node
  - tests::chooses_replica_when_replicas_exist
  - tests::chooses_replica_for_replicas_only
  source_file: /src/redis-rs/redis/src/cluster_handling/read_routing/random_replica.rs
- function_names: []
  source_file: /src/redis-rs/redis/src/cluster_handling/read_routing/mod.rs
- function_names:
  - RoundRobinReplicaStrategy::new
  - RoundRobinReplicaStrategy::default
  - RoundRobinReplicaStrategy::on_topology_changed
  - RoundRobinReplicaStrategy::route_read
  - tests::node
  - tests::setup_strategy
  - tests::round_robins_within_a_shard
  - tests::different_shards_rotate_independently
  - tests::round_robins_any_node_with_replicas
  - tests::multiple_ranges_on_same_shard_share_counter
  source_file: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
- function_names:
  - Shard::new
  - Shard::slot_ranges
  - Shard::primary
  - Shard::replicas
  - ClusterTopology::from_shards
  - ClusterTopology::shard_for_slot
  - ClusterTopology::shards
  - Replicas::new
  - Replicas::len
  - Replicas::first
  - Replicas::get
  - Replicas::choose_random
  - Replicas::iter
  - AnyNodeCandidates::slot
  - AnyNodeCandidates::primary
  - AnyNodeCandidates::replicas
  - ReplicasOnlyCandidates::slot
  - ReplicasOnlyCandidates::replicas
  - ReadCandidates::slot
  - ReadCandidates::any_node
  - ReadCandidates::replicas_only
  - ReadRoutingStrategy::on_topology_changed
  - T::create_strategy
  source_file: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
- function_names:
  - InternalRoutingInfo::fmt
  - InternalRoutingInfo::from
  - InternalRoutingInfo::from
  - InternalSingleNodeRouting::fmt
  - InternalSingleNodeRouting::from
  - r::o::u::t::e::_::f::o::r::_::p::i::p::e::l::i::n::e::route_for_command
  - route_for_pipeline
  - pipeline_routing_tests::test_first_route_is_found
  - pipeline_routing_tests::test_return_none_if_no_route_is_found
  - pipeline_routing_tests::test_prefer_primary_route_over_replica
  - pipeline_routing_tests::test_raise_cross_slot_error_on_conflicting_slots
  - pipeline_routing_tests::unkeyed_commands_dont_affect_route
  source_file: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
- function_names:
  - ClusterConnection::new
  - ClusterConnection::new_pending
  - ClusterConnection::new_inner
  - ClusterConnection::route_command
  - ClusterConnection::route_pipeline
  - ClusterConnection::subscribe
  - ClusterConnection::unsubscribe
  - ClusterConnection::psubscribe
  - ClusterConnection::punsubscribe
  - ClusterConnection::ssubscribe
  - ClusterConnection::sunsubscribe
  - ClusterConnection::get_cache_statistics
  - ConnState::fmt
  - ConnState::connected
  - ConnState::connected_or_reconnecting
  - ConnState::into_conn
  - mark_reconnecting
  - Core::deref
  - Core::execute_on_multiple_nodes
  - Core::aggregate_results
  - Core::try_cmd_request
  - Core::try_pipeline_request
  - Core::try_request
  - Core::get_connection
  - Core::get_redirected_connection
  - Core::connect_check_and_add
  - Core::query_slots
  - Core::refresh_slots
  - Core::refresh_connections_locked
  - Core::resubscribe_all
  - Core::resubscribe_node
  - reconnect_loop
  - boxed_sleep
  - OperationTarget::from
  - ConnectionState::fmt
  - build_slot_map
  - ClusterConnInner::new
  - ClusterConnInner::create_initial_connections
  - ClusterConnInner::reconnect_to_initial_nodes
  - ClusterConnInner::register_reconnect_futures
  - ClusterConnInner::poll_reconnects
  - ClusterConnInner::wait_for_initial_connection
  - ClusterConnInner::poll_recover
  - ClusterConnInner::handle_retries
  - ClusterConnInner::dispatch_pending
  - ClusterConnInner::poll_in_flight
  - ClusterConnInner::poll_complete
  - ClusterConnInner::send_refresh_error
  - get_or_create_conn
  - PollFlushAction::change_state
  - ClusterConnInner::poll_ready
  - ClusterConnInner::start_send
  - ClusterConnInner::poll_flush
  - ClusterConnInner::poll_close
  - ClusterConnection::req_packed_command
  - ClusterConnection::req_packed_commands
  - ClusterConnection::get_db
  - MultiplexedConnection::connect_with_config
  - connect_and_check
  - check_connection
  - get_random_connection
  source_file: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
- function_names:
  - CmdArg::set_redirect
  - CmdArg::reset_routing
  - ResultExpectation::send
  - ResultExpectation::is_closed
  - choose_response
  - Request::poll
  - tests::get_redirect
  - tests::request_and_receiver
  - tests::single_result
  - tests::to_err
  - tests::should_redirect_and_retry_on_ask_error_if_retries_remain
  - tests::should_retry_and_refresh_slots_on_move_error_if_retries_remain
  - tests::should_refresh_slots_and_retry_on_readonly_error_if_retries_remain
  - tests::never_retry_on_fanout_operation_target
  - tests::should_sleep_and_retry_on_not_found_operation_target
  - tests::complete_disconnect_should_reconnect_from_initial_nodes_regardless_of_target
  source_file: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
- function_names:
  - AddressedPushSender::new
  - AddressedPushSender::send
  source_file: /src/redis-rs/redis/src/cluster_handling/async_connection/addressed_push_sender.rs
- function_names:
  - HotkeysOptions::new_with_cpu
  - HotkeysOptions::new_with_net
  - HotkeysOptions::and_cpu
  - HotkeysOptions::and_net
  - HotkeysOptions::metrics_count
  - HotkeysOptions::with_count
  - HotkeysOptions::with_duration_secs
  - HotkeysOptions::with_sample_ratio
  - HotkeysOptions::with_slots
  - HotkeysOptions::write_redis_args
  - HotkeysOptions::num_of_args
  - strip_quotes
  - parse_hotkey_entries
  - parse_slot_ranges
  - HotkeysResponse::from_redis_value
  - tests::test_hotkeys_options_cpu_constructor
  - tests::test_hotkeys_options_net_constructor
  - tests::test_hotkeys_options_cpu_and_net
  - tests::test_hotkeys_options_net_and_cpu
  - tests::test_hotkeys_options_with_duration
  - tests::test_hotkeys_options_with_count
  - tests::test_hotkeys_options_with_count_min_valid
  - tests::test_hotkeys_options_with_count_max_valid
  - tests::test_hotkeys_options_with_count_too_low
  - tests::test_hotkeys_options_with_count_too_high
  - tests::test_hotkeys_options_with_sample
  - tests::test_hotkeys_options_with_slots
  - tests::test_hotkeys_options_full
  - tests::test_hotkeys_response_parsing_resp2
  - tests::test_hotkeys_response_parsing_resp3
  - tests::test_hotkeys_response_parsing_with_net
  - tests::test_hotkeys_response_nil
  source_file: /src/redis-rs/redis/src/commands/hotkeys.rs
- function_names:
  - Unit::write_redis_args
  - Coord::lon_lat
  - Coord::from_redis_value_ref
  - Coord::from_redis_value
  - Coord::write_redis_args
  - Coord::num_of_args
  - RadiusOptions::limit
  - RadiusOptions::with_dist
  - RadiusOptions::with_coord
  - RadiusOptions::order
  - RadiusOptions::store
  - RadiusOptions::store_dist
  - RadiusOptions::write_redis_args
  - RadiusOptions::num_of_args
  - RadiusSearchResult::from_redis_value
  - RadiusSearchResult::parse_multi_values
  - tests::test_coord_to_args
  - tests::test_radius_options
  source_file: /src/redis-rs/redis/src/commands/geo.rs
- function_names:
  - implement_command_async
  - implement_command_sync
  - implement_iterators
  - implement_commands
  source_file: /src/redis-rs/redis/src/commands/macros.rs
- function_names:
  - StreamMaxlen::write_redis_args
  - StreamTrimmingMode::write_redis_args
  - StreamTrimStrategy::maxlen
  - StreamTrimStrategy::minid
  - StreamTrimStrategy::limit
  - StreamTrimStrategy::write_redis_args
  - StreamTrimOptions::maxlen
  - StreamTrimOptions::minid
  - StreamTrimOptions::limit
  - StreamTrimOptions::set_deletion_policy
  - StreamTrimOptions::write_redis_args
  - StreamIdempotencyMode::write_redis_args
  - StreamConfigOptions::with_idempotency_seconds
  - StreamConfigOptions::with_idempotency_maxsize
  - StreamConfigOptions::idempotency_seconds
  - StreamConfigOptions::idempotency_maxsize
  - StreamConfigOptions::write_redis_args
  - StreamAddOptions::nomkstream
  - StreamAddOptions::trim
  - StreamAddOptions::set_deletion_policy
  - StreamAddOptions::idmp
  - StreamAddOptions::idmpauto
  - StreamAddOptions::write_redis_args
  - StreamAutoClaimOptions::count
  - StreamAutoClaimOptions::with_justid
  - StreamAutoClaimOptions::write_redis_args
  - StreamClaimOptions::idle
  - StreamClaimOptions::time
  - StreamClaimOptions::retry
  - StreamClaimOptions::with_force
  - StreamClaimOptions::with_justid
  - StreamClaimOptions::with_lastid
  - StreamClaimOptions::write_redis_args
  - StreamReadOptions::read_only
  - StreamReadOptions::noack
  - StreamReadOptions::block
  - StreamReadOptions::count
  - StreamReadOptions::group
  - StreamReadOptions::claim
  - StreamReadOptions::write_redis_args
  - StreamPendingReply::count
  - StreamId::from_array_value
  - StreamId::get
  - StreamId::contains_key
  - StreamId::len
  - StreamId::is_empty
  - StreamAutoClaimReply::from_redis_value
  - StreamReadReply::from_redis_value
  - StreamReadReply::from_standard_rows
  - StreamReadReply::from_claim_rows
  - StreamRangeReply::from_redis_value
  - StreamClaimReply::from_redis_value
  - StreamPendingReply::from_redis_value
  - StreamPendingCountReply::from_redis_value
  - StreamInfoStreamReply::from_redis_value
  - StreamInfoStreamReplyWithIdempotency::from_redis_value
  - StreamInfoConsumersReply::from_redis_value
  - StreamInfoGroupsReply::from_redis_value
  - StreamDeletionPolicy::write_redis_args
  - XDelExStatusCode::from_redis_value
  - StreamNackMode::write_redis_args
  - StreamNackOptions::new
  - StreamNackOptions::write_redis_args
  - XAckDelStatusCode::from_redis_value
  - tests::assert_command_eq
  - tests::short_response
  - tests::parses_none_claimed_response
  - tests::parses_response
  - tests::parses_v6_response
  - tests::parses_justid_response
  - tests::parses_v6_justid_response
  - tests::maxlen_trim
  - tests::maxlen_exact_trim
  - tests::maxlen_trim_limit
  - tests::minid_trim_limit
  - tests::the_default
  - tests::with_maxlen_trim
  - tests::with_nomkstream
  - tests::with_nomkstream_and_maxlen_trim
  - tests::with_idmp_manual_mode
  - tests::with_idmpauto_automatic_mode
  - tests::with_nomkstream_and_idmp
  - tests::with_trim_and_idmp
  - tests::with_all_options_and_idmp
  - tests::with_all_options_and_idmpauto
  - tests::with_idempotency_seconds_only
  - tests::with_idempotency_maxsize_only
  - tests::with_both_options_starting_with_idempotency_seconds
  - tests::with_both_options_starting_with_idempotency_maxsize
  - tests::with_max_values
  - tests::with_min_values
  - tests::error_idempotency_seconds_too_low
  - tests::error_idempotency_seconds_too_high
  - tests::error_idempotency_maxsize_too_low
  - tests::error_idempotency_maxsize_too_high
  - tests::error_setter_idempotency_seconds_too_low
  - tests::error_setter_idempotency_maxsize_too_high
  source_file: /src/redis-rs/redis/src/commands/streams.rs
- function_names:
  - command_properties
  - is_readonly_cmd
  - is_cachable_cmd
  - Connection::subscribe
  - Connection::psubscribe
  - ScanOptions::with_count
  - ScanOptions::with_pattern
  - ScanOptions::with_type
  - ScanOptions::write_redis_args
  - ScanOptions::num_of_args
  - LposOptions::count
  - LposOptions::rank
  - LposOptions::maxlen
  - LposOptions::write_redis_args
  - LposOptions::num_of_args
  - Direction::write_redis_args
  - CopyOptions::default
  - CopyOptions::db
  - CopyOptions::replace
  - CopyOptions::write_redis_args
  - SetOptions::conditional_set
  - SetOptions::value_comparison
  - SetOptions::get
  - SetOptions::with_expiration
  - SetOptions::write_redis_args
  - MSetOptions::conditional_set
  - MSetOptions::with_expiration
  - MSetOptions::write_redis_args
  - FlushAllOptions::blocking
  - FlushAllOptions::write_redis_args
  - HashFieldExpirationOptions::set_existence_check
  - HashFieldExpirationOptions::set_expiration
  - HashFieldExpirationOptions::write_redis_args
  - Expiry::write_redis_args
  - UpdateCheck::write_redis_args
  - SortedSetAddOptions::add_only
  - SortedSetAddOptions::update_only
  - SortedSetAddOptions::add_or_update
  - SortedSetAddOptions::include_changed_count
  - SortedSetAddOptions::increment_score
  - SortedSetAddOptions::write_redis_args
  - resp3_hello
  - HotkeysCommands::hotkeys_start
  - HotkeysCommands::hotkeys_get
  - HotkeysCommands::hotkeys_stop
  - HotkeysCommands::hotkeys_reset
  - AsyncHotkeysCommands::hotkeys_start
  - AsyncHotkeysCommands::hotkeys_get
  - AsyncHotkeysCommands::hotkeys_stop
  - AsyncHotkeysCommands::hotkeys_reset
  source_file: /src/redis-rs/redis/src/commands/mod.rs
- function_names:
  - VSimOptions::set_with_scores
  - VSimOptions::set_count
  - VSimOptions::set_search_exploration_factor
  - VSimOptions::set_filter_expression
  - VSimOptions::set_max_filtering_effort
  - VSimOptions::set_truth
  - VSimOptions::set_no_thread
  - VSimOptions::write_redis_args
  - EmbeddingInput::write_redis_args
  - VectorAddInput::write_redis_args
  - VAddOptions::set_reduction_dimension
  - VAddOptions::set_check_and_set_style
  - VAddOptions::set_quantization
  - VAddOptions::set_build_exploration_factor
  - VAddOptions::set_attributes
  - VAddOptions::set_max_number_of_links
  - VAddOptions::write_redis_args
  - VEmbOptions::set_raw_representation
  - VEmbOptions::write_redis_args
  - VectorSimilaritySearchInput::write_redis_args
  source_file: /src/redis-rs/redis/src/commands/vector_sets.rs
- function_names:
  - implement_json_commands
  - FphaType::write_redis_args
  - JsonSetOptions::conditional_set
  - JsonSetOptions::fpha
  - JsonSetOptions::write_redis_args
  - tests::simple_args
  - tests::build
  - tests::json_value_with_default_options_writes_serialized_document_only
  - tests::json_set_options_builder_is_order_independent
  - tests::fpha_type_writes_expected_bytes
  - tests::conditional_set_nx_appends_existence_check
  - tests::fpha_with_existence_check_orders_value_then_existence_check_then_fpha_type
  - tests::fpha_empty_payload_still_emits_fpha_type
  - tests::fpha_with_matrix_emits_nested_json_and_fpha_type
  - tests::json_object_properly_serialized_with_value_and_fpha_type
  source_file: /src/redis-rs/redis/src/commands/json.rs
- function_names:
  - not_convertible_error
  - Rule::write_redis_args
  - AclInfo::handle_pair
  - AclInfo::from_redis_value
  - tests::test_rule_to_arg
  - tests::test_from_redis_value
  source_file: /src/redis-rs/redis/src/commands/acl.rs
- function_names:
  - main
  source_file: /src/redis-rs/redis/examples/async-resp3-pub-sub.rs
- function_names:
  - main
  source_file: /src/redis-rs/redis/examples/async-await.rs
- function_names:
  - run_multi
  - main
  source_file: /src/redis-rs/redis/examples/async-connection-loss.rs
- function_names:
  - main
  source_file: /src/redis-rs/redis/examples/async-typed.rs
- function_names:
  - main
  - demo_group_reads
  - add_records
  - thrifty_rand
  - random_wait_millis
  - arbitrary_value
  - read_records
  - consumer_name
  - read_group_records
  - clean_up
  source_file: /src/redis-rs/redis/examples/streams.rs
- function_names:
  - run
  - run
  - main
  source_file: /src/redis-rs/redis/examples/geospatial.rs
- function_names:
  - main
  source_file: /src/redis-rs/redis/examples/typed.rs
- function_names:
  - ProbeHandle::drop
  - LatencyAwareFactory::new
  - LatencyAwareFactory::create_strategy
  - LatencyAwareStrategy::on_topology_changed
  - LatencyAwareStrategy::route_read
  - probe_task
  - unique_addresses
  - main
  source_file: /src/redis-rs/redis/examples/latency-aware-routing.rs
- function_names:
  - main
  source_file: /src/redis-rs/redis/examples/async-resp2-pub-sub.rs
- function_names:
  - test_cmd
  - main
  source_file: /src/redis-rs/redis/examples/async-multiplexed.rs
- function_names:
  - main
  source_file: /src/redis-rs/redis/examples/async-caching.rs
- function_names:
  - add_elements
  - check_membership
  - dump
  - load
  - cleanup
  - main
  source_file: /src/redis-rs/redis/examples/bloom.rs
- function_names:
  - main
  source_file: /src/redis-rs/redis/examples/async-scan.rs
- function_names:
  - run
  - run
  - main
  source_file: /src/redis-rs/redis/examples/acl.rs
- function_names:
  - do_print_max_entry_limits
  - do_show_scanning
  - do_atomic_increment_lowlevel
  - do_atomic_increment
  - do_redis_code
  - main
  source_file: /src/redis-rs/redis/examples/basic.rs
- function_names:
  - bench_set_get_and_del
  - bench_pipeline
  - bench_cluster_setup
  - bench_cluster_read_from_replicas_setup
  source_file: /src/redis-rs/redis/benches/bench_cluster.rs
- function_names:
  - bench_cluster_async
  - bench_cluster_setup
  source_file: /src/redis-rs/redis/benches/bench_cluster_async.rs
- function_names:
  - generate_commands
  - benchmark_executer
  - prepare_benchmark
  - bench_cache
  source_file: /src/redis-rs/redis/benches/bench_cache.rs
- function_names:
  - bench_simple_getsetdel
  - bench_simple_getsetdel_async
  - bench_simple_getsetdel_pipeline
  - bench_simple_getsetdel_pipeline_precreated
  - long_pipeline
  - bench_long_pipeline
  - bench_async_long_pipeline
  - bench_multiplexed_async_long_pipeline
  - bench_multiplexed_async_implicit_pipeline
  - bench_query
  - bench_encode_small
  - bench_encode_integer
  - bench_encode_set_ex
  - bench_encode_pipeline
  - bench_encode_pipeline_nested
  - bench_encode
  - bench_decode_simple
  - bench_decode
  source_file: /src/redis-rs/redis/benches/bench_basic.rs
- function_names: []
  source_file: /src/redis-rs/valkey/src/lib.rs
- function_names:
  - main
  source_file: /src/redis-rs/afl/parser/src/reproduce.rs
- function_names:
  - main
  source_file: /src/redis-rs/afl/parser/src/main.rs
- function_names:
  - fuzz_target
  source_file: /src/redis-rs/fuzz/fuzz_targets/parser.rs
