All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: build_keys_and_certs_for_tls_ext
      Src: /src/redis-rs/redis-test/src/utils.rs:16,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tempdir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 17
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 17
    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: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: stdout
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:35,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:36,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 2
    argNames:
    - name
    - size
    argTypes:
    - S
    - usize
    constantsTouched: []
    func_position:
      end: 41
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 41
    functionName: b::u::i::l::d::_::k::e::y::s::_::a::n::d::_::c::e::r::t::s::_::f::o::r::_::t::l::s::_::e::x::t::make_key
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 0
    functionsReached:
    - stdout
    - process::Stdio::piped
    - stderr
    - RedisServer::arg
    - arg
    - spawn
    - expect
    - wait
    - process::Command::new
    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:22,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:22,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:23,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:23,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:24,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:24,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:25,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:25,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:26,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:26,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/utils.rs:27,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/utils.rs:27,1
    - Dst: make_key
      Src: /src/redis-rs/redis-test/src/utils.rs:44,1
    - Dst: make_key
      Src: /src/redis-rs/redis-test/src/utils.rs:47,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: stdout
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:64,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:65,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:50,1
    - Dst: fs::write
      Src: /src/redis-rs/redis-test/src/utils.rs:102,1
    - Dst: Poll::expect
      Src: /src/redis-rs/redis-test/src/utils.rs:102,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: stdout
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:113,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/utils.rs:114,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:105,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/utils.rs:119,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:120,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:136,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:136,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/utils.rs:138,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/utils.rs:138,1
    - Dst: stdin
      Src: /src/redis-rs/redis-test/src/utils.rs:138,1
    - Dst: take
      Src: /src/redis-rs/redis-test/src/utils.rs:141,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:141,1
    - Dst: spawn
      Src: /src/redis-rs/redis-test/src/utils.rs:138,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:138,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:138,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:138,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/utils.rs:147,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/utils.rs:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 199
    argCount: 2
    argNames:
    - tempdir
    - with_ip_alts
    argTypes:
    - '&TempDir'
    - bool
    constantsTouched: []
    func_position:
      end: 162
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 162
    functionName: build_keys_and_certs_for_tls_ext
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 1
    functionsReached:
    - join
    - stdout
    - process::Stdio::piped
    - stderr
    - stdin
    - RedisServer::arg
    - arg
    - spawn
    - expect
    - take
    - make_key
    - wait
    - fs::write
    - process::Command::new
    - '&TempDir::path'
    - Poll::expect
    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: 0.0.1:0".parse::<SocketAddr>
      Src: /src/redis-rs/redis-test/src/utils.rs:165,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:165,1
    - Dst: into
      Src: /src/redis-rs/redis-test/src/utils.rs:165,1
    - Dst: Socket::new
      Src: /src/redis-rs/redis-test/src/utils.rs:166,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:166,1
    - Dst: set_reuse_address
      Src: /src/redis-rs/redis-test/src/utils.rs:167,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:167,1
    - Dst: bind
      Src: /src/redis-rs/redis-test/src/utils.rs:168,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:168,1
    - Dst: listen
      Src: /src/redis-rs/redis-test/src/utils.rs:169,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:169,1
    - Dst: TcpListener::from
      Src: /src/redis-rs/redis-test/src/utils.rs:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 171
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 171
    functionName: get_listener_on_free_port
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 0
    functionsReached:
    - RedisServer::unwrap
    - Socket::new
    - into
    - bind
    - listen
    - 0.0.1:0".parse::<SocketAddr>
    - set_reuse_address
    - unwrap
    - TcpListener::from
    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:180,1
    - Dst: TcpListener::local_addr
      Src: /src/redis-rs/redis-test/src/utils.rs:181,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/utils.rs:181,1
    - Dst: port
      Src: /src/redis-rs/redis-test/src/utils.rs:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 187
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 187
    functionName: get_random_available_port
    functionSourceFile: /src/redis-rs/redis-test/src/utils.rs
    functionUses: 0
    functionsReached:
    - TcpListener::local_addr
    - port
    - get_listener_on_free_port
    - unwrap
    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:
    - String::unwrap_or_default
    - env::var
    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
    - use_protocol
    - RedisConnectionInfo::default
    linkageType: ''
    returnType: RedisConnectionInfo
    signature: pub fn redis_settings() -> RedisConnectionInfo
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:42,1
    - Dst: String::ok
      Src: /src/redis-rs/redis-test/src/server.rs:42,1
    - Dst: as_ref
      Src: /src/redis-rs/redis-test/src/server.rs:42,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/server.rs:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 55
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 55
    functionName: ServerType::get_intended
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - map
    - as_ref
    - env::var
    - String::ok
    linkageType: ''
    returnType: ServerType
    signature: fn get_intended() -> ServerType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::stop
      Src: /src/redis-rs/redis-test/src/server.rs:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 61
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    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: RedisServer::with_modules
      Src: /src/redis-rs/redis-test/src/server.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 73
    functionName: RedisServer::new
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - RedisServer::with_modules
    linkageType: ''
    returnType: RedisServer
    signature: pub fn new() -> RedisServer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::with_modules
      Src: /src/redis-rs/redis-test/src/server.rs:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: RedisServer::new_with_mtls
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - RedisServer::with_modules
    linkageType: ''
    returnType: RedisServer
    signature: pub fn new_with_mtls() -> RedisServer
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read_to_string
      Src: /src/redis-rs/redis-test/src/server.rs:80,1
    - Dst: clone
      Src: /src/redis-rs/redis-test/src/server.rs:80,1
    - Dst: ok
      Src: /src/redis-rs/redis-test/src/server.rs:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: RedisServer::log_file_contents
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - clone
    - std::fs::read_to_string
    - 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:84,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis-test/src/server.rs:89,1
    - Dst: redis::ConnectionAddr::Tcp
      Src: /src/redis-rs/redis-test/src/server.rs:95,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis-test/src/server.rs:95,1
    - Dst: rand::random::<(u64, u64)>
      Src: /src/redis-rs/redis-test/src/server.rs:99,1
    - Dst: redis::ConnectionAddr::Unix
      Src: /src/redis-rs/redis-test/src/server.rs:101,1
    - Dst: PathBuf::from
      Src: /src/redis-rs/redis-test/src/server.rs:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - port
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 104
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 104
    functionName: RedisServer::get_addr
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - ServerType::get_intended
    - redis::ConnectionAddr::Unix
    - redis::ConnectionAddr::Tcp
    - '&str::to_string'
    - PathBuf::from
    - rand::random::<(u64, u64)>
    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:109,1
    - Dst: RedisServer::get_addr
      Src: /src/redis-rs/redis-test/src/server.rs:110,1
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/server.rs:112,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/server.rs:119,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - modules
    - mtls_enabled
    argTypes:
    - '&[Module]'
    - bool
    constantsTouched: []
    func_position:
      end: 123
      start: 106
    functionDepth: 4
    functionLinenumber: 106
    functionLinenumberEnd: 123
    functionName: RedisServer::with_modules
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 2
    functionsReached:
    - RedisServer::get_addr
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - utils::get_random_available_port
    - unwrap_or_else
    - Cmd::spawn
    linkageType: ''
    returnType: RedisServer
    signature: 'pub fn with_modules(modules: &[Module], mtls_enabled: bool) -> RedisServer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/server.rs:130,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/server.rs:137,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - addr
    - modules
    - mtls_enabled
    argTypes:
    - redis::ConnectionAddr
    - '&[Module]'
    - bool
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: RedisServer::new_with_addr_and_modules
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - unwrap_or_else
    - Cmd::spawn
    - RedisServer::new_with_addr_tls_modules_and_spawner
    linkageType: ''
    returnType: RedisServer
    signature: 'pub fn new_with_addr_and_modules(addr: redis::ConnectionAddr,modules:
      &[Module],mtls_enabled: bool,) -> RedisServer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:153,1
    - Dst: String::unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:153,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis-test/src/server.rs:153,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/server.rs:154,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:157,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:162,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:162,1
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:169,1
    - Dst: env::var
      Src: /src/redis-rs/redis-test/src/server.rs:172,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:187,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:187,1
    - Dst: RedisServer::stdout
      Src: /src/redis-rs/redis-test/src/server.rs:192,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/server.rs:193,1
    - Dst: stderr
      Src: /src/redis-rs/redis-test/src/server.rs:192,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/server.rs:194,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/server.rs:195,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/server.rs:195,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/server.rs:195,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/server.rs:195,1
    - Dst: Self::log_file
      Src: /src/redis-rs/redis-test/src/server.rs:199,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:200,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:200,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis-test/src/server.rs:200,1
    - Dst: get_major_version
      Src: /src/redis-rs/redis-test/src/server.rs:201,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:202,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:202,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:206,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:206,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/server.rs:208,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:206,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:206,1
    - Dst: spawner
      Src: /src/redis-rs/redis-test/src/server.rs:213,1
    - Dst: Option<TlsFilePaths>::unwrap_or_else
      Src: /src/redis-rs/redis-test/src/server.rs:221,1
    - Dst: utils::build_keys_and_certs_for_tls
      Src: /src/redis-rs/redis-test/src/server.rs:221,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: TcpListener::to_string
      Src: /src/redis-rs/redis-test/src/server.rs:228,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:226,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis-test/src/server.rs:246,1
    - Dst: spawner
      Src: /src/redis-rs/redis-test/src/server.rs:253,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/server.rs:257,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:261,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:261,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:261,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/server.rs:261,1
    - Dst: spawner
      Src: /src/redis-rs/redis-test/src/server.rs:267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 143
    argCount: 6
    argNames:
    - addr
    - config_file
    - tls_paths
    - mtls_enabled
    - modules
    - spawner
    argTypes:
    - redis::ConnectionAddr
    - Option<&Path>
    - Option<TlsFilePaths>
    - bool
    - '&[Module]'
    - F
    constantsTouched: []
    func_position:
      end: 276
      start: 143
    functionDepth: 4
    functionLinenumber: 143
    functionLinenumberEnd: 276
    functionName: RedisServer::new_with_addr_tls_modules_and_spawner
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 2
    functionsReached:
    - Some
    - RedisServer::arg
    - arg
    - RedisResult::prefix
    - PathBuf::clone
    - TcpListener::to_string
    - process::Command::new
    - '&str::clone'
    - process::Stdio::piped
    - RedisServer::stdout
    - '&str::to_string'
    - stderr
    - Self::log_file
    - tempdir
    - String::unwrap_or_else
    - get_major_version
    - to_string
    - expect
    - Option<TlsFilePaths>::unwrap_or_else
    - utils::build_keys_and_certs_for_tls
    - spawner
    - env::var
    - tempfile::Builder::new
    linkageType: ''
    returnType: RedisServer
    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,modules: &[Module],spawner: F,) -> RedisServer'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    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:284,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/server.rs:285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 288
    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:291,1
    - Dst: '&redis::ConnectionAddr::clone'
      Src: /src/redis-rs/redis-test/src/server.rs:291,1
    - Dst: Self::into_connection_info
      Src: /src/redis-rs/redis-test/src/server.rs:291,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:291,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis-test/src/server.rs:291,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis-test/src/server.rs:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 296
      start: 290
    functionDepth: 9
    functionLinenumber: 290
    functionLinenumberEnd: 296
    functionName: RedisServer::connection_info
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - '&redis::ConnectionAddr::clone'
    - Self::into_connection_info
    - redis_settings
    - set_redis_settings
    - RedisServer::client_addr
    - 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:299,1
    - Dst: wait
      Src: /src/redis-rs/redis-test/src/server.rs:300,1
    - Dst: RedisServer::client_addr
      Src: /src/redis-rs/redis-test/src/server.rs:301,1
    - Dst: fs::remove_file
      Src: /src/redis-rs/redis-test/src/server.rs:302,1
    - Dst: ok
      Src: /src/redis-rs/redis-test/src/server.rs:302,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 304
    functionName: RedisServer::stop
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 1
    functionsReached:
    - ok
    - fs::remove_file
    - RedisServer::client_addr
    - kill
    - wait
    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:307,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/server.rs:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tempdir
    argTypes:
    - '&TempDir'
    constantsTouched: []
    func_position:
      end: 308
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 308
    functionName: RedisServer::log_file
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 0
    functionsReached:
    - join
    - '&TempDir::path'
    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:312,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/server.rs:313,1
    - Dst: RedisServer::arg
      Src: /src/redis-rs/redis-test/src/server.rs:313,1
    - Dst: output
      Src: /src/redis-rs/redis-test/src/server.rs:313,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:313,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:312,1
    - Dst: split_once
      Src: /src/redis-rs/redis-test/src/server.rs:320,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:320,1
    - Dst: split_once
      Src: /src/redis-rs/redis-test/src/server.rs:321,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:321,1
    - Dst: parse
      Src: /src/redis-rs/redis-test/src/server.rs:322,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/server.rs:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 323
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 323
    functionName: get_major_version
    functionSourceFile: /src/redis-rs/redis-test/src/server.rs
    functionUses: 1
    functionsReached:
    - parse
    - output
    - RedisServer::arg
    - String::from_utf8
    - split_once
    - unwrap
    - process::Command::new
    linkageType: ''
    returnType: u8
    signature: fn get_major_version() -> u8
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:20,1
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis-test/src/sentinel.rs:22,1
    - Dst: String::from
      Src: /src/redis-rs/redis-test/src/sentinel.rs:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - port
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: get_addr
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - RedisServer::get_addr
    - String::from
    - ConnectionAddr::Tcp
    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:34,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:35,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:37,1
    - Dst: '&TlsFilePaths::clone'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:37,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:42,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:42,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:43,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:44,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:44,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:46,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:46,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/sentinel.rs:47,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 4
    argNames:
    - port
    - dir
    - tlspaths
    - modules
    argTypes:
    - u16
    - '&TempDir'
    - '&TlsFilePaths'
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 50
      start: 28
    functionDepth: 5
    functionLinenumber: 28
    functionLinenumberEnd: 50
    functionName: spawn_master_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - '&TlsFilePaths::clone'
    - Cmd::current_dir
    - Cmd::arg
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - '&mut Cmd::arg'
    - unwrap
    - Cmd::spawn
    - '&TempDir::path'
    - get_addr
    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:59,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/sentinel.rs:59,1
    - Dst: File::create
      Src: /src/redis-rs/redis-test/src/sentinel.rs:60,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:60,1
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/sentinel.rs:62,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:63,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:64,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:65,1
    - Dst: '&TlsFilePaths::clone'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:65,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:69,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:69,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:69,1
    - Dst: u16::to_string
      Src: /src/redis-rs/redis-test/src/sentinel.rs:71,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:72,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:73,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:73,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:75,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:75,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/sentinel.rs:76,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:76,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: 79
      start: 52
    functionDepth: 5
    functionLinenumber: 52
    functionLinenumberEnd: 79
    functionName: spawn_replica_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - join
    - Some
    - '&TlsFilePaths::clone'
    - u16::to_string
    - arg
    - Cmd::current_dir
    - File::create
    - Cmd::arg
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - unwrap
    - '&mut Cmd::arg'
    - Cmd::spawn
    - '&TempDir::path'
    - get_addr
    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:88,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/sentinel.rs:88,1
    - Dst: File::create
      Src: /src/redis-rs/redis-test/src/sentinel.rs:89,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:89,1
    - Dst: '&[u16]::iter'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:90,1
    - Dst: enumerate
      Src: /src/redis-rs/redis-test/src/sentinel.rs:90,1
    - Dst: PathBuf::write_all
      Src: /src/redis-rs/redis-test/src/sentinel.rs:91,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis-test/src/sentinel.rs:92,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:91,1
    - Dst: PathBuf::flush
      Src: /src/redis-rs/redis-test/src/sentinel.rs:96,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:96,1
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/sentinel.rs:98,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:99,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:100,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/sentinel.rs:101,1
    - Dst: '&TlsFilePaths::clone'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:101,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:105,1
    - Dst: get_addr
      Src: /src/redis-rs/redis-test/src/sentinel.rs:106,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/sentinel.rs:107,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:107,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:109,1
    - Dst: '&TempDir::path'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:109,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/sentinel.rs:110,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:110,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: 113
      start: 81
    functionDepth: 5
    functionLinenumber: 81
    functionLinenumberEnd: 113
    functionName: spawn_sentinel_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - join
    - Some
    - '&TlsFilePaths::clone'
    - as_bytes
    - Poll::unwrap
    - Cmd::current_dir
    - '&[u16]::iter'
    - File::create
    - Cmd::arg
    - enumerate
    - PathBuf::flush
    - unwrap
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - PathBuf::write_all
    - '&mut Cmd::arg'
    - Cmd::spawn
    - '&TempDir::path'
    - get_addr
    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:120,1
    - Dst: get_connection
      Src: /src/redis-rs/redis-test/src/sentinel.rs:124,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis-test/src/sentinel.rs:126,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:126,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis-test/src/sentinel.rs:127,1
    - Dst: ConnectionAddr::first
      Src: /src/redis-rs/redis-test/src/sentinel.rs:127,1
    - Dst: '&''a NodeAddress::unwrap'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:127,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:127,1
    - Dst: starts_with
      Src: /src/redis-rs/redis-test/src/sentinel.rs:128,1
    - Dst: Ok
      Src: /src/redis-rs/redis-test/src/sentinel.rs:130,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/sentinel.rs:144,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/sentinel.rs:144,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/sentinel.rs:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 1
    argNames:
    - get_client_fn
    argTypes:
    - impl FnMut() -> RedisResult<Client>
    constantsTouched: []
    func_position:
      end: 148
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 148
    functionName: wait_for_master_server
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - Ok
    - Result::unwrap
    - ConnectionAddr::first
    - '&''a NodeAddress::unwrap'
    - Duration::from_millis
    - Err
    - redis::Cmd::query
    - String::from_redis_value_ref
    - RedisResult::unwrap
    - redis::cmd
    - starts_with
    - std::thread::sleep
    linkageType: ''
    returnType: Result
    signature: 'pub fn wait_for_master_server(mut get_client_fn: impl FnMut() -> RedisResult<Client>,)
      -> Result<(), SentinelError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::cmd
      Src: /src/redis-rs/redis-test/src/sentinel.rs:153,1
    - Dst: get_connection
      Src: /src/redis-rs/redis-test/src/sentinel.rs:157,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis-test/src/sentinel.rs:159,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:159,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis-test/src/sentinel.rs:160,1
    - Dst: ConnectionAddr::first
      Src: /src/redis-rs/redis-test/src/sentinel.rs:160,1
    - Dst: '&''a NodeAddress::unwrap'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:160,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:160,1
    - Dst: String::from_redis_value_ref
      Src: /src/redis-rs/redis-test/src/sentinel.rs:161,1
    - Dst: ConnectionAddr::get
      Src: /src/redis-rs/redis-test/src/sentinel.rs:161,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:161,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:161,1
    - Dst: starts_with
      Src: /src/redis-rs/redis-test/src/sentinel.rs:162,1
    - Dst: Ok
      Src: /src/redis-rs/redis-test/src/sentinel.rs:164,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/sentinel.rs:179,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/sentinel.rs:179,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/sentinel.rs:182,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 46
    argCount: 1
    argNames:
    - get_client_fn
    argTypes:
    - impl FnMut() -> RedisResult<Client>
    constantsTouched: []
    func_position:
      end: 183
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 183
    functionName: wait_for_replica
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - Ok
    - Result::unwrap
    - ConnectionAddr::get
    - ConnectionAddr::first
    - '&''a NodeAddress::unwrap'
    - Duration::from_millis
    - Err
    - redis::Cmd::query
    - String::from_redis_value_ref
    - RedisResult::unwrap
    - redis::cmd
    - unwrap
    - starts_with
    - std::thread::sleep
    linkageType: ''
    returnType: Result
    signature: 'pub fn wait_for_replica(mut get_client_fn: impl FnMut() -> RedisResult<Client>,)
      -> Result<(), SentinelError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl Iterator::len
      Src: /src/redis-rs/redis-test/src/sentinel.rs:186,1
    - Dst: impl Iterator::len
      Src: /src/redis-rs/redis-test/src/sentinel.rs:187,1
    - Dst: connection_info
      Src: /src/redis-rs/redis-test/src/sentinel.rs:191,1
    - Dst: wait_for_master_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:192,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis-test/src/sentinel.rs:192,1
    - Dst: clone
      Src: /src/redis-rs/redis-test/src/sentinel.rs:192,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis-test/src/sentinel.rs:193,1
    - Dst: connection_info
      Src: /src/redis-rs/redis-test/src/sentinel.rs:199,1
    - Dst: wait_for_replica
      Src: /src/redis-rs/redis-test/src/sentinel.rs:200,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis-test/src/sentinel.rs:200,1
    - Dst: clone
      Src: /src/redis-rs/redis-test/src/sentinel.rs:200,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis-test/src/sentinel.rs:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 2
    argNames:
    - servers
    - masters
    argTypes:
    - '&[RedisServer]'
    - u16
    constantsTouched: []
    func_position:
      end: 206
      start: 185
    functionDepth: 10
    functionLinenumber: 185
    functionLinenumberEnd: 206
    functionName: wait_for_replicas_to_sync
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::len
    - clone
    - wait_for_replica
    - connection_info
    - wait_for_master_server
    - redis::Client::open
    - ConnectionAddr::is_err
    linkageType: ''
    returnType: void
    signature: 'fn wait_for_replicas_to_sync(servers: &[RedisServer], masters: u16)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisSentinelCluster::with_modules
      Src: /src/redis-rs/redis-test/src/sentinel.rs:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - masters
    - replicas_per_master
    - sentinels
    argTypes:
    - u16
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 211
    functionName: RedisSentinelCluster::new
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisSentinelCluster::with_modules
    linkageType: ''
    returnType: RedisSentinelCluster
    signature: 'pub fn new(masters: u16, replicas_per_master: u16, sentinels: u16)
      -> RedisSentinelCluster'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:223,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:223,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:223,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:223,1
    - Dst: '{

        server::build_keys_and_certs_for_tls'
      Src: /src/redis-rs/redis-test/src/sentinel.rs:227,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:228,1
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:231,1
    - Dst: RedisServer::len
      Src: /src/redis-rs/redis-test/src/sentinel.rs:232,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis-test/src/sentinel.rs:233,1
    - Dst: get_random_available_port
      Src: /src/redis-rs/redis-test/src/sentinel.rs:233,1
    - Dst: RedisServer::into_iter
      Src: /src/redis-rs/redis-test/src/sentinel.rs:235,1
    - Dst: std::iter::Chain::collect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:235,1
    - Dst: RedisServer::pop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:238,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:238,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:239,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:239,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:239,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:239,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:243,1
    - Dst: spawn_master_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:243,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:244,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:245,1
    - Dst: RedisServer::pop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:248,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:249,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:249,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:249,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:249,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:253,1
    - Dst: spawn_replica_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:253,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:260,1
    - Dst: wait_for_replicas_to_sync
      Src: /src/redis-rs/redis-test/src/sentinel.rs:265,1
    - Dst: RedisServer::pop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:269,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/sentinel.rs:269,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/sentinel.rs:270,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/sentinel.rs:270,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/sentinel.rs:270,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/sentinel.rs:270,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:275,1
    - Dst: spawn_sentinel_server
      Src: /src/redis-rs/redis-test/src/sentinel.rs:275,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/sentinel.rs:282,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: 290
      start: 213
    functionDepth: 7
    functionLinenumber: 213
    functionLinenumberEnd: 290
    functionName: RedisSentinelCluster::with_modules
    functionSourceFile: /src/redis-rs/redis-test/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - RedisServer::insert
    - RedisResult::prefix
    - RedisServer::into_iter
    - std::iter::Chain::collect
    - RedisServer::pop
    - impl Iterator::push
    - push
    - wait_for_replicas_to_sync
    - get_random_available_port
    - spawn_master_server
    - spawn_sentinel_server
    - RedisServer::len
    - tempdir
    - '{

      server::build_keys_and_certs_for_tls'
    - std::collections::HashSet::new
    - unwrap
    - spawn_replica_server
    - expect
    - tempfile::Builder::new
    linkageType: ''
    returnType: RedisSentinelCluster
    signature: 'pub fn with_modules(masters: u16,replicas_per_master: u16,sentinels:
      u16,modules: &[Module],) -> RedisSentinelCluster'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::stop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:294,1
    - Dst: RedisServer::stop
      Src: /src/redis-rs/redis-test/src/sentinel.rs:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 299
    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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 303
    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:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 3
    functionLinenumber: 307
    functionLinenumberEnd: 309
    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: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    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: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    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:85,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis-test/src/lib.rs:85,1
    - Dst: to_vec
      Src: /src/redis-rs/redis-test/src/lib.rs:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    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:91,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis-test/src/lib.rs:91,1
    - Dst: to_vec
      Src: /src/redis-rs/redis-test/src/lib.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: '&str::into_redis_value'
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - to_vec
    - Value::BulkString
    - '&str::as_bytes'
    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:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    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:104,1
    - Dst: bytes::Bytes::to_vec
      Src: /src/redis-rs/redis-test/src/lib.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    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:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    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:132,1
    - Dst: HashMap::into_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:133,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis-test/src/lib.rs:133,1
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:134,1
    - Dst: Result::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:134,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/lib.rs:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 137
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 137
    functionName: HashMap::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - HashMap::into_iter
    - collect
    - into_redis_value
    - std::iter::Chain::map
    - Value::Map
    - Result::into_redis_value
    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:145,1
    - Dst: HashSet::into_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:146,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis-test/src/lib.rs:146,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/lib.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 150
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 150
    functionName: HashSet::into_redis_value
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Set
    - std::iter::Chain::map
    - 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: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    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:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: 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: 238
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 238
    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:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 250
    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:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 256
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 262
    functionName: '&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:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 268
    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:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 274
    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:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 280
    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:299,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/lib.rs:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - cmd
    - response
    argTypes:
    - C
    - Result<V, RedisError>
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: MockCmd::new
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Cmd::into_redis_cmd_bytes
    - map
    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:312,1
    - Dst: Result<Vec<V>, RedisError>::map
      Src: /src/redis-rs/redis-test/src/lib.rs:313,1
    - Dst: into_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:313,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/lib.rs:313,1
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:313,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/lib.rs:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 2
    argNames:
    - cmd
    - responses
    argTypes:
    - C
    - Result<Vec<V>, RedisError>
    constantsTouched: []
    func_position:
      end: 315
      start: 306
    functionDepth: 2
    functionLinenumber: 306
    functionLinenumberEnd: 315
    functionName: MockCmd::with_values
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - Result<Vec<V>, RedisError>::map
    - map
    - collect
    - Cmd::into_redis_cmd_bytes
    - into_redis_value
    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:333,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis-test/src/lib.rs:333,1
    - Dst: VecDeque::from_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - commands
    argTypes:
    - I
    constantsTouched: []
    func_position:
      end: 336
      start: 328
    functionDepth: 7
    functionLinenumber: 328
    functionLinenumberEnd: 336
    functionName: MockRedisConnection::new
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - VecDeque::from_iter
    - Arc::new
    - Mutex::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn new<I>(commands: I) -> SelfwhereI: IntoIterator<Item = MockCmd>,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 342
    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:348,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:348,1
    - Dst: Arc::strong_count
      Src: /src/redis-rs/redis-test/src/lib.rs:349,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: MockRedisConnection::drop
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - lock
    - Arc::strong_count
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lock
      Src: /src/redis-rs/redis-test/src/lib.rs:358,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:358,1
    - Dst: is_empty
      Src: /src/redis-rs/redis-test/src/lib.rs:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: MockRedisConnection::is_empty
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - is_empty
    - lock
    - unwrap
    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:446,1
    - Dst: <MockRedisConnection as ConnectionLike>::req_packed_command
      Src: /src/redis-rs/redis-test/src/lib.rs:447,1
    - Dst: as_slice
      Src: /src/redis-rs/redis-test/src/lib.rs:449,1
    - Dst: future::ready
      Src: /src/redis-rs/redis-test/src/lib.rs:451,1
    - Dst: Poll::boxed
      Src: /src/redis-rs/redis-test/src/lib.rs:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: MockRedisConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Poll::boxed
    - <MockRedisConnection as ConnectionLike>::req_packed_command
    - as_slice
    - future::ready
    - Cmd::get_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: Cmd::get_packed_pipeline
      Src: /src/redis-rs/redis-test/src/lib.rs:460,1
    - Dst: <MockRedisConnection as ConnectionLike>::req_packed_commands
      Src: /src/redis-rs/redis-test/src/lib.rs:461,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:467,1
    - Dst: Poll::boxed
      Src: /src/redis-rs/redis-test/src/lib.rs:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&''a Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 468
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 468
    functionName: MockRedisConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - <MockRedisConnection as ConnectionLike>::req_packed_commands
    - Poll::boxed
    - as_slice
    - Cmd::get_packed_pipeline
    - future::ready
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,cmd: &''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: 472
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 472
    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: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    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: 440
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 440
    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: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    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: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    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: 494
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 494
    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: 499
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 499
    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: 504
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 504
    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: 509
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 509
    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: 514
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 514
    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:518,1
    - Dst: String::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:520,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 528
      start: 517
    functionDepth: 2
    functionLinenumber: 517
    functionLinenumberEnd: 528
    functionName: tests::into_redis_value_string
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - String::into_redis_value
    - Value::BulkString
    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:534,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 542
    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: 547
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 547
    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: 552
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 552
    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:557,1
    - Dst: Self::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:559,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 567
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 567
    functionName: tests::into_redis_value_bytes
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Self::into_redis_value
    - bytes::Bytes::from
    - 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:573,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 581
      start: 570
    functionDepth: 2
    functionLinenumber: 570
    functionLinenumberEnd: 581
    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:587,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 591
      start: 584
    functionDepth: 2
    functionLinenumber: 584
    functionLinenumberEnd: 591
    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:600,1
    - Dst: Value::Map
      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: 607
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 607
    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:611,1
    - Dst: Self::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:613,1
    - Dst: Value::into_map_iter
      Src: /src/redis-rs/redis-test/src/lib.rs:615,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis-test/src/lib.rs:615,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:615,1
    - Dst: sort_by
      Src: /src/redis-rs/redis-test/src/lib.rs:621,1
    - Dst: cmp
      Src: /src/redis-rs/redis-test/src/lib.rs:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 637
    functionName: tests::into_redis_value_hashmap
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Self::into_redis_value
    - HashMap::from
    - sort_by
    - Value::into_map_iter
    - cmp
    - Result::expect
    - "into_map_iter()\n            .expect(\"extracting elements should work\")\n\
      \            .collect::<Vec<(Value, 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:641,1
    - Dst: Self::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:643,1
    - Dst: Value::into_sequence
      Src: /src/redis-rs/redis-test/src/lib.rs:645,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis-test/src/lib.rs:645,1
    - Dst: sort_by
      Src: /src/redis-rs/redis-test/src/lib.rs:650,1
    - Dst: cmp
      Src: /src/redis-rs/redis-test/src/lib.rs:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 663
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 663
    functionName: tests::into_redis_value_hashset
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - HashSet::from
    - Self::into_redis_value
    - Value::into_sequence
    - sort_by
    - cmp
    - Result::expect
    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:667,1
    - Dst: into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 672
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 672
    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:676,1
    - Dst: make_extension_error
      Src: /src/redis-rs/redis-test/src/lib.rs:676,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis-test/src/lib.rs:676,1
    - Dst: Result::expect
      Src: /src/redis-rs/redis-test/src/lib.rs:676,1
    - Dst: clone
      Src: /src/redis-rs/redis-test/src/lib.rs:679,1
    - Dst: Self::into_redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 682
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 682
    functionName: tests::into_redis_value_server_error
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - ServerError::try_from
    - make_extension_error
    - Self::into_redis_value
    - clone
    - '&str::to_string'
    - Result::expect
    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: 690
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 690
    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:694,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 698
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 698
    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: 703
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 703
    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: 708
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 708
    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: 713
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 713
    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: 718
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 718
    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: 723
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 723
    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: 728
      start: 726
    functionDepth: 0
    functionLinenumber: 726
    functionLinenumberEnd: 728
    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: 733
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 733
    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: 738
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 738
    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: 743
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 743
    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: 748
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 748
    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:752,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 760
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 760
    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:764,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 772
      start: 763
    functionDepth: 1
    functionLinenumber: 763
    functionLinenumberEnd: 772
    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: 777
      start: 775
    functionDepth: 0
    functionLinenumber: 775
    functionLinenumberEnd: 777
    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: 782
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 782
    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:786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 789
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 789
    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: 794
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 794
    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:798,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:800,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 802
    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:806,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 805
    functionDepth: 1
    functionLinenumber: 805
    functionLinenumberEnd: 810
    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:814,1
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:815,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:817,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:818,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:824,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 827
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 827
    functionName: tests::redis_array_multiple_primitive_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - redis_value
    - Value::Int
    - Value::Array
    - Value::Boolean
    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:831,1
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:832,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:834,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:835,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:841,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:842,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:843,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 845
      start: 830
    functionDepth: 1
    functionLinenumber: 830
    functionLinenumberEnd: 845
    functionName: tests::redis_array_multiple_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - redis_value
    - Value::Int
    - Value::Array
    - Value::Boolean
    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: 850
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 850
    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:854,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 853
    functionDepth: 1
    functionLinenumber: 853
    functionLinenumberEnd: 858
    functionName: tests::redis_set_single_entry
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Set
    - redis_value
    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:862,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 866
      start: 861
    functionDepth: 1
    functionLinenumber: 861
    functionLinenumberEnd: 866
    functionName: tests::redis_set_single_entry_trailing_comma
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Set
    - redis_value
    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:870,1
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:871,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:873,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:874,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:880,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 883
      start: 869
    functionDepth: 1
    functionLinenumber: 869
    functionLinenumberEnd: 883
    functionName: tests::redis_set_multiple_primitive_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - redis_value
    - Value::Set
    - Value::Int
    - 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:887,1
    - Dst: redis_value
      Src: /src/redis-rs/redis-test/src/lib.rs:888,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:890,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:891,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:897,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:898,1
    - Dst: Value::Set
      Src: /src/redis-rs/redis-test/src/lib.rs:899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 901
      start: 886
    functionDepth: 1
    functionLinenumber: 886
    functionLinenumberEnd: 901
    functionName: tests::redis_set_multiple_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - redis_value
    - Value::Set
    - Value::Int
    - 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: 906
      start: 904
    functionDepth: 0
    functionLinenumber: 904
    functionLinenumberEnd: 906
    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:910,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 914
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 914
    functionName: tests::redis_map_single_entry
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Map
    - redis_value
    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:918,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 922
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 922
    functionName: tests::redis_map_single_entry_trailing_comma
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::Map
    - redis_value
    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:926,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis-test/src/lib.rs:928,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:928,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:931,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 939
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 939
    functionName: tests::redis_map_multiple_primitive_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - redis_value
    - Value::Map
    - Value::Int
    - Value::Boolean
    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:943,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:945,1
    - Dst: Value::Boolean
      Src: /src/redis-rs/redis-test/src/lib.rs:946,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis-test/src/lib.rs:947,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:948,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis-test/src/lib.rs:952,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis-test/src/lib.rs:958,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 960
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 960
    functionName: tests::redis_map_multiple_entries
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - redis_value
    - Value::Map
    - Value::Array
    - Value::Boolean
    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:964,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:964,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:972,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:972,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:972,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:972,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:972,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:975,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:975,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:975,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:975,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 980
      start: 963
    functionDepth: 8
    functionLinenumber: 963
    functionLinenumberEnd: 980
    functionName: tests::sync_basic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - cmd
    - Self::assert_all_commands_consumed
    - Cmd::arg
    - '&mut Cmd::arg'
    - RedisResult::unwrap
    - MockRedisConnection::new
    - exec
    linkageType: ''
    returnType: void
    signature: fn sync_basic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:985,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:985,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:993,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:993,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:993,1
    - Dst: exec_async
      Src: /src/redis-rs/redis-test/src/lib.rs:993,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:993,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:999,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:999,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis-test/src/lib.rs:999,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1002,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1002,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1002,1
    - Dst: exec_async
      Src: /src/redis-rs/redis-test/src/lib.rs:1002,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:1002,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1008,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1008,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis-test/src/lib.rs:1008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 984
    functionDepth: 8
    functionLinenumber: 984
    functionLinenumberEnd: 1010
    functionName: tests::async_basic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - cmd
    - Self::assert_all_commands_consumed
    - '&mut Cmd::query_async'
    - exec_async
    - Cmd::arg
    - '&mut Cmd::arg'
    - unwrap
    - MockRedisConnection::new
    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:1014,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:1014,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1020,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1020,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1020,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1020,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:1020,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1023,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1023,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1023,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1023,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis-test/src/lib.rs:1023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1013
    functionDepth: 8
    functionLinenumber: 1013
    functionLinenumberEnd: 1030
    functionName: tests::errors_for_unexpected_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - cmd
    - Self::assert_all_commands_consumed
    - Cmd::arg
    - RedisResult::unwrap_err
    - '&mut Cmd::arg'
    - RedisResult::unwrap
    - MockRedisConnection::new
    - exec
    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:1034,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:1034,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1041,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1041,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1041,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1041,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/lib.rs:1041,1
    - Dst: cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1042,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1042,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/lib.rs:1042,1
    - Dst: exec
      Src: /src/redis-rs/redis-test/src/lib.rs:1042,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis-test/src/lib.rs:1042,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1033
    functionDepth: 8
    functionLinenumber: 1033
    functionLinenumberEnd: 1049
    functionName: tests::errors_for_mismatched_commands
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - cmd
    - Self::assert_all_commands_consumed
    - Cmd::arg
    - RedisResult::unwrap_err
    - '&mut Cmd::arg'
    - RedisResult::unwrap
    - MockRedisConnection::new
    - exec
    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:1053,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:1053,1
    - Dst: pipe
      Src: /src/redis-rs/redis-test/src/lib.rs:1059,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis-test/src/lib.rs:1059,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1059,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis-test/src/lib.rs:1059,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1059,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis-test/src/lib.rs:1059,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/lib.rs:1059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1052
    functionDepth: 8
    functionLinenumber: 1052
    functionLinenumberEnd: 1067
    functionName: tests::pipeline_basic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::cmd'
    - Self::assert_all_commands_consumed
    - expect
    - pipe
    - Pipeline::cmd
    - '&mut Cmd::query'
    - MockRedisConnection::new
    linkageType: ''
    returnType: void
    signature: fn pipeline_basic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockRedisConnection::new
      Src: /src/redis-rs/redis-test/src/lib.rs:1071,1
    - Dst: Self::assert_all_commands_consumed
      Src: /src/redis-rs/redis-test/src/lib.rs:1071,1
    - Dst: pipe
      Src: /src/redis-rs/redis-test/src/lib.rs:1082,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis-test/src/lib.rs:1082,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis-test/src/lib.rs:1082,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1082,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis-test/src/lib.rs:1082,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/lib.rs:1082,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis-test/src/lib.rs:1082,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/lib.rs:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1070
    functionDepth: 8
    functionLinenumber: 1070
    functionLinenumberEnd: 1091
    functionName: tests::pipeline_atomic_test
    functionSourceFile: /src/redis-rs/redis-test/src/lib.rs
    functionUses: 0
    functionsReached:
    - '&mut Pipeline::cmd'
    - redis::Cmd::arg
    - '&mut Cmd::cmd'
    - Self::assert_all_commands_consumed
    - expect
    - pipe
    - '&mut Cmd::query'
    - Pipeline::atomic
    - MockRedisConnection::new
    linkageType: ''
    returnType: void
    signature: fn pipeline_atomic_test()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/redis-rs/redis-test/src/cluster.rs:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 27
      start: 21
    functionDepth: 8
    functionLinenumber: 21
    functionLinenumberEnd: 27
    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: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    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:53,1
    - Dst: String::ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:53,1
    - Dst: as_ref
      Src: /src/redis-rs/redis-test/src/cluster.rs:53,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/cluster.rs:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 3
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: ClusterType::get_intended
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - map
    - as_ref
    - env::var
    - String::ok
    linkageType: ''
    returnType: ClusterType
    signature: pub fn get_intended() -> ClusterType
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis-test/src/cluster.rs:68,1
    - Dst: redis::ConnectionAddr::Tcp
      Src: /src/redis-rs/redis-test/src/cluster.rs:69,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis-test/src/cluster.rs:69,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis-test/src/cluster.rs:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - port
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 4
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: ClusterType::build_addr
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - redis::ConnectionAddr::Tcp
    - ClusterType::get_intended
    - '&str::into'
    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:81,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:81,1
    - Dst: socket2::Socket::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:82,1
    - Dst: socket2::Domain::for_address
      Src: /src/redis-rs/redis-test/src/cluster.rs:83,1
    - Dst: RedisServer::expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:82,1
    - Dst: connect
      Src: /src/redis-rs/redis-test/src/cluster.rs:89,1
    - Dst: into
      Src: /src/redis-rs/redis-test/src/cluster.rs:89,1
    - Dst: is_ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - addr
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 90
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: port_in_use
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - into
    - RedisServer::expect
    - socket2::Socket::new
    - ConnectionAddr::parse
    - expect
    - is_ok
    - connect
    - socket2::Domain::for_address
    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: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    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: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    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:118,1
    - Dst: Vec::into_iter
      Src: /src/redis-rs/redis-test/src/cluster.rs:122,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis-test/src/cluster.rs:122,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/cluster.rs:122,1
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:124,1
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis-test/src/cluster.rs:132,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:134,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/cluster.rs:134,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/cluster.rs:134,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:134,1
    - Dst: '{

        server::build_keys_and_certs_for_tls_ext'
      Src: /src/redis-rs/redis-test/src/cluster.rs:138,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/cluster.rs:139,1
    - Dst: Some
      Src: /src/redis-rs/redis-test/src/cluster.rs:140,1
    - Dst: RedisServer::new_with_addr_tls_modules_and_spawner
      Src: /src/redis-rs/redis-test/src/cluster.rs:147,1
    - Dst: ClusterType::build_addr
      Src: /src/redis-rs/redis-test/src/cluster.rs:148,1
    - Dst: None::clone
      Src: /src/redis-rs/redis-test/src/cluster.rs:150,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:154,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis-test/src/cluster.rs:154,1
    - Dst: tempdir
      Src: /src/redis-rs/redis-test/src/cluster.rs:154,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:154,1
    - Dst: path
      Src: /src/redis-rs/redis-test/src/cluster.rs:158,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/cluster.rs:158,1
    - Dst: std::fs::write
      Src: /src/redis-rs/redis-test/src/cluster.rs:164,1
    - Dst: Poll::expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:164,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:165,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:165,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:165,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:165,1
    - Dst: path
      Src: /src/redis-rs/redis-test/src/cluster.rs:168,1
    - Dst: join
      Src: /src/redis-rs/redis-test/src/cluster.rs:168,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:165,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:165,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:165,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:165,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:174,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:174,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:176,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:176,1
    - Dst: Cmd::current_dir
      Src: /src/redis-rs/redis-test/src/cluster.rs:179,1
    - Dst: path
      Src: /src/redis-rs/redis-test/src/cluster.rs:179,1
    - Dst: push
      Src: /src/redis-rs/redis-test/src/cluster.rs:180,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis-test/src/cluster.rs:181,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:181,1
    - Dst: try_wait
      Src: /src/redis-rs/redis-test/src/cluster.rs:188,1
    - Dst: RedisServer::log_file_contents
      Src: /src/redis-rs/redis-test/src/cluster.rs:190,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/cluster.rs:194,1
    - Dst: RedisServer::log_file_contents
      Src: /src/redis-rs/redis-test/src/cluster.rs:202,1
    - Dst: Err
      Src: /src/redis-rs/redis-test/src/cluster.rs:203,1
    - Dst: port_in_use
      Src: /src/redis-rs/redis-test/src/cluster.rs:207,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:207,1
    - Dst: Ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:208,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:211,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:211,1
    - Dst: into_iter
      Src: /src/redis-rs/redis-test/src/cluster.rs:221,1
    - Dst: map
      Src: /src/redis-rs/redis-test/src/cluster.rs:221,1
    - Dst: get_random_available_port
      Src: /src/redis-rs/redis-test/src/cluster.rs:228,1
    - Dst: RedisServer::contains
      Src: /src/redis-rs/redis-test/src/cluster.rs:229,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis-test/src/cluster.rs:232,1
    - Dst: make_server
      Src: /src/redis-rs/redis-test/src/cluster.rs:236,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:237,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:237,1
    - Dst: verify_server
      Src: /src/redis-rs/redis-test/src/cluster.rs:239,1
    - Dst: impl Iterator::push
      Src: /src/redis-rs/redis-test/src/cluster.rs:242,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis-test/src/cluster.rs:242,1
    - Dst: collect
      Src: /src/redis-rs/redis-test/src/cluster.rs:221,1
    - Dst: process::Command::new
      Src: /src/redis-rs/redis-test/src/cluster.rs:252,1
    - Dst: Cmd::stdout
      Src: /src/redis-rs/redis-test/src/cluster.rs:253,1
    - Dst: process::Stdio::piped
      Src: /src/redis-rs/redis-test/src/cluster.rs:253,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:253,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:253,1
    - Dst: args
      Src: /src/redis-rs/redis-test/src/cluster.rs:253,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:258,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:258,1
    - Dst: to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:258,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:260,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:270,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:271,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:272,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:273,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:274,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:275,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:276,1
    - Dst: None::is_some
      Src: /src/redis-rs/redis-test/src/cluster.rs:278,1
    - Dst: None::as_ref
      Src: /src/redis-rs/redis-test/src/cluster.rs:279,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:279,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:280,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:280,1
    - Dst: arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:280,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:282,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis-test/src/cluster.rs:282,1
    - Dst: Cmd::output
      Src: /src/redis-rs/redis-test/src/cluster.rs:288,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:288,1
    - Dst: success
      Src: /src/redis-rs/redis-test/src/cluster.rs:289,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:297,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:297,1
    - Dst: Result::wait_for_replicas
      Src: /src/redis-rs/redis-test/src/cluster.rs:308,1
    - Dst: wait_for_status_ok
      Src: /src/redis-rs/redis-test/src/cluster.rs:311,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 288
    argCount: 1
    argNames:
    - configuration
    argTypes:
    - RedisClusterConfiguration
    constantsTouched: []
    func_position:
      end: 313
      start: 107
    functionDepth: 7
    functionLinenumber: 107
    functionLinenumberEnd: 313
    functionName: RedisCluster::new
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - Some
    - RedisServer::log_file_contents
    - None::is_some
    - RedisServer::insert
    - RedisResult::prefix
    - arg
    - impl Iterator::push
    - Err
    - args
    - port_in_use
    - std::fs::write
    - process::Command::new
    - wait_for_status_ok
    - push
    - into_iter
    - process::Stdio::piped
    - map
    - get_random_available_port
    - None::clone
    - make_server
    - Result::wait_for_replicas
    - '{

      server::build_keys_and_certs_for_tls_ext'
    - try_wait
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - ConnectionAddr::clone
    - None::as_ref
    - RedisServer::contains
    - join
    - ClusterType::get_intended
    - tempdir
    - Cmd::current_dir
    - path
    - Cmd::stdout
    - Cmd::output
    - std::collections::HashSet::new
    - verify_server
    - '&mut Cmd::arg'
    - unwrap
    - Vec::is_empty
    - ClusterType::build_addr
    - Poll::expect
    - std::thread::sleep
    - to_string
    - success
    - Ok
    - collect
    - expect
    - Cmd::arg
    - Duration::from_millis
    - std::iter::Chain::map
    - Vec::into_iter
    - Cmd::spawn
    - tempfile::Builder::new
    linkageType: ''
    returnType: RedisCluster
    signature: 'pub fn new(configuration: RedisClusterConfiguration) -> RedisCluster'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis-test/src/cluster.rs:317,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis-test/src/cluster.rs:323,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis-test/src/cluster.rs:323,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:323,1
    - Dst: get_connection
      Src: /src/redis-rs/redis-test/src/cluster.rs:325,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:325,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis-test/src/cluster.rs:329,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis-test/src/cluster.rs:329,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis-test/src/cluster.rs:329,1
    - Dst: unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:329,1
    - Dst: redis::from_redis_value
      Src: /src/redis-rs/redis-test/src/cluster.rs:330,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis-test/src/cluster.rs:330,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis-test/src/cluster.rs:334,1
    - Dst: all
      Src: /src/redis-rs/redis-test/src/cluster.rs:334,1
    - Dst: u16::len
      Src: /src/redis-rs/redis-test/src/cluster.rs:334,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:338,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:338,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 1
    argNames:
    - replicas
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 343
      start: 315
    functionDepth: 10
    functionLinenumber: 315
    functionLinenumberEnd: 343
    functionName: RedisCluster::wait_for_replicas
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - RedisResult::iter
    - get_connection
    - Result::unwrap
    - RedisServer::connection_info
    - redis::Client::open
    - std::thread::sleep
    - Duration::from_millis
    - all
    - RedisResult::unwrap
    - redis::cmd
    - '&mut Cmd::query'
    - unwrap
    - u16::len
    - redis::from_redis_value
    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:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 349
    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:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 353
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 353
    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:358,1
    - Dst: std::fs::read_to_string
      Src: /src/redis-rs/redis-test/src/cluster.rs:362,1
    - Dst: expect
      Src: /src/redis-rs/redis-test/src/cluster.rs:362,1
    - Dst: Option::contains
      Src: /src/redis-rs/redis-test/src/cluster.rs:364,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis-test/src/cluster.rs:367,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis-test/src/cluster.rs:367,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - '&RedisCluster'
    constantsTouched: []
    func_position:
      end: 371
      start: 356
    functionDepth: 2
    functionLinenumber: 356
    functionLinenumberEnd: 371
    functionName: wait_for_status_ok
    functionSourceFile: /src/redis-rs/redis-test/src/cluster.rs
    functionUses: 1
    functionsReached:
    - std::fs::read_to_string
    - Option::contains
    - expect
    - RedisServer::log_file
    - Duration::from_millis
    - std::thread::sleep
    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:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 376
    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:10,1
    - Dst: len
      Src: /src/redis-rs/test-macros/src/lib.rs:12,1
    - Dst: last
      Src: /src/redis-rs/test-macros/src/lib.rs:13,1
    - Dst: syn::Error::new_spanned
      Src: /src/redis-rs/test-macros/src/lib.rs:14,1
    - Dst: to_compile_error
      Src: /src/redis-rs/test-macros/src/lib.rs:14,1
    - Dst: into
      Src: /src/redis-rs/test-macros/src/lib.rs:14,1
    - Dst: syn::Ident::new
      Src: /src/redis-rs/test-macros/src/lib.rs:28,1
    - Dst: span
      Src: /src/redis-rs/test-macros/src/lib.rs:30,1
    - Dst: syn::Ident::new
      Src: /src/redis-rs/test-macros/src/lib.rs:32,1
    - Dst: span
      Src: /src/redis-rs/test-macros/src/lib.rs:34,1
    - Dst: syn::Error::new_spanned
      Src: /src/redis-rs/test-macros/src/lib.rs:75,1
    - Dst: to_compile_error
      Src: /src/redis-rs/test-macros/src/lib.rs:75,1
    - Dst: into
      Src: /src/redis-rs/test-macros/src/lib.rs:75,1
    - Dst: is_empty
      Src: /src/redis-rs/test-macros/src/lib.rs:82,1
    - Dst: syn::Error::new_spanned
      Src: /src/redis-rs/test-macros/src/lib.rs:94,1
    - Dst: to_compile_error
      Src: /src/redis-rs/test-macros/src/lib.rs:94,1
    - Dst: into
      Src: /src/redis-rs/test-macros/src/lib.rs:94,1
    - Dst: into
      Src: /src/redis-rs/test-macros/src/lib.rs:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 65
    argCount: 2
    argNames:
    - input
    argTypes:
    - TokenStream
    - TokenStream
    constantsTouched: []
    func_position:
      end: 103
      start: 5
    functionDepth: 2
    functionLinenumber: 5
    functionLinenumberEnd: 103
    functionName: async_test
    functionSourceFile: /src/redis-rs/test-macros/src/lib.rs
    functionUses: 0
    functionsReached:
    - into
    - clone
    - syn::Error::new_spanned
    - len
    - is_empty
    - last
    - to_compile_error
    - syn::Ident::new
    - span
    linkageType: ''
    returnType: TokenStream
    signature: 'pub fn async_test(_: TokenStream, input: TokenStream) -> TokenStream'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::split
      Src: /src/redis-rs/redis/src/sentinel.rs:398,1
    - Dst: filter
      Src: /src/redis-rs/redis/src/sentinel.rs:398,1
    - Dst: trim_start
      Src: /src/redis-rs/redis/src/sentinel.rs:400,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/sentinel.rs:400,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/sentinel.rs:398,1
    - Dst: split_once
      Src: /src/redis-rs/redis/src/sentinel.rs:401,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:398,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/sentinel.rs:402,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/sentinel.rs:402,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 1
    argNames:
    - value
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 405
      start: 397
    functionDepth: 3
    functionLinenumber: 397
    functionLinenumberEnd: 405
    functionName: parse_replication_info
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - to_string
    - impl combine::Parser::split
    - map
    - collect
    - trim_start
    - filter
    - filter_map
    - starts_with
    - split_once
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - replication_info
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 4
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:31,1
    - Dst: '&ConnectionInfo::addr'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - replication_info
    - expected_master
    argTypes:
    - String
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 52
      start: 30
    functionDepth: 4
    functionLinenumber: 30
    functionLinenumberEnd: 52
    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:55,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:55,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:55,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:55,1
    - Dst: assert_is_master_role
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 5
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: assert_is_connection_to_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - redis::cmd
    - unwrap
    - '&mut Cmd::query'
    - assert_is_master_role
    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:60,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:60,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:60,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:60,1
    - Dst: assert_replica_role_and_master_addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:61,1
    - Dst: '&Client::get_connection_info'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - conn
    - master_client
    argTypes:
    - '&mut Connection'
    - '&Client'
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 5
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: assert_connection_is_replica_of_correct_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - assert_replica_role_and_master_addr
    - '&Client::get_connection_info'
    - redis::cmd
    - unwrap
    - '&mut Cmd::query'
    linkageType: ''
    returnType: void
    signature: 'fn assert_connection_is_replica_of_correct_master(conn: &mut Connection,
      master_client: &Client)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&redis::sentinel::Sentinel::replica_rotate_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:76,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:77,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:76,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:79,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:79,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:82,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:82,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:82,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:82,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:84,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: 88
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 88
    functionName: connect_to_all_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - addr
    - get_connection
    - get_connection_info
    - clone
    - '&redis::sentinel::Sentinel::replica_rotate_for'
    - assert_connection_is_replica_of_correct_master
    - unwrap
    - RedisResult::unwrap
    - push
    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: '&redis::sentinel::Sentinel::replica_rotate_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:99,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:100,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:99,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:102,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:102,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:106,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: 108
      start: 90
    functionDepth: 6
    functionLinenumber: 90
    functionLinenumberEnd: 108
    functionName: assert_connect_to_known_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - get_connection
    - '&redis::sentinel::Sentinel::replica_rotate_for'
    - assert_connection_is_replica_of_correct_master
    - unwrap
    - 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:114,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:115,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:116,1
    - Dst: '&redis::sentinel::Sentinel::get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:117,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:118,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 122
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 122
    functionName: test_get_replica_clients_success
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - TestSentinelContext::sentinel_node_connection_info
    - RedisResult::unwrap
    - TestSentinelContext::sentinel_mut
    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:126,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:127,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:128,1
    - Dst: '&redis::sentinel::Sentinel::get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:130,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:131,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 141
    functionName: test_get_replica_clients_invalid_master_name
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - TestSentinelContext::sentinel_node_connection_info
    - RedisResult::unwrap_err
    - TestSentinelContext::sentinel_mut
    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:147,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:148,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:149,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:150,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:151,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:150,1
    - Dst: '&redis::sentinel::Sentinel::get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:154,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:155,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:154,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:159,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:159,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 162
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 162
    functionName: test_get_replica_clients_report_correct_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - get_connection
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::master_for'
    - assert_connection_is_replica_of_correct_master
    - RedisResult::unwrap
    - unwrap
    - TestSentinelContext::sentinel_mut
    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:169,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:170,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:171,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:171,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:172,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:172,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:172,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:172,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:177,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:177,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:177,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:177,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:177,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:177,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:177,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:185,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:187,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:187,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:189,1
    - Dst: '&redis::sentinel::Sentinel::get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:191,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 199
    functionName: test_get_replica_clients_with_one_replica_down
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - '&redis::sentinel::Sentinel::get_replica_clients'
    - std::time::Duration::from_millis
    - arg
    - redis::Cmd::arg
    - clone
    - TestSentinelContext::sentinel_node_connection_info
    - RedisResult::unwrap
    - redis::cmd
    - TestSentinelContext::new
    - stop
    - Client::open
    - unwrap
    - '&mut Cmd::arg'
    - std::thread::sleep
    - TestSentinelContext::sentinel_mut
    - get_connection
    - TestSentinelContext::sentinels_connection_info
    - RedisResult::expect
    - "arg(\"set\")\n        .arg(master_name)\n        .arg(\"down-after-milliseconds\"\
      )\n        .arg(\"500\")\n        .query::<()>"
    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:205,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:206,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:207,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:209,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:210,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:209,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:212,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:212,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:214,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:214,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:214,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:214,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:219,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:219,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:219,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:219,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:219,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:219,1
    - Dst: '&redis::sentinel::Sentinel::replica_rotate_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:228,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:229,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:228,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:231,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:231,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 Cmd::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: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:240,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:241,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:240,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:243,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:243,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 202
    functionDepth: 6
    functionLinenumber: 202
    functionLinenumberEnd: 246
    functionName: test_sentinel_role_no_permission
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - redis::Cmd::arg
    - get_connection
    - '&redis::sentinel::Sentinel::master_for'
    - arg
    - '&redis::sentinel::Sentinel::replica_rotate_for'
    - Result::sentinel_mut
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - '&mut Cmd::query'
    - Result::sentinel_node_connection_info
    - '&mut Cmd::arg'
    - query
    - assert_is_connection_to_master
    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:252,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:253,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:254,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:256,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:257,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:256,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:259,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:259,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:261,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:261,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:261,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:261,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:266,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:266,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:266,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:266,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:266,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:266,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:266,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:274,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:275,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 280
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 280
    functionName: test_sentinel_no_role_or_info_permission
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - redis::Cmd::arg
    - get_connection
    - '&redis::sentinel::Sentinel::master_for'
    - arg
    - Result::sentinel_mut
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - '&mut Cmd::query'
    - Result::sentinel_node_connection_info
    - '&mut Cmd::arg'
    - query
    - RedisResult::unwrap_err
    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:286,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:287,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:288,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:290,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:291,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:290,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:293,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:293,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:295,1
    - Dst: '&redis::sentinel::Sentinel::replica_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:297,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:298,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:297,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:297,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:297,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 304
      start: 283
    functionDepth: 6
    functionLinenumber: 283
    functionLinenumberEnd: 304
    functionName: test_sentinel_connect_to_random_replica
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - get_connection
    - '&redis::sentinel::Sentinel::master_for'
    - Result::sentinel_mut
    - '&redis::sentinel::Sentinel::replica_for'
    - assert_connection_is_replica_of_correct_master
    - RedisResult::unwrap
    - unwrap
    - Result::sentinel_node_connection_info
    - assert_is_connection_to_master
    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:310,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:311,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:312,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:314,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:315,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:314,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:317,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:317,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:319,1
    - Dst: connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:321,1
    - Dst: assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 307
    functionDepth: 6
    functionLinenumber: 307
    functionLinenumberEnd: 337
    functionName: test_sentinel_connect_to_multiple_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - get_connection
    - '&redis::sentinel::Sentinel::master_for'
    - connect_to_all_replicas
    - Result::sentinel_mut
    - RedisResult::unwrap
    - unwrap
    - Result::sentinel_node_connection_info
    - assert_connect_to_known_replicas
    - assert_is_connection_to_master
    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:343,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:344,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:345,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:347,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:348,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:347,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:350,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:350,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:352,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:354,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:355,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:355,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:357,1
    - Dst: connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:359,1
    - Dst: assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 375
      start: 340
    functionDepth: 6
    functionLinenumber: 340
    functionLinenumberEnd: 375
    functionName: test_sentinel_server_down
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - get_connection
    - stop
    - TestSentinelContext::sentinel_node_connection_info
    - '&redis::sentinel::Sentinel::master_for'
    - connect_to_all_replicas
    - Duration::from_millis
    - RedisResult::unwrap
    - unwrap
    - assert_connect_to_known_replicas
    - assert_is_connection_to_master
    - std::thread::sleep
    - TestSentinelContext::sentinel_mut
    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:380,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:381,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:382,1
    - Dst: '&redis::sentinel::Sentinel::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:382,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:382,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:382,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:382,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:386,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:386,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:386,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:390,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:391,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:391,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:392,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:393,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:393,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:390,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:398,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:399,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:399,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:400,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:401,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:401,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:398,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:406,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:406,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:407,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:407,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:407,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:410,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:412,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:413,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:414,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:415,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:414,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:419,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:419,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:420,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:420,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:420,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 378
    functionDepth: 6
    functionLinenumber: 378
    functionLinenumberEnd: 425
    functionName: test_sentinel_redis_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - get_connection
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - '&redis::sentinel::Sentinel::master_for'
    - Client::open
    - redis::Cmd::query
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - assert_connection_is_replica_of_correct_master
    - '&Vec::clone'
    - assert_is_connection_to_master
    - '&redis::sentinel::Sentinel::clone'
    - SentinelClient::build
    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:430,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:431,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:432,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:432,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:433,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:434,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:434,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:431,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:439,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:440,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:440,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:441,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:442,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:442,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:439,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:447,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:447,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:448,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:448,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:449,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 460
    functionName: test_sentinel_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - get_sentinel_client
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - first
    - RedisResult::unwrap
    - unwrap
    - '&Vec::clone'
    - SentinelClient::build
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_client()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:466,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:468,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:466,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:474,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 477
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 477
    functionName: test_sentinel_client_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - get_sentinel_client
    - String::from
    - RedisResult::unwrap
    - expect_err
    - SentinelClient::build
    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:482,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:484,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:484,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:488,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:488,1
    - Dst: "cluster\n        .servers\n        .iter()\n        .map(|redis_server|\
        \ redis_server.connection_info().clone())\n        .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:484,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:490,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:491,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:491,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:492,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:490,1
    - Dst: get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:498,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 507
      start: 480
    functionDepth: 10
    functionLinenumber: 480
    functionLinenumberEnd: 507
    functionName: test_sentinel_client_not_sentinel_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - get_sentinel_client
    - iter
    - map
    - clone
    - connection_info
    - TestSentinelContext::sentinels_connection_info
    - String::from
    - "cluster\n        .servers\n        .iter()\n        .map(|redis_server| redis_server.connection_info().clone())\n\
      \        .collect::<Vec<_>>"
    - RedisResult::unwrap
    - expect_err
    - '&Vec::clone'
    - SentinelClient::build
    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:512,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:513,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:514,1
    - Dst: '&redis::sentinel::Sentinel::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:514,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:514,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:514,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:514,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:518,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:518,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:518,1
    - Dst: SentinelClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:522,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:523,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:523,1
    - Dst: '&redis::sentinel::Sentinel::addr'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:526,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:526,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:527,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:522,1
    - Dst: SentinelClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:532,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:533,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:533,1
    - Dst: '&redis::sentinel::Sentinel::addr'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:536,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:536,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:537,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:532,1
    - Dst: set_client_to_sentinel_protocol
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:542,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:542,1
    - Dst: TestSentinelContext::tls_mode
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:544,1
    - Dst: set_client_to_redis_tls_mode
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:545,1
    - Dst: set_client_to_redis_tls_mode
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:546,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:549,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:549,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:550,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:550,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:552,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:552,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:553,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:553,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:553,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:556,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:558,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:559,1
    - Dst: '&redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:560,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:561,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:560,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:565,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:565,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:566,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:566,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:566,1
    - Dst: assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:569,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 116
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 571
      start: 510
    functionDepth: 5
    functionLinenumber: 510
    functionLinenumberEnd: 571
    functionName: test_sentinel_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - '&redis::sentinel::Sentinel::master_for'
    - set_client_to_sentinel_protocol
    - TestSentinelContext::tls_mode
    - redis::Cmd::query
    - map
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - RedisResult::unwrap
    - redis::cmd
    - ConnectionAddr::clone
    - assert_is_connection_to_master
    - TestSentinelContext::new
    - SentinelClientBuilder::new
    - iter
    - redis_test::server::use_protocol
    - Client::open
    - assert_connection_is_replica_of_correct_master
    - unwrap
    - TestSentinelContext::sentinel_mut
    - get_connection
    - TestSentinelContext::sentinels_connection_info
    - '&redis::sentinel::Sentinel::addr'
    - build
    - set_client_to_redis_tls_mode
    - '&redis::sentinel::Sentinel::clone'
    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:582,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:582,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:582,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:582,1
    - Dst: assert_is_master_role
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 589
      start: 581
    functionDepth: 5
    functionLinenumber: 581
    functionLinenumberEnd: 589
    functionName: async_tests::async_assert_is_connection_to_master
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - unwrap
    - redis::cmd
    - assert_is_master_role
    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:595,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:595,1
    - Dst: '&mut Cmd::query_async'
      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: assert_replica_role_and_master_addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:601,1
    - Dst: '&Client::get_connection_info'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - conn
    - master_client
    argTypes:
    - '&mut MultiplexedConnection'
    - '&Client'
    constantsTouched: []
    func_position:
      end: 602
      start: 591
    functionDepth: 5
    functionLinenumber: 591
    functionLinenumberEnd: 602
    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::arg
    - assert_replica_role_and_master_addr
    - '&mut Cmd::query_async'
    - '&Client::get_connection_info'
    - unwrap
    - redis::cmd
    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: '&redis::sentinel::Sentinel::async_replica_rotate_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:615,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:616,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:615,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:619,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:619,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:630,1
    - Dst: get_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:630,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:630,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:630,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:632,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: 637
      start: 605
    functionDepth: 5
    functionLinenumber: 605
    functionLinenumberEnd: 637
    functionName: async_tests::async_connect_to_all_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - addr
    - '&redis::sentinel::Sentinel::async_replica_rotate_for'
    - clone
    - get_multiplexed_async_connection
    - unwrap
    - get_connection_info
    - async_assert_connection_is_replica_of_correct_master
    - push
    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: '&redis::sentinel::Sentinel::async_replica_rotate_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:648,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:649,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:648,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:652,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:652,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:659,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: 662
      start: 639
    functionDepth: 6
    functionLinenumber: 639
    functionLinenumberEnd: 662
    functionName: async_tests::async_assert_connect_to_known_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - '&redis::sentinel::Sentinel::async_replica_rotate_for'
    - get_multiplexed_async_connection
    - unwrap
    - 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:667,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:668,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:669,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:671,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:672,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:671,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:675,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:675,1
    - Dst: '&redis::sentinel::Sentinel::async_replica_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:680,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:681,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:680,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:680,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:680,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:688,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:689,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 665
    functionDepth: 6
    functionLinenumber: 665
    functionLinenumberEnd: 691
    functionName: async_tests::sentinel_connect_to_random_replica_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - async_assert_is_connection_to_master
    - TestSentinelContext::sentinel_node_connection_info
    - get_multiplexed_async_connection
    - '&redis::sentinel::Sentinel::async_master_for'
    - unwrap
    - '&redis::sentinel::Sentinel::async_replica_for'
    - async_assert_connection_is_replica_of_correct_master
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: void
    signature: async fn sentinel_connect_to_random_replica_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:697,1
    - Dst: Result::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:698,1
    - Dst: Result::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:699,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:701,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:702,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:701,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:705,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:705,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:710,1
    - Dst: async_connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:712,1
    - Dst: async_assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 730
      start: 694
    functionDepth: 6
    functionLinenumber: 694
    functionLinenumberEnd: 730
    functionName: async_tests::sentinel_connect_to_multiple_replicas_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - async_assert_is_connection_to_master
    - async_assert_connect_to_known_replicas
    - get_multiplexed_async_connection
    - Result::sentinel_mut
    - '&redis::sentinel::Sentinel::async_master_for'
    - async_connect_to_all_replicas
    - unwrap
    - Result::sentinel_node_connection_info
    linkageType: ''
    returnType: void
    signature: async fn sentinel_connect_to_multiple_replicas_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:736,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:737,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:739,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:741,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:742,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:741,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:745,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:745,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:750,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:752,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:753,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:753,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:755,1
    - Dst: async_connect_to_all_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:757,1
    - Dst: async_assert_connect_to_known_replicas
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:766,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 775
      start: 733
    functionDepth: 6
    functionLinenumber: 733
    functionLinenumberEnd: 775
    functionName: async_tests::sentinel_server_down_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - async_assert_is_connection_to_master
    - stop
    - TestSentinelContext::sentinel_node_connection_info
    - async_assert_connect_to_known_replicas
    - get_multiplexed_async_connection
    - '&redis::sentinel::Sentinel::async_master_for'
    - Duration::from_millis
    - async_connect_to_all_replicas
    - unwrap
    - std::thread::sleep
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: void
    signature: async fn sentinel_server_down_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:780,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:781,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:782,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:782,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:783,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:784,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:784,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:781,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:789,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:790,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:790,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:791,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:792,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:792,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:789,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:797,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:797,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:799,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:801,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:802,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:803,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:804,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:803,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:810,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:810,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:812,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 815
      start: 778
    functionDepth: 6
    functionLinenumber: 778
    functionLinenumberEnd: 815
    functionName: async_tests::sentinel_redis_client_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - async_assert_is_connection_to_master
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - '&redis::sentinel::Sentinel::async_master_for'
    - RedisResult::unwrap
    - unwrap
    - async_assert_connection_is_replica_of_correct_master
    - '&Vec::clone'
    - get_async_connection
    - SentinelClient::build
    linkageType: ''
    returnType: void
    signature: async fn sentinel_redis_client_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:820,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:821,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:822,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:822,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:823,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:824,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:824,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:821,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:829,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:830,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:830,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:831,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:832,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:832,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:829,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:837,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:837,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:838,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:838,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 850
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 850
    functionName: async_tests::sentinel_client_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - first
    - RedisResult::unwrap
    - async_get_sentinel_client
    - unwrap
    - '&Vec::clone'
    - SentinelClient::build
    linkageType: ''
    returnType: void
    signature: async fn sentinel_client_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:856,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:858,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:858,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:862,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:862,1
    - Dst: "cluster\n            .servers\n            .iter()\n            .map(|redis_server|\
        \ redis_server.connection_info().clone())\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:858,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:864,1
    - Dst: TestSentinelContext::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: TestSentinelContext::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: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:872,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:873,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 881
      start: 853
    functionDepth: 10
    functionLinenumber: 853
    functionLinenumberEnd: 881
    functionName: async_tests::sentinel_client_async_not_sentinel_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - iter
    - map
    - "cluster\n            .servers\n            .iter()\n            .map(|redis_server|\
      \ redis_server.connection_info().clone())\n            .collect::<Vec<_>>"
    - clone
    - connection_info
    - TestSentinelContext::sentinels_connection_info
    - String::from
    - TestSentinelContext::sentinel_node_connection_info
    - RedisResult::unwrap
    - async_get_sentinel_client
    - expect_err
    - '&Vec::clone'
    - SentinelClient::build
    linkageType: ''
    returnType: void
    signature: async fn sentinel_client_async_not_sentinel_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:887,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:889,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:887,1
    - Dst: async_get_sentinel_client
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:895,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 898
      start: 884
    functionDepth: 1
    functionLinenumber: 884
    functionLinenumberEnd: 898
    functionName: async_tests::sentinel_client_async_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - String::from
    - async_get_sentinel_client
    - RedisResult::unwrap
    - expect_err
    - SentinelClient::build
    linkageType: ''
    returnType: void
    signature: async fn sentinel_client_async_io_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:903,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:904,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:905,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:905,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:906,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:907,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:907,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:904,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:912,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:913,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:913,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:914,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:915,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:915,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:912,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:921,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:921,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:921,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:921,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:923,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:923,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:928,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:930,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:931,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:932,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:933,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:932,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:939,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:939,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:944,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 947
      start: 901
    functionDepth: 6
    functionLinenumber: 901
    functionLinenumberEnd: 947
    functionName: async_tests::sentinel_client_async_with_connection_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - AsyncConnectionConfig::new
    - async_assert_is_connection_to_master
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - Self::set_connection_timeout
    - Duration::from_secs
    - '&redis::sentinel::Sentinel::async_master_for'
    - RedisResult::unwrap
    - unwrap
    - get_async_connection_with_config
    - '&Vec::clone'
    - async_assert_connection_is_replica_of_correct_master
    - SentinelClient::build
    linkageType: ''
    returnType: void
    signature: async fn sentinel_client_async_with_connection_timeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:952,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:953,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:954,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:954,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:955,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:956,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:956,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:953,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:961,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:962,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:962,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:963,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:964,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:964,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:961,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:969,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:971,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:971,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:976,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:978,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:979,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:980,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:981,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:980,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:987,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:987,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:992,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 995
      start: 950
    functionDepth: 6
    functionLinenumber: 950
    functionLinenumberEnd: 995
    functionName: async_tests::sentinel_client_async_with_response_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - AsyncConnectionConfig::new
    - async_assert_is_connection_to_master
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - '&redis::sentinel::Sentinel::async_master_for'
    - RedisResult::unwrap
    - unwrap
    - get_async_connection_with_config
    - '&Vec::clone'
    - async_assert_connection_is_replica_of_correct_master
    - SentinelClient::build
    linkageType: ''
    returnType: void
    signature: async fn sentinel_client_async_with_response_timeout()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1000,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1001,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1002,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1002,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1003,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1004,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1004,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1001,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1009,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1010,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1010,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1011,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1012,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1012,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1009,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1017,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1019,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1019,1
    - Dst: async_assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1024,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1026,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1027,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1028,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1029,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1028,1
    - Dst: get_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1035,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1035,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1040,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 998
    functionDepth: 6
    functionLinenumber: 998
    functionLinenumberEnd: 1043
    functionName: async_tests::sentinel_client_async_with_timeouts
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - AsyncConnectionConfig::new
    - async_assert_is_connection_to_master
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::sentinels_connection_info
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - '&redis::sentinel::Sentinel::async_master_for'
    - RedisResult::unwrap
    - unwrap
    - get_async_connection_with_config
    - '&Vec::clone'
    - async_assert_connection_is_replica_of_correct_master
    - SentinelClient::build
    linkageType: ''
    returnType: void
    signature: async fn sentinel_client_async_with_timeouts()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1049,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1050,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1051,1
    - Dst: '&redis::sentinel::Sentinel::async_get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1053,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1054,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1053,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1046
    functionDepth: 1
    functionLinenumber: 1046
    functionLinenumberEnd: 1058
    functionName: async_tests::get_replica_clients_success_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - unwrap
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: void
    signature: async fn get_replica_clients_success_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1062,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1063,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1064,1
    - Dst: '&redis::sentinel::Sentinel::async_get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1066,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1067,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1078
    functionName: async_tests::get_replica_clients_invalid_master_name_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - unwrap_err
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: void
    signature: async fn get_replica_clients_invalid_master_name_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1084,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1085,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1086,1
    - Dst: '&redis::sentinel::Sentinel::async_master_for'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1088,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1089,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1088,1
    - Dst: '&redis::sentinel::Sentinel::async_get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1092,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1093,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1092,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1098,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1098,1
    - Dst: async_assert_connection_is_replica_of_correct_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1102,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1081
    functionDepth: 6
    functionLinenumber: 1081
    functionLinenumberEnd: 1104
    functionName: async_tests::get_replica_clients_report_correct_master_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - TestSentinelContext::new
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - get_multiplexed_async_connection
    - '&redis::sentinel::Sentinel::async_master_for'
    - unwrap
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - async_assert_connection_is_replica_of_correct_master
    - TestSentinelContext::sentinel_mut
    linkageType: ''
    returnType: void
    signature: async fn get_replica_clients_report_correct_master_async()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestSentinelContext::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1110,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1111,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1112,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1112,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1114,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1114,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1114,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1114,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1120,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1120,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1120,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1120,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1120,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:1120,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1120,1
    - Dst: stop
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1129,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1130,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1130,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1132,1
    - Dst: '&redis::sentinel::Sentinel::async_get_replica_clients'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1133,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1134,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1107
    functionDepth: 2
    functionLinenumber: 1107
    functionLinenumberEnd: 1143
    functionName: async_tests::get_replica_clients_with_one_replica_down_async
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - "arg(\"set\")\n            .arg(master_name)\n            .arg(\"down-after-milliseconds\"\
      )\n            .arg(\"500\")\n            .query_async::<()>"
    - std::time::Duration::from_millis
    - arg
    - '&redis::sentinel::Sentinel::async_get_replica_clients'
    - redis::Cmd::arg
    - clone
    - TestSentinelContext::sentinel_node_connection_info
    - get_multiplexed_async_connection
    - RedisResult::unwrap
    - redis::cmd
    - TestSentinelContext::new
    - stop
    - Client::open
    - unwrap
    - '&mut Cmd::arg'
    - std::thread::sleep
    - TestSentinelContext::sentinel_mut
    - TestSentinelContext::sentinels_connection_info
    - expect
    linkageType: ''
    returnType: void
    signature: async fn 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:1155,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1155,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1157,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 1160
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1160
    functionName: pool_tests::parse_client_info
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - split_once
    - collect
    - impl combine::Parser::split
    - filter_map
    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:1165,1
    - Dst: SentinelClient::build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1166,1
    - Dst: TestSentinelContext::sentinels_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1167,1
    - Dst: '&Vec::clone'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1167,1
    - Dst: String::from
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1168,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1169,1
    - Dst: TestSentinelContext::sentinel_node_connection_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1169,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1166,1
    - Dst: Pool::builder
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1174,1
    - Dst: max_size
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1174,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1174,1
    - Dst: LockedSentinelClient::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1176,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1174,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1179,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1181,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1181,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1183,1
    - Dst: try_get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1187,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1190,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1193,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1193,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1193,1
    - Dst: RedisResult::deref_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1195,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1193,1
    - Dst: parse_client_info
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1198,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1198,1
    - Dst: assert_is_connection_to_master
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1203,1
    - Dst: RedisResult::deref_mut
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1203,1
    - Dst: try_get
      Src: /src/redis-rs/redis/tests/test_sentinel.rs:1207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1163
    functionDepth: 7
    functionLinenumber: 1163
    functionLinenumberEnd: 1209
    functionName: pool_tests::test_sentinel_client
    functionSourceFile: /src/redis-rs/redis/tests/test_sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - try_get
    - RedisResult::deref_mut
    - '&Vec::clone'
    - redis::Cmd::arg
    - parse_client_info
    - TestSentinelContext::sentinel_node_connection_info
    - String::from
    - RedisResult::unwrap
    - redis::cmd
    - assert_is_connection_to_master
    - Pool::builder
    - TestSentinelContext::new
    - get
    - Vec::new
    - LockedSentinelClient::new
    - unwrap
    - '&mut Cmd::query'
    - SentinelClient::build
    - max_size
    - HashSet::new
    - TestSentinelContext::sentinels_connection_info
    - as_str
    - build
    - RedisServer::push
    linkageType: ''
    returnType: void
    signature: fn test_sentinel_client()
  - 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: Result::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:
    - Result::unwrap
    - T::from_redis_value_ref
    - redis_test::redis_value
    - ToRedisArgs::to_redis_args
    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: []
    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: TestContext::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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:
    - redis::Cmd::arg
    - into
    - CacheConfig::default
    - CacheConfig::new
    - supports_resp3
    - '&mut Cmd::query_async'
    - TestContext::async_connection_with_cache_config
    - query_async
    - futures_time::task::sleep
    - Self::set_mode
    - assert_hit
    - get_cmd
    - Duration::from_millis
    - unwrap
    - '&mut Cmd::arg'
    - TestContext::new
    - assert_miss
    - assert_invalidate
    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: TestContext::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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: cache_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - cmd
    - supports_resp3
    - '&mut Cmd::query_async'
    - query_async
    - arg
    - redis::Pipeline::cmd
    - get_pipe
    - assert_hit
    - TestContext::async_connection_with_cache
    - redis::cmd
    - unwrap
    - '&mut Cmd::arg'
    - TestContext::new
    - assert_miss
    - ignore
    linkageType: ''
    returnType: void
    signature: async fn 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: TestContext::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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: module_cache_json_get_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - cmd
    - supports_resp3
    - TestContext::async_connection_with_cache_config
    - arg
    - ignore
    - redis::Cmd::arg
    - clone
    - query_async
    - TestContext::with_modules
    - get_cmd
    - String::unwrap
    - assert_hit
    - unwrap
    - '&mut Cmd::arg'
    - serde_json::to_string
    - CacheConfig::new
    - redis::Pipeline::cmd
    - Self::set_mode
    - get_pipe
    - assert_miss
    linkageType: ''
    returnType: void
    signature: async fn module_cache_json_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: TestContext::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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: module_cache_json_get_mget_different_paths
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - cmd
    - supports_resp3
    - TestContext::async_connection_with_cache_config
    - arg
    - ignore
    - redis::Cmd::arg
    - clone
    - query_async
    - TestContext::with_modules
    - get_cmd
    - String::unwrap
    - assert_hit
    - unwrap
    - '&mut Cmd::arg'
    - serde_json::to_string
    - CacheConfig::new
    - redis::Pipeline::cmd
    - Self::set_mode
    - get_pipe
    - assert_miss
    linkageType: ''
    returnType: void
    signature: async fn module_cache_json_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: TestContext::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: 3
    functionLinenumber: 335
    functionLinenumberEnd: 351
    functionName: cache_is_not_target_type_dependent
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - get
    - set
    - supports_resp3
    - assert_hit
    - TestContext::async_connection_with_cache
    - unwrap
    - TestContext::new
    - assert_miss
    linkageType: ''
    returnType: void
    signature: async fn 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: TestContext::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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::Cmd::arg
    - '&mut Cmd::cmd'
    - cmd
    - supports_resp3
    - '&mut Cmd::query_async'
    - query_async
    - arg
    - redis::Pipeline::cmd
    - get_pipe
    - assert_hit
    - TestContext::async_connection_with_cache
    - unwrap
    - '&mut Cmd::arg'
    - TestContext::new
    - assert_miss
    - ignore
    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: TestContext::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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: cache_basic_partial_opt_in
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::set_cache_config'
    - CacheConfig::new
    - supports_resp3
    - '&mut Cmd::query_async'
    - TestContext::async_connection_with_cache_config
    - query_async
    - Self::set_enable_cache
    - Self::set_mode
    - assert_hit
    - unwrap
    - redis::cmd
    - TestContext::new
    - assert_miss
    - '&mut Cmd::arg'
    - assert_invalidate
    - CommandCacheConfig::new
    linkageType: ''
    returnType: void
    signature: async fn 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: TestContext::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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:
    - cmd
    - supports_resp3
    - '&mut Cmd::query_async'
    - TestContext::async_connection_with_cache_config
    - arg
    - TestContext::new
    - ignore
    - redis::Cmd::arg
    - redis::Cmd::set_cache_config
    - query_async
    - '&mut Cmd::cmd'
    - Self::set_enable_cache
    - assert_hit
    - unwrap
    - '&mut Cmd::arg'
    - CommandCacheConfig::new
    - CacheConfig::new
    - redis::Pipeline::cmd
    - Cmd::arg
    - Self::set_mode
    - get_pipe
    - assert_miss
    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: TestContext::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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:
    - redis::Cmd::arg
    - CacheConfig::default
    - CacheConfig::new
    - supports_resp3
    - '&mut Cmd::query_async'
    - TestContext::async_connection_with_cache_config
    - query_async
    - arg
    - Self::set_mode
    - assert_hit
    - get_cmd
    - unwrap
    - '&mut Cmd::arg'
    - TestContext::new
    - assert_miss
    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: 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: 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: 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:622,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cache.rs:622,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cache.rs:623,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:626,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:626,1
    - Dst: redis_test::server::RedisServer::new_with_addr_and_modules
      Src: /src/redis-rs/redis/tests/test_cache.rs:629,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:632,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_cache.rs:632,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:639,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:640,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 1
    argNames:
    - test_with_optin
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 641
      start: 587
    functionDepth: 3
    functionLinenumber: 587
    functionLinenumberEnd: 641
    functionName: test_connection_manager_maintains_statistics_after_crashes
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - CacheConfig::default
    - supports_resp3
    - arg
    - is_ok
    - TestContext::new
    - clone
    - query_async
    - get_cmd
    - Self::set_max_delay
    - redis::cmd
    - client_addr
    - assert_hit
    - drop
    - unwrap
    - get_connection_manager_with_config
    - CacheConfig::new
    - redis::aio::ConnectionManagerConfig::new
    - redis_test::server::RedisServer::new_with_addr_and_modules
    - Self::set_cache_config
    - Self::set_mode
    - Duration::from_millis
    - assert_miss
    - send_packed_command
    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:646,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:647,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:647,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:649,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:653,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:654,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:654,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:654,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:654,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:660,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:661,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:663,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:663,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:663,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:663,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:670,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:671,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:673,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:675,1
    - Dst: redis::cluster_routing::RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cache.rs:676,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:673,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:684,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:686,1
    - Dst: redis::cluster_routing::RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cache.rs:687,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:694,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:694,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:694,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:694,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:701,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:702,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:703,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 704
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 704
    functionName: cache_async_cluster_reconnect_all_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestClusterContext::async_connection
    - CacheConfig::default
    - supports_resp3
    - '&mut Cmd::query_async'
    - cache_config
    - assert_hit
    - TestClusterContext::new_with_cluster_client_builder
    - unwrap
    - redis::cmd
    - redis::cluster_routing::RoutingInfo::MultiNode
    - assert_miss
    - assert_invalidate
    - route_command
    linkageType: ''
    returnType: void
    signature: async fn 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:709,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:710,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:710,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:712,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:716,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cache.rs:718,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:718,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cache.rs:719,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:719,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:721,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:721,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:721,1
    - Dst: query_async
      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: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:727,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:728,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:731,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:731,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:731,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:731,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:731,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:731,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:738,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:739,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:745,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:745,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:745,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:745,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:750,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:751,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 752
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 752
    functionName: cache_async_cluster_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestClusterContext::async_connection
    - CacheConfig::default
    - supports_resp3
    - set
    - '&mut Cmd::query_async'
    - query_async
    - arg
    - cache_config
    - assert_hit
    - TestClusterContext::new_with_cluster_client_builder
    - unwrap
    - redis::cmd
    - '&mut Cmd::arg'
    - assert_miss
    linkageType: ''
    returnType: void
    signature: async fn cache_async_cluster_mget()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:757,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_cache.rs:758,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:761,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - atomic
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 763
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 763
    functionName: get_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 5
    functionsReached:
    - Pipeline::atomic
    - redis::pipe
    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:768,1
    - Dst: cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:769,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/test_cache.rs:769,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:771,1
    - Dst: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_cache.rs:777,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cache.rs:796,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:797,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:797,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:797,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:797,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:797,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:804,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:804,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:804,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:804,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:810,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:811,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:812,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:814,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:814,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:814,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:814,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:820,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:821,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:823,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:823,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:823,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:823,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cache.rs:829,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cache.rs:829,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/tests/test_cache.rs:831,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cache.rs:829,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cache.rs:833,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cache.rs:833,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:835,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:835,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:836,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:836,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/test_cache.rs:837,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:837,1
    - Dst: parse
      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: parse::<u16>
      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: to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:843,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cache.rs:844,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/tests/test_cache.rs:845,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:845,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cache.rs:829,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cache.rs:850,1
    - Dst: find
      Src: /src/redis-rs/redis/tests/test_cache.rs:850,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cache.rs:852,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:850,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cache.rs:854,1
    - Dst: find
      Src: /src/redis-rs/redis/tests/test_cache.rs:854,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cache.rs:856,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:854,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:859,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:860,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:860,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:860,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:860,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:860,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:860,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:866,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:859,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:871,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:872,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:872,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:872,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:872,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:872,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:872,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:878,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:871,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:884,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/tests/test_cache.rs:885,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:892,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:884,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:896,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:896,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:896,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:898,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:900,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:905,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:906,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:906,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:906,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:906,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:906,1
    - Dst: take
      Src: /src/redis-rs/redis/tests/test_cache.rs:906,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:912,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:905,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cache.rs:917,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:918,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:918,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:918,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:918,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:918,1
    - Dst: take
      Src: /src/redis-rs/redis/tests/test_cache.rs:918,1
    - Dst: get_singe_route
      Src: /src/redis-rs/redis/tests/test_cache.rs:924,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:917,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:929,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:930,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:930,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:930,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:930,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:941,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:944,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:945,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 279
    argCount: 1
    argNames:
    - migrate
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 946
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 946
    functionName: test_cache_async_cluster_slot_change
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - find
    - CacheConfig::default
    - supports_resp3
    - run_test_if_version_supported
    - '&mut Cmd::query_async'
    - arg
    - take
    - TestClusterContext::new_with_cluster_client_builder
    - assert_invalidate
    - parse::<u16>
    - route_command
    - redis::Cmd::arg
    - TestClusterContext::async_connection
    - map
    - futures_time::task::sleep
    - query_async
    - split
    - contains
    - cache_config
    - redis::cmd
    - to_owned
    - iter
    - assert_hit
    - '&mut Cmd::arg'
    - unwrap
    - into
    - to_string
    - parse
    - is_empty
    - collect
    - get_singe_route
    - Duration::from_millis
    - filter
    - split_once
    - assert_miss
    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:950,1
    - Dst: Cmd::set_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:952,1
    - Dst: CommandCacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:952,1
    - Dst: Self::set_enable_cache
      Src: /src/redis-rs/redis/tests/test_cache.rs:952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - name
    - enable_opt_in
    argTypes:
    - '&str'
    - bool
    constantsTouched: []
    func_position:
      end: 955
      start: 949
    functionDepth: 1
    functionLinenumber: 949
    functionLinenumberEnd: 955
    functionName: get_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 5
    functionsReached:
    - CommandCacheConfig::new
    - Self::set_enable_cache
    - Cmd::set_cache_config
    - redis::cmd
    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:959,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:960,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:964,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:965,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:964,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:968,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:968,1
    - Dst: '&mut Cmd::take'
      Src: /src/redis-rs/redis/tests/test_cache.rs:968,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:969,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:969,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:970,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:970,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:972,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:973,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 974
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 974
    functionName: test_readonly_commands_with_patterns_are_not_cached
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - CacheConfig::new
    - supports_resp3
    - '&mut Cmd::take'
    - assert_miss
    - TestContext::async_connection_with_cache_config
    - assert_hit
    - unwrap
    - redis::cmd
    - TestContext::new
    - Cmd::query_async
    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:978,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:979,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:983,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:984,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:983,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:987,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:987,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:987,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:987,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:987,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:993,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:993,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:993,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:993,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:999,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:999,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:999,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:999,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:1006,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:1007,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:1008,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:1010,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:1010,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cache.rs:1010,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:1010,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1010,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cache.rs:1016,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cache.rs:1016,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cache.rs:1016,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cache.rs:1018,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cache.rs:1018,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cache.rs:1018,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1018,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:1025,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:1026,1
    - Dst: assert_invalidate
      Src: /src/redis-rs/redis/tests/test_cache.rs:1027,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 977
    functionDepth: 2
    functionLinenumber: 977
    functionLinenumberEnd: 1028
    functionName: test_bitcount_is_handled_correctly
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - into
    - CacheConfig::new
    - supports_resp3
    - '&mut Cmd::query_async'
    - assert_miss
    - TestContext::async_connection_with_cache_config
    - query_async
    - futures_time::task::sleep
    - assert_hit
    - Duration::from_millis
    - unwrap
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    - assert_invalidate
    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:1032,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_cache.rs:1033,1
    - Dst: TestContext::async_connection_with_cache_config
      Src: /src/redis-rs/redis/tests/test_cache.rs:1036,1
    - Dst: CacheConfig::new
      Src: /src/redis-rs/redis/tests/test_cache.rs:1037,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1036,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cache.rs:1041,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cache.rs:1042,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:1043,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1043,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cache.rs:1045,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cache.rs:1045,1
    - Dst: assert_hit
      Src: /src/redis-rs/redis/tests/test_cache.rs:1047,1
    - Dst: assert_miss
      Src: /src/redis-rs/redis/tests/test_cache.rs:1048,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1049
      start: 1031
    functionDepth: 3
    functionLinenumber: 1031
    functionLinenumberEnd: 1049
    functionName: test_that_a_pipeline_with_all_commands_cached_does_not_hang
    functionSourceFile: /src/redis-rs/redis/tests/test_cache.rs
    functionUses: 0
    functionsReached:
    - get
    - CacheConfig::new
    - supports_resp3
    - TestContext::async_connection_with_cache_config
    - query_async
    - assert_hit
    - unwrap
    - TestContext::new
    - assert_miss
    - redis::pipe
    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
    - source
    - RedisError::from
    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:
    - unwrap
    - redis_value
    - parse_redis_value
    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:
    - clone
    - unwrap
    - parse_redis_value
    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:
    - '&str::to_string'
    - Value::SimpleString
    - parse_redis_value
    - String::clone
    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:
    - '&str::to_string'
    - Value::SimpleString
    - parse_redis_value
    - String::clone
    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:
    - '&str::to_string'
    - Value::SimpleString
    - parse_redis_value
    - String::clone
    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
    - parse_redis_value
    - Vec::from
    - Value::Array
    - Self::clone
    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
    - parse_redis_value
    - Vec::from
    - Value::Array
    - Self::clone
    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:
    - Value::BulkString
    - parse_redis_value
    - Vec::from
    - Value::Array
    - Self::clone
    - parse_redis_value::<Arc<[_]>>
    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:
    - Value::BulkString
    - parse_redis_value
    - '&str::into'
    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:
    - Value::BulkString
    - parse_redis_value
    - '&str::into'
    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:
    - Value::BulkString
    - parse_redis_value
    - '&str::into'
    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:
    - Value::BulkString
    - parse_redis_value
    - '&str::into'
    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:
    - clone
    - parse_redis_value::<Vec<(u8, u8)>>
    - unwrap_err
    - 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: PathBuf::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: PathBuf::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: PathBuf::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: PathBuf::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: PathBuf::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: PathBuf::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: 7
    functionLinenumber: 419
    functionLinenumberEnd: 463
    functionName: types::test_hashmap
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - '&str::into'
    - PathBuf::insert
    - HashMap::with_hasher
    - HashMap::new
    - Hasher::default
    - Value::Array
    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: PathBuf::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: PathBuf::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: PathBuf::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: PathBuf::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: PathBuf::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: PathBuf::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: 7
    functionLinenumber: 467
    functionLinenumberEnd: 506
    functionName: types::test_hashbrown_hashmap
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - '&str::into'
    - clone
    - PathBuf::insert
    - HashMap::with_hasher
    - HashMap::new
    - Hasher::default
    - Value::Array
    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: RedisServer::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: RedisServer::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: RedisServer::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: 7
    functionLinenumber: 510
    functionLinenumberEnd: 543
    functionName: types::test_hashbrown_hashset
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - insert
    - RedisServer::insert
    - HashSet::new
    - parse_redis_value
    - std::iter::Chain::collect
    - '&str::to_string'
    - Value::Int
    - to_redis_args
    - Value::Array
    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:
    - Value::BulkString
    - parse_redis_value
    - '&str::into'
    - redis_value
    - Value::Int
    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:
    - Value::BulkString
    - parse_redis_value
    - Bytes::from_static
    - redis_value
    - Vec::from
    - Value::Int
    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:
    - to_vec
    - Value::BulkString
    - FromRedisValue::from_redis_value_ref
    - Result::unwrap
    - as_bytes
    - redis_value
    - Value::Int
    - Uuid::from_str
    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:
    - Vec::from
    - Value::BulkString
    - redis_value
    - parse_redis_value
    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
    - Result::to_redis_args
    - "into_iter()\n            .collect::<BTreeMap<_, _>>"
    - 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:
    - TlsFilePaths::to_redis_args
    - '&str::to_string'
    - 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: 7
    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:
    - iter
    - Vec::new
    - map
    - Value::BulkString
    - clone
    - FromRedisValue::from_redis_value_ref
    - collect
    - io::Result::unwrap
    - Result::unwrap
    - enumerate
    - to_redis_args
    - Value::Array
    - Result::iter_mut
    - encode_value
    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: 7
    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:
    - iter
    - Vec::new
    - map
    - FromRedisValue::from_redis_value_ref
    - Result::unwrap
    - collect
    - io::Result::unwrap
    - enumerate
    - to_redis_args
    - Value::Int
    - Value::Array
    - Result::iter_mut
    - encode_value
    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: 7
    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:
    - iter
    - Vec::new
    - map
    - Value::BulkString
    - clone
    - FromRedisValue::from_redis_value_ref
    - collect
    - io::Result::unwrap
    - Result::unwrap
    - String::new
    - enumerate
    - to_redis_args
    - Value::Array
    - Result::iter_mut
    - encode_value
    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: 7
    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:
    - iter
    - Vec::new
    - Value::BulkString
    - map
    - clone
    - FromRedisValue::from_redis_value_ref
    - collect
    - io::Result::unwrap
    - Result::unwrap
    - to_redis_args
    - Value::Array
    - encode_value
    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: 14
    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:
    - parse_redis_value
    - FromRedisValue::from_redis_value_ref
    - Result::unwrap
    - redis::FromRedisValue::from_redis_value_ref
    - 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:
    - unwrap
    - redis_value
    - parse_redis_value
    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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: 7
    functionLinenumber: 910
    functionLinenumberEnd: 947
    functionName: types::test_complex_nested_tuples
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - RedisServer::insert
    - parse_redis_value
    - redis_value
    - '&str::to_string'
    - HashMap::new
    - unwrap
    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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: 7
    functionLinenumber: 950
    functionLinenumberEnd: 985
    functionName: types::test_complex_nested_tuples_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_types.rs
    functionUses: 0
    functionsReached:
    - RedisServer::insert
    - HashSet::new
    - parse_redis_value
    - redis_value
    - '&str::to_string'
    - HashMap::new
    - unwrap
    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:27,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:27,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:27,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:27,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:27,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:32,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:32,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:32,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 1
    argNames:
    - con
    argTypes:
    - ClusterConnection
    constantsTouched: []
    func_position:
      end: 43
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 43
    functionName: cluster::smoke_test_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::exec'
    - redis::cmd
    - RedisResult::unwrap
    - '&mut Cmd::arg'
    - exec
    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:47,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:48,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: cluster::test_cluster_basics
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - smoke_test_connection
    - Result::connection
    linkageType: ''
    returnType: void
    signature: fn test_cluster_basics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster.rs:56,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:61,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 67
      start: 53
    functionDepth: 8
    functionLinenumber: 53
    functionLinenumberEnd: 67
    functionName: cluster::test_default_reject_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_config
    - ClusterType::get_intended
    - Default::default
    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:74,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:79,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:83,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/tests/test_cluster.rs:85,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:88,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 89
      start: 71
    functionDepth: 8
    functionLinenumber: 71
    functionLinenumberEnd: 89
    functionName: cluster::test_danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterType::get_intended
    - danger_accept_invalid_hostnames
    - Default::default
    - smoke_test_connection
    - Result::connection
    - TestClusterContext::new_with_config_and_builder
    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:93,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:94,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:95,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:94,1
    - Dst: RedisCluster::password
      Src: /src/redis-rs/redis/tests/test_cluster.rs:96,1
    - Dst: Result::disable_default_user
      Src: /src/redis-rs/redis/tests/test_cluster.rs:98,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:100,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: cluster::test_cluster_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisCluster::password
    - Result::disable_default_user
    - username
    - RedisCluster::username
    - smoke_test_connection
    - '&''static str::password'
    - TestClusterContext::new_with_cluster_client_builder
    - Result::connection
    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:105,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:106,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster.rs:107,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: cluster::test_cluster_with_bad_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - RedisCluster::username
    - '&''static str::password'
    - username
    - TestClusterContext::new_with_cluster_client_builder
    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:115,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:116,1
    - Dst: read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:117,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:119,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:122,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:122,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:122,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:122,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:122,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:127,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:127,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:127,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 139
      start: 114
    functionDepth: 9
    functionLinenumber: 114
    functionLinenumberEnd: 139
    functionName: cluster::test_cluster_read_from_replicas
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::exec'
    - RedisClusterConfiguration::single_replica_config
    - read_routing_strategy
    - Result::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - RedisResult::unwrap
    - exec
    - TestClusterContext::new_with_config_and_builder
    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:143,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:144,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:146,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:146,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:146,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:146,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:146,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_cluster.rs:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 160
    functionName: cluster::test_cluster_eval
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - arg
    - TestClusterContext::new
    - Result::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - query
    linkageType: ''
    returnType: void
    signature: fn test_cluster_eval()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster.rs:164,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster.rs:164,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:167,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:169,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:171,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:171,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:172,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:172,1
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_cluster.rs:173,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 176
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 176
    functionName: cluster::test_cluster_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - TestClusterContext::new
    - bool::hgetall
    - unwrap
    - Result::connection
    - bool::hset
    - ProtocolVersion::supports_resp3
    linkageType: ''
    returnType: void
    signature: fn test_cluster_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:180,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:182,1
    - Dst: bool::mset
      Src: /src/redis-rs/redis/tests/test_cluster.rs:184,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:184,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_cluster.rs:188,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 190
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 190
    functionName: cluster::test_cluster_multi_shard_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - bool::mget
    - TestClusterContext::new
    - unwrap
    - Result::connection
    - 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:195,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:196,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:198,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_cluster.rs:206,1
    - Dst: key
      Src: /src/redis-rs/redis/tests/test_cluster.rs:206,1
    - Dst: invoke
      Src: /src/redis-rs/redis/tests/test_cluster.rs:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 208
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 208
    functionName: cluster::test_cluster_script
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - invoke
    - TestClusterContext::new
    - key
    - Result::connection
    - redis::Script::new
    linkageType: ''
    returnType: void
    signature: fn test_cluster_script()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:212,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:213,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:214,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:216,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:216,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:216,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:216,1
    - Dst: "cmd(\"SET\")\n            .arg(\"key_1\")\n            .arg(42)\n    \
        \        .query::<Vec<String>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:216,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 224
    functionName: cluster::test_cluster_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterPipeline::cmd
    - redis::Cmd::arg
    - Result::wait_for_cluster_up
    - cluster_pipe
    - TestClusterContext::new
    - '&mut Cmd::arg'
    - Result::connection
    - unwrap
    - "cmd(\"SET\")\n            .arg(\"key_1\")\n            .arg(42)\n         \
      \   .query::<Vec<String>>"
    linkageType: ''
    returnType: void
    signature: fn test_cluster_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:229,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:230,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:231,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,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:233,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:233,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:247,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:247,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:247,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:247,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:247,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:247,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:247,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:247,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster.rs:256,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:256,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster.rs:259,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 261
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 261
    functionName: cluster::test_cluster_pipeline_multiple_keys
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterPipeline::cmd
    - redis::Cmd::arg
    - cmd
    - FromRedisValue::from_redis_value_ref
    - Result::unwrap
    - Result::wait_for_cluster_up
    - cluster_pipe
    - arg
    - TestClusterContext::new
    - Cmd::arg
    - '&mut Cmd::arg'
    - Result::connection
    - unwrap
    - "cmd(\"HGET\")\n            .arg(\"hash_1\")\n            .arg(\"key_1\")\n\
      \            .cmd(\"ZCARD\")\n            .arg(\"zset\")\n            .query::<Vec<redis::Value>>"
    - "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>>"
    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:265,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:266,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:267,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: ClusterPipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:269,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:283,1
    - Dst: ClusterPipeline::keys
      Src: /src/redis-rs/redis/tests/test_cluster.rs:283,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:283,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 289
    functionName: cluster::test_cluster_pipeline_invalid_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - ClusterPipeline::cmd
    - redis::Cmd::arg
    - ClusterPipeline::keys
    - cmd
    - Result::wait_for_cluster_up
    - cluster_pipe
    - unwrap_err
    - TestClusterContext::new
    - RedisResult::unwrap_err
    - '&mut Cmd::arg'
    - Result::connection
    - exec
    - ignore
    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:293,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:294,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:295,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:296,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:298,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:299,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:301,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:302,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster.rs:303,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:303,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:305,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:305,1
    - Dst: Pipeline::clear
      Src: /src/redis-rs/redis/tests/test_cluster.rs:307,1
    - Dst: Pipeline::get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:309,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:312,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 292
    functionDepth: 7
    functionLinenumber: 292
    functionLinenumberEnd: 314
    functionName: cluster::test_cluster_pipeline_command_ordering
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Result::wait_for_cluster_up
    - cluster_pipe
    - Pipeline::get
    - TestClusterContext::new
    - query::<Vec<String>>
    - Pipeline::set
    - RedisServer::push
    - RedisResult::unwrap
    - Result::connection
    - Pipeline::exec
    - Pipeline::clear
    - unwrap
    - ignore
    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:319,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/test_cluster.rs:320,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:321,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:322,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:324,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:325,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:328,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:328,1
    - Dst: '&mut Cmd::ignore'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:328,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster.rs:332,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster.rs:332,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:333,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:334,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:337,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:337,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_cluster.rs:339,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster.rs:339,1
    - Dst: Pipeline::clear
      Src: /src/redis-rs/redis/tests/test_cluster.rs:341,1
    - Dst: Pipeline::get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:343,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:346,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 318
    functionDepth: 7
    functionLinenumber: 318
    functionLinenumberEnd: 348
    functionName: cluster::test_cluster_pipeline_ordering_with_improper_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - cluster_pipe
    - Pipeline::clear
    - ignore
    - redis::Cmd::arg
    - TestClusterContext::new
    - Pipeline::set
    - RedisResult::unwrap_err
    - '&mut Cmd::ignore'
    - Pipeline::exec
    - Vec::new
    - Result::wait_for_cluster_up
    - unwrap
    - std::thread::sleep
    - std::time::Duration::from_secs
    - Pipeline::get
    - Pipeline::cmd
    - query::<Vec<String>>
    - RedisServer::push
    - Result::connection
    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:355,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster.rs:356,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:357,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:357,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:357,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:358,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:358,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:359,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:359,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:359,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:361,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:361,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:365,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:365,1
    - Dst: arg("test").query::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:365,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 368
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 368
    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:
    - cmd
    - Ok
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - Err
    - is_connection_check
    - contains_slice
    - arg("test").query::<Value>
    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:375,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster.rs:376,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:377,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:377,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:377,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:378,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:378,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:379,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:379,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:379,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:384,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:384,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:388,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:388,1
    - Dst: arg("test").query::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:388,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 390
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 390
    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:
    - cmd
    - Ok
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - Err
    - is_connection_check
    - contains_slice
    - arg("test").query::<Value>
    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:396,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:401,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:402,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:402,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:405,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:407,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:408,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:408,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:409,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:409,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:409,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:414,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:414,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 417
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 417
    functionName: cluster::test_cluster_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - cmd
    - MockEnv::with_client_builder
    - parse_redis_value
    - Ok
    - arg("test").query::<Option<i32>>
    - redis_value
    - atomic::AtomicUsize::new
    - Cmd::arg
    - fetch_add
    - Err
    - respond_startup
    - ClusterClientBuilder::retries
    - ClusterClient::builder
    linkageType: ''
    returnType: void
    signature: fn test_cluster_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:423,1
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:423,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:429,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:430,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:430,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:433,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:435,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:436,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:437,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:437,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:442,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:442,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:442,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 420
    functionDepth: 7
    functionLinenumber: 420
    functionLinenumberEnd: 449
    functionName: cluster::test_cluster_exhaust_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - cmd
    - MockEnv::with_client_builder
    - respond_startup
    - parse_redis_value
    - clone
    - arg("test").query::<Option<i32>>
    - Arc::new
    - atomic::AtomicUsize::new
    - Cmd::arg
    - Err
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - fetch_add
    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:455,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:456,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:461,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster.rs:462,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:463,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster.rs:465,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster.rs:467,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:468,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:468,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:468,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:471,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:475,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:475,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:477,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:477,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:477,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:484,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:484,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:484,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:489,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:489,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:489,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 492
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 492
    functionName: cluster::test_cluster_move_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - cmd
    - Ok
    - parse_redis_value
    - MockEnv::new
    - arg("test").query::<Option<i32>>
    - redis_value
    - atomic::AtomicUsize::new
    - atomic::AtomicBool::new
    - Cmd::arg
    - RedisServer::load
    - RedisServer::store
    - is_connection_check
    - Err
    - respond_startup
    - fetch_add
    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:497,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:497,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:502,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:503,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:507,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:510,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:513,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:513,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:521,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:521,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:525,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:525,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:525,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:535,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:535,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:535,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 538
      start: 495
    functionDepth: 7
    functionLinenumber: 495
    functionLinenumberEnd: 538
    functionName: cluster::test_cluster_ask_redirect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - cmd
    - MockEnv::with_client_builder
    - parse_redis_value
    - Ok
    - arg("test").query::<Option<i32>>
    - Arc::new
    - redis_value
    - Cmd::arg
    - Err
    - ClusterClient::builder
    - RedisServer::fetch_add
    - respond_startup_two_nodes
    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:544,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:545,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:551,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster.rs:552,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster.rs:553,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster.rs:555,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster.rs:557,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:558,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:558,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:558,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:561,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:565,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:565,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:566,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:571,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:571,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: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:576,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:584,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:584,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:584,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 587
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 587
    functionName: cluster::test_cluster_ask_error_when_new_node_is_added
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - cmd
    - Ok
    - parse_redis_value
    - MockEnv::new
    - as_bytes
    - arg("test").query::<Option<i32>>
    - redis_value
    - atomic::AtomicUsize::new
    - atomic::AtomicBool::new
    - Cmd::arg
    - RedisServer::load
    - RedisServer::store
    - is_connection_check
    - Err
    - respond_startup
    - fetch_add
    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:598,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:599,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:599,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:599,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster.rs:604,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:607,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:607,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:607,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:613,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:613,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:613,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:621,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:622,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:622,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:622,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster.rs:627,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:629,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:629,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:629,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:635,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:635,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:635,1
    - Dst: "arg(\"test\")\n            .arg(\"123\")\n            .query::<Option<Value>>"
      Src: /src/redis-rs/redis/tests/test_cluster.rs:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 640
      start: 590
    functionDepth: 1
    functionLinenumber: 590
    functionLinenumberEnd: 640
    functionName: cluster::test_cluster_random_replica_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - respond_startup_with_replica
    - MockEnv::with_client_builder
    - Ok
    - cmd
    - arg("test").query::<Option<i32>>
    - redis_value
    - ClusterClientBuilder::read_routing_strategy
    - Cmd::arg
    - Err
    - "arg(\"test\")\n            .arg(\"123\")\n            .query::<Option<Value>>"
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    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:645,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:645,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:645,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:646,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:668,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:669,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:669,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:669,1
    - Dst: RoundRobinReplicaStrategy::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:671,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:674,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:674,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:674,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster.rs:675,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:676,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:676,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:676,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:677,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:679,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:695,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:695,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:695,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:695,1
    - Dst: Vec::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:698,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:698,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:698,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 700
      start: 643
    functionDepth: 7
    functionLinenumber: 643
    functionLinenumberEnd: 700
    functionName: cluster::test_cluster_round_robin_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Some
    - Vec::clone
    - cmd
    - MockEnv::with_client_builder
    - Arc::new
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - push
    - clone
    - respond_startup_with_replica_using_config
    - Vec::new
    - contains_slice
    - '&mut Cmd::query'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - unwrap
    - Self::lock
    - std::sync::Mutex::new
    - Ok
    - Self::unwrap
    - redis_value
    - Vec::lock
    - Cmd::arg
    - RoundRobinReplicaStrategy::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:705,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:705,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:710,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:711,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:711,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:714,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:719,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:720,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:720,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:720,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:720,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:724,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:724,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:724,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:730,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:730,1
    - Dst: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:730,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 733
      start: 703
    functionDepth: 7
    functionLinenumber: 703
    functionLinenumberEnd: 733
    functionName: cluster::test_cluster_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - cmd
    - MockEnv::with_client_builder
    - Ok
    - arg("test").query::<Option<i32>>
    - Arc::new
    - redis_value
    - Cmd::arg
    - Err
    - RedisError::from
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - RedisServer::fetch_add
    - std::io::Error::new
    - respond_startup_two_nodes
    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:738,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:738,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:739,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:740,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster.rs:742,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster.rs:745,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:746,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:746,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster.rs:746,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster.rs:746,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: arg("test").query::<Option<i32>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 757
      start: 736
    functionDepth: 7
    functionLinenumber: 736
    functionLinenumberEnd: 757
    functionName: cluster::test_cluster_non_retryable_error_should_not_retry
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - into
    - AtomicI32::new
    - cmd
    - MockEnv::new
    - arg("test").query::<Option<i32>>
    - Arc::new
    - Cmd::arg
    - Err
    - Self::fetch_add
    - Self::clone
    - respond_startup_two_nodes
    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:765,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:765,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:765,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:766,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:767,1
    - Dst: RedisFuture::split_whitespace
      Src: /src/redis-rs/redis/tests/test_cluster.rs:768,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:769,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:771,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:777,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:778,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:778,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:778,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:783,1
    - Dst: Option<Vec<MockSlotRange>>::clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:786,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:789,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:789,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster.rs:789,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:790,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:790,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:790,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:792,1
    - Dst: query::<Option<()>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:796,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster.rs:797,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:797,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster.rs:797,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: 800
      start: 759
    functionDepth: 7
    functionLinenumber: 759
    functionLinenumberEnd: 800
    functionName: cluster::test_cluster_fan_out
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - MockEnv::with_client_builder
    - Arc::new
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - Cmd::get_packed_command
    - push
    - sort
    - Option<Vec<MockSlotRange>>::clone
    - respond_startup_with_replica_using_config
    - Vec::new
    - RedisServer::clone
    - redis::Cmd::new
    - RedisFuture::split_whitespace
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - RedisServer::lock
    - Self::lock
    - std::sync::Mutex::new
    - query::<Option<()>>
    - Ok
    - Self::unwrap
    - redis_value
    - Cmd::arg
    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:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 803
    functionDepth: 8
    functionLinenumber: 803
    functionLinenumberEnd: 810
    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:814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 820
      start: 813
    functionDepth: 8
    functionLinenumber: 813
    functionLinenumberEnd: 820
    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:824,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 841
      start: 823
    functionDepth: 8
    functionLinenumber: 823
    functionLinenumberEnd: 841
    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:
    - Some
    - test_cluster_fan_out
    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:845,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 872
      start: 844
    functionDepth: 8
    functionLinenumber: 844
    functionLinenumberEnd: 872
    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:
    - Some
    - test_cluster_fan_out
    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:877,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:878,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:878,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:878,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:883,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:884,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:884,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:884,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:889,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster.rs:890,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:890,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster.rs:891,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_cluster.rs:891,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster.rs:894,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:895,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:895,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster.rs:891,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:901,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:901,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster.rs:901,1
    - Dst: query::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:905,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 907
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 907
    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:
    - Some
    - cmd
    - MockEnv::with_client_builder
    - arg
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - filter_map
    - Value::Array
    - std::str::from_utf8
    - contains
    - respond_startup_with_replica_using_config
    - iter
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - unwrap
    - Ok
    - collect
    - redis_value
    - Cmd::arg
    - query::<Vec<String>>
    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:912,1
    - Dst: atomic
      Src: /src/redis-rs/redis/tests/test_cluster.rs:913,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:913,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:913,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_cluster.rs:914,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:920,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:921,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:921,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:921,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:926,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:928,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:928,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:928,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:930,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:930,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:930,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:930,1
    - Dst: bool::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_cluster.rs:937,1
    - Dst: RedisFuture::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 941
      start: 910
    functionDepth: 3
    functionLinenumber: 910
    functionLinenumberEnd: 941
    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:
    - get
    - respond_startup_with_replica_using_config
    - MockEnv::with_client_builder
    - Ok
    - atomic
    - '&mut Pipeline::set'
    - redis_value
    - get_packed_pipeline
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - RedisError::from
    - bool::req_packed_commands
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - RedisFuture::unwrap
    - std::io::Error::new
    - redis::pipe
    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:946,1
    - Dst: atomic
      Src: /src/redis-rs/redis/tests/test_cluster.rs:947,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:947,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster.rs:947,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_cluster.rs:948,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster.rs:949,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:950,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:956,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:957,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:957,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:957,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:962,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:964,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:964,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:964,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:966,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:966,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster.rs:966,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:966,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:973,1
    - Dst: RedisFuture::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:973,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 975
      start: 944
    functionDepth: 3
    functionLinenumber: 944
    functionLinenumberEnd: 975
    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:
    - get
    - respond_startup_with_replica_using_config
    - MockEnv::with_client_builder
    - Ok
    - clone
    - atomic
    - '&mut Pipeline::set'
    - bool::req_packed_command
    - redis_value
    - get_packed_pipeline
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - RedisError::from
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - RedisFuture::unwrap
    - std::io::Error::new
    - redis::pipe
    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:980,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:997,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster.rs:998,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:998,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster.rs:998,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1003,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1006,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1008,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1008,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1008,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1008,1
    - Dst: bool::req_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1012,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 978
    functionDepth: 2
    functionLinenumber: 978
    functionLinenumberEnd: 1014
    functionName: cluster::test_cluster_can_be_created_with_partial_slot_coverage
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - Some
    - respond_startup_with_replica_using_config
    - MockEnv::with_client_builder
    - Ok
    - '&str::into'
    - clone
    - Value::SimpleString
    - bool::req_command
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - redis::cmd
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    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:1019,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1019,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1021,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1022,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1024,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1025,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1026,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1030,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1030,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1017
    functionDepth: 3
    functionLinenumber: 1017
    functionLinenumberEnd: 1034
    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
    - Cmd::get_packed_command
    - cmd
    - bool::req_packed_command
    - drop
    - TestClusterContext::new_with_cluster_client_builder
    - RoutingInfo::SingleNode
    - Result::connection
    - retries
    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:1038,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1039,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1042,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1044,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1045,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1047,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1050,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1050,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1055,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1055,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1059,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1061,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1064,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1065,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1037
    functionDepth: 8
    functionLinenumber: 1037
    functionLinenumberEnd: 1068
    functionName: cluster::test_cluster_reconnect_after_complete_server_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - Cmd::get_packed_command
    - cmd
    - RedisCluster::new
    - Result::get_ports
    - Default::default
    - bool::req_packed_command
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - drop
    - RoutingInfo::SingleNode
    - Result::connection
    - retries
    - 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:1072,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1073,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1076,1
    - Dst: Result::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1078,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1079,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1082,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1084,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1087,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1089,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1092,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1094,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1071
    functionDepth: 8
    functionLinenumber: 1071
    functionLinenumberEnd: 1099
    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
    - Some
    - cmd
    - RedisCluster::new
    - Result::get_ports
    - Default::default
    - RoutingInfo::MultiNode
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - drop
    - RedisResult::unwrap
    - Result::connection
    - retries
    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:1103,1
    - Dst: TestClusterContext::connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1104,1
    - Dst: cluster_pipe
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1106,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1106,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1106,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1110,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1110,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1102
    functionDepth: 4
    functionLinenumber: 1102
    functionLinenumberEnd: 1115
    functionName: cluster::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - TestClusterContext::connection
    - redis::Cmd::new
    - cluster_pipe
    - 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:1124,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1126,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1126,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1127,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1127,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1129,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1129,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1129,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1129,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1129,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1134,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1134,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1134,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1123
    functionDepth: 2
    functionLinenumber: 1123
    functionLinenumberEnd: 1145
    functionName: cluster::test_cluster_basics_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::exec'
    - TestClusterContext::new_with_mtls
    - get_connection
    - support::mtls_test::create_cluster_client_from_cluster
    - Result::unwrap
    - RedisResult::unwrap
    - redis::cmd
    - '&mut Cmd::arg'
    - exec
    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:1149,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1151,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1151,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1152,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1154,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1154,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1154,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1154,1
    - Dst: bool::is_ok
      Src: /src/redis-rs/redis/tests/test_cluster.rs:1163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1177
      start: 1148
    functionDepth: 10
    functionLinenumber: 1148
    functionLinenumberEnd: 1177
    functionName: cluster::test_cluster_should_not_connect_without_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_mtls
    - get_connection
    - support::mtls_test::create_cluster_client_from_cluster
    - Result::unwrap
    - bool::is_ok
    - connection_info
    - unwrap
    - first
    - addr
    linkageType: ''
    returnType: void
    signature: fn test_cluster_should_not_connect_without_mtls()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_script.rs:12,1
    - Dst: TestContext::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 Cmd::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::arg
    - redis::Script::new
    - arg
    - invoke
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - key
    - exec
    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: TestContext::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
    - load
    - redis::Script::new
    - TestContext::connection
    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: TestContext::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:
    - prepare_invoke
    - redis::Script::new
    - ScriptInvocation::load
    - TestContext::connection
    - TestContext::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: TestContext::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::Pipeline::invoke_script
    - redis::Script::new
    - arg
    - TestContext::connection
    - TestContext::new
    - query
    - redis::pipe
    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: TestContext::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:
    - invoke_script
    - redis::Pipeline::load_script
    - redis::Script::new
    - arg
    - TestContext::connection
    - unwrap
    - TestContext::new
    - query
    - redis::pipe
    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: RedisServer::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: RedisServer::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: 7
    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:
    - block_on_all
    - AtomicBool::new
    - RedisServer::clone
    - futures_time::task::sleep
    - Arc::new
    - spawn
    - Self::store
    - RedisServer::load
    - futures_time::time::Duration::from_millis
    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 Cmd::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 Cmd::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 Cmd::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::args
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - exec_async
    - redis::cmd
    - unwrap
    - '&mut Cmd::arg'
    - '&mut Cmd::exec_async'
    linkageType: ''
    returnType: void
    signature: 'async fn 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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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::no_response_skips_response_even_on_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - arg
    - '&mut Cmd::exec_async'
    - '&mut Cmd::arg'
    - redis::cmd
    - unwrap
    - set_no_response
    linkageType: ''
    returnType: void
    signature: 'async fn 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 Cmd::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::arg
    - exec_async
    - redis::cmd
    - unwrap
    - '&mut Cmd::arg'
    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: 44
    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:
    - AsyncConnectionConfig::new
    - get_multiplexed_async_connection_with_config
    - get_connection_manager_with_config
    - ConnectionManagerConfig::new
    - tokio::time::pause
    - Self::set_connection_timeout
    - test
    - unwrap
    - TestContext::new
    - Self::set_response_timeout
    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: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:160,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:160,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:166,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:167,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:167,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:167,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:167,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:167,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:167,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:176,1
    - Dst: RedisConnectionInfo::set_username
      Src: /src/redis-rs/redis/tests/test_async.rs:176,1
    - Dst: Self::set_password
      Src: /src/redis-rs/redis/tests/test_async.rs:176,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:179,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:179,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:180,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:186,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:186,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:186,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 192
      start: 158
    functionDepth: 9
    functionLinenumber: 158
    functionLinenumberEnd: 192
    functionName: basic_async::can_authenticate_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - redis_settings
    - Self::arg
    - redis::Cmd::new
    - set_redis_settings
    - connection_info
    - '&mut Cmd::query_async'
    - arg
    - get_multiplexed_async_connection
    - redis::Client::open
    - TestContext::async_connection
    - RedisConnectionInfo::set_username
    - Cmd::arg
    - unwrap
    - RedisResult::unwrap
    - TestContext::new
    - Self::set_password
    linkageType: ''
    returnType: void
    signature: async fn can_authenticate_with_username_and_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_async.rs:203,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: basic_async::nice_hash_api
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - bool::hgetall
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'async fn nice_hash_api(mut connection: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:220,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:221,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:221,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:222,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:222,1
    - Dst: pop
      Src: /src/redis-rs/redis/tests/test_async.rs:224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 230
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 230
    functionName: basic_async::nice_hash_api_in_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - pop
    - Pipeline::cmd
    - unwrap
    - Pipeline::query_async
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: 'async fn 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:234,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:235,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:236,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:237,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/tests/test_async.rs:239,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:242,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:244,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:244,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:244,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:244,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:251,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:253,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:239,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 259
    functionName: basic_async::dont_panic_on_closed_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - cmd
    - map
    - clone
    - query_async
    - RedisResult::and_then
    - get_multiplexed_async_connection
    - drop
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn dont_panic_on_closed_multiplexed_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:263,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:264,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:275,1
    - Dst: RedisResult::map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:275,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 38
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 282
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 282
    functionName: basic_async::pipeline_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Pipeline::cmd'
    - redis::Cmd::arg
    - ignore
    - Pipeline::query_async
    - cmd
    - arg
    - '&mut Cmd::arg'
    - unwrap
    - Pipeline::atomic
    - redis::pipe
    - RedisResult::map_ok
    linkageType: ''
    returnType: void
    signature: 'async fn pipeline_transaction(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:288,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:289,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:300,1
    - Dst: impl AsyncCommands::get
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:301,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 303
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 303
    functionName: basic_async::client_tracking_doesnt_block_execution
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - cmd
    - redis::pipe
    - arg
    - impl AsyncCommands::get
    - Pipeline::cmd
    - '&mut Cmd::arg'
    - unwrap
    - Pipeline::query_async
    - ignore
    linkageType: ''
    returnType: void
    signature: 'async fn client_tracking_doesnt_block_execution(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:307,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:307,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:310,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:310,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:310,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:310,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:310,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:318,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:318,1
    - Dst: '&mut Pipeline::ping'
      Src: /src/redis-rs/redis/tests/test_async.rs:318,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:318,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:318,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:318,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:318,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:318,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:318,1
    - Dst: into_server_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:330,1
    - Dst: impl AsyncCommands::get
      Src: /src/redis-rs/redis/tests/test_async.rs:337,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 339
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 339
    functionName: basic_async::pipeline_transaction_with_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - redis::Pipeline::atomic
    - ignore
    - get
    - set
    - exec_async
    - '&mut Pipeline::ping'
    - Option::unwrap
    - unwrap_err
    - impl AsyncCommands::get
    - into_server_errors
    - redis::cmd
    - '&mut Cmd::arg'
    - unwrap
    - set::<_, _, ()>
    - "atomic()\n            .ping()\n            .set(\"x\", 142)\n            .ignore()\n\
      \            .get(\"x\")\n            .set(\"x\", 142)\n            .query_async::<()>"
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: 'async fn 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:344,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:345,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:345,1
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:346,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:346,1
    - Dst: json_set::<_, _, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:347,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:347,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:351,1
    - Dst: atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:352,1
    - Dst: '&mut Pipeline::ping'
      Src: /src/redis-rs/redis/tests/test_async.rs:352,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:352,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:352,1
    - Dst: json_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
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:352,1
    - Dst: json_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
    - Dst: json_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
    - Dst: json_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
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:352,1
    - Dst: ignore_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:376,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:376,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:376,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 391
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 391
    functionName: basic_async::module_json_and_pipeline_transaction_with_ignore_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get
    - ignore
    - set
    - json_set::<_, _, _, ()>
    - ignore_errors
    - atomic
    - query_async
    - '&mut Pipeline::ping'
    - TestContext::with_modules
    - TestContext::async_connection
    - unwrap
    - set::<_, _, ()>
    - redis::pipe
    - json_get
    linkageType: ''
    returnType: void
    signature: async fn module_json_and_pipeline_transaction_with_ignore_errors()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:395,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:395,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:397,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_async.rs:398,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:398,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:398,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:398,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:398,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:398,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:398,1
    - Dst: ignore_errors
      Src: /src/redis-rs/redis/tests/test_async.rs:407,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:407,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 420
      start: 394
    functionDepth: 3
    functionLinenumber: 394
    functionLinenumberEnd: 420
    functionName: basic_async::pipeline_with_ignore_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get
    - ignore
    - cmd
    - set
    - ignore_errors
    - query_async
    - arg
    - ping
    - unwrap
    - set::<_, _, ()>
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: 'async fn pipeline_with_ignore_errors(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:424,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_async.rs:425,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:425,1
    - Dst: hset
      Src: /src/redis-rs/redis/tests/test_async.rs:425,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:425,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:425,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:431,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:432,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_async.rs:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 437
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 437
    functionName: basic_async::pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get
    - to_string
    - redis::pipe
    - Pipeline::exec_async
    - unwrap_err
    - Pipeline::set
    - hset
    - ignore
    linkageType: ''
    returnType: void
    signature: 'async fn pipeline_returns_server_errors(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:440,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:443,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:445,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_async.rs:451,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:449,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:455,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:455,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:455,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:455,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:460,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:460,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:460,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/tests/test_async.rs:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 2
    argNames:
    - con
    - i
    argTypes:
    - impl AsyncCommands + Clone
    - i32
    constantsTouched: []
    func_position:
      end: 468
      start: 439
    functionDepth: 3
    functionLinenumber: 439
    functionLinenumberEnd: 468
    functionName: basic_async::test_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - as_bytes
    - clone
    - '&mut Cmd::query_async'
    - RedisResult::map
    - exec_async
    - '&mut Cmd::exec_async'
    - '&mut Cmd::arg'
    - redis::cmd
    - Self::clone
    - unwrap
    linkageType: ''
    returnType: impl Future
    signature: 'fn test_cmd(con: impl AsyncCommands + Clone, i: i32) -> impl Future<Output
      = ()> + Send'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:472,1
    - Dst: Pipeline::zrange
      Src: /src/redis-rs/redis/tests/test_async.rs:473,1
    - Dst: Pipeline::zrange
      Src: /src/redis-rs/redis/tests/test_async.rs:474,1
    - Dst: impl ConnectionLike::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_async.rs:475,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:475,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 479
      start: 471
    functionDepth: 3
    functionLinenumber: 471
    functionLinenumberEnd: 479
    functionName: basic_async::pipe_over_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - impl ConnectionLike::req_packed_commands
    - Pipeline::zrange
    - unwrap
    - pipe
    linkageType: ''
    returnType: void
    signature: 'async fn pipe_over_multiplexed_connection(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:483,1
    - Dst: test_cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:483,1
    - Dst: impl AsyncCommands + Clone::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:483,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/tests/test_async.rs:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands + Clone
    constantsTouched: []
    func_position:
      end: 485
      start: 482
    functionDepth: 3
    functionLinenumber: 482
    functionLinenumberEnd: 485
    functionName: basic_async::running_multiple_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - test_cmd
    - future::join_all
    - impl AsyncCommands + Clone::clone
    - map
    linkageType: ''
    returnType: void
    signature: 'async fn running_multiple_commands(con: impl AsyncCommands + Clone)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:489,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:490,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:495,1
    - Dst: Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:496,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:507,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/tests/test_async.rs:507,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/tests/test_async.rs:515,1
    - Dst: map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:515,1
    - Dst: map_err
      Src: /src/redis-rs/redis/tests/test_async.rs:515,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:515,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 57
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Clone
    constantsTouched: []
    func_position:
      end: 522
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 522
    functionName: basic_async::transaction_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - '&mut Pipeline::cmd'
    - redis::Cmd::arg
    - ignore
    - Pipeline::query_async
    - cmd
    - map
    - map_err
    - RedisResult::map
    - arg
    - '&mut Cmd::arg'
    - unwrap
    - Self::clone
    - Pipeline::atomic
    - redis::pipe
    - map_ok
    - future::try_join_all
    linkageType: ''
    returnType: void
    signature: 'async fn transaction_multiplexed_connection(con: impl ConnectionLike
      + Clone)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::collections::HashSet::new
      Src: /src/redis-rs/redis/tests/test_async.rs:526,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:529,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:529,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:529,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:529,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:529,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:535,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:538,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:538,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:538,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:538,1
    - Dst: Self::iter_async
      Src: /src/redis-rs/redis/tests/test_async.rs:538,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:538,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:546,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:547,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 41
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Send
    constantsTouched: []
    func_position:
      end: 554
      start: 525
    functionDepth: 2
    functionLinenumber: 525
    functionLinenumberEnd: 554
    functionName: basic_async::async_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - RedisServer::insert
    - '&mut Cmd::clone'
    - '&mut Cmd::cursor_arg'
    - exec_async
    - Self::iter_async
    - next_item
    - std::collections::HashSet::new
    - '&mut Cmd::arg'
    - redis::cmd
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'async fn 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:558,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:562,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:562,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:563,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:562,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:562,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:562,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:568,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:568,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:571,1
    - Dst: redis::Cmd::cursor_arg
      Src: /src/redis-rs/redis/tests/test_async.rs:571,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:571,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:571,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:571,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:571,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:571,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:571,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:571,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:582,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:583,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Send
    constantsTouched: []
    func_position:
      end: 590
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 590
    functionName: basic_async::async_scanning_iterative
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - redis::Cmd::cursor_arg
    - RedisServer::insert
    - "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\")\n  \
      \          .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n    \
      \        .iter_async::<String>"
    - clone
    - exec_async
    - arg
    - next_item
    - Option::unwrap
    - std::collections::HashSet::new
    - '&mut Cmd::arg'
    - redis::cmd
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'async fn 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:594,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:598,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:598,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:599,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:598,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:598,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:598,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_async.rs:604,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:604,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:607,1
    - Dst: redis::Cmd::cursor_arg
      Src: /src/redis-rs/redis/tests/test_async.rs:607,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:607,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:607,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:607,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:607,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:607,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:607,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:607,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:618,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:619,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike + Sync + Send
    constantsTouched: []
    func_position:
      end: 626
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 626
    functionName: basic_async::async_scanning_stream
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - redis::Cmd::cursor_arg
    - RedisServer::insert
    - "cursor_arg(0)\n            .arg(\"MATCH\")\n            .arg(\"key*\")\n  \
      \          .arg(\"COUNT\")\n            .arg(1)\n            .clone()\n    \
      \        .iter_async::<String>"
    - clone
    - exec_async
    - arg
    - next_item
    - Option::unwrap
    - std::collections::HashSet::new
    - '&mut Cmd::arg'
    - redis::cmd
    - unwrap
    linkageType: ''
    returnType: void
    signature: 'async fn 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:630,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:632,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:632,1
    - Dst: bool::set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:633,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:633,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:634,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:635,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:635,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_async.rs:635,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:636,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 639
      start: 629
    functionDepth: 4
    functionLinenumber: 629
    functionLinenumberEnd: 639
    functionName: basic_async::response_timeout_multiplexed_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - bool::set_response_timeout
    - redis::Cmd::new
    - bool::req_packed_command
    - arg
    - Cmd::arg
    - TestContext::async_connection
    - Duration::from_millis
    - unwrap
    - '&mut Cmd::arg'
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn response_timeout_multiplexed_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:646,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:647,1
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:648,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:649,1
    - Dst: ScriptInvocation::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:649,1
    - Dst: "key(\"key1\")\n            .arg(\"foo\")\n            .invoke_async::<()>"
      Src: /src/redis-rs/redis/tests/test_async.rs:649,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:649,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:655,1
    - Dst: ScriptInvocation::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:655,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:655,1
    - Dst: Script::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:657,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:657,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:659,1
    - Dst: ScriptInvocation::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:659,1
    - Dst: "key(\"key1\")\n            .arg(\"bar\")\n            .invoke_async::<()>"
      Src: /src/redis-rs/redis/tests/test_async.rs:659,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:659,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_async.rs:665,1
    - Dst: ScriptInvocation::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:665,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:665,1
    - Dst: Script::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
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 57
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 669
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 669
    functionName: basic_async::script
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - ScriptInvocation::arg
    - Script::invoke_async
    - ScriptInvocation::invoke_async
    - unwrap
    - Script::key
    - redis::Script::new
    - "key(\"key1\")\n            .arg(\"bar\")\n            .invoke_async::<()>"
    - "key(\"key1\")\n            .arg(\"foo\")\n            .invoke_async::<()>"
    linkageType: ''
    returnType: void
    signature: 'async fn script(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:674,1
    - Dst: prepare_invoke
      Src: /src/redis-rs/redis/tests/test_async.rs:676,1
    - Dst: ScriptInvocation::load_async
      Src: /src/redis-rs/redis/tests/test_async.rs:676,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:676,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 678
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 678
    functionName: basic_async::script_load
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Script::new
    - ScriptInvocation::load_async
    - unwrap
    - prepare_invoke
    linkageType: ''
    returnType: void
    signature: 'async fn script_load(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Script::new
      Src: /src/redis-rs/redis/tests/test_async.rs:683,1
    - Dst: Script::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:683,1
    - Dst: ScriptInvocation::invoke_async
      Src: /src/redis-rs/redis/tests/test_async.rs:683,1
    - Dst: RedisResult::map_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:683,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:683,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 693
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 693
    functionName: basic_async::script_returning_complex_type
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Script::arg
    - ScriptInvocation::invoke_async
    - unwrap
    - redis::Script::new
    - RedisResult::map_ok
    linkageType: ''
    returnType: void
    signature: 'async fn script_returning_complex_type(mut con: impl ConnectionLike)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:700,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:702,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:702,1
    - Dst: kill_client_async
      Src: /src/redis-rs/redis/tests/test_async.rs:703,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:703,1
    - Dst: get::<_, Option<String>>
      Src: /src/redis-rs/redis/tests/test_async.rs:709,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:711,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:711,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:711,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 716
    functionName: basic_async::io_error_on_kill_issue_320
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - into
    - get::<_, Option<String>>
    - sleep
    - TestContext::async_connection
    - Duration::from_millis
    - unwrap
    - TestContext::new
    - kill_client_async
    linkageType: ''
    returnType: void
    signature: async fn io_error_on_kill_issue_320()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:720,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:722,1
    - Dst: Self::set_password
      Src: /src/redis-rs/redis/tests/test_async.rs:722,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:723,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:723,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:723,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:723,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:723,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:731,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:731,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:733,1
    - Dst: err
      Src: /src/redis-rs/redis/tests/test_async.rs:733,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:733,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 743
      start: 719
    functionDepth: 8
    functionLinenumber: 719
    functionLinenumberEnd: 743
    functionName: basic_async::invalid_password_issue_343
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - client_addr
    - Self::set_password
    - into_connection_info
    - clone
    - set_redis_settings
    - err
    - get_multiplexed_async_connection
    - redis::Client::open
    - unwrap
    - RedisResult::unwrap
    - TestContext::new
    - RedisConnectionInfo::default
    linkageType: ''
    returnType: void
    signature: async fn invalid_password_issue_343()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl AsyncCommands::append
      Src: /src/redis-rs/redis/tests/test_async.rs:748,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:748,1
    - Dst: impl AsyncCommands::append
      Src: /src/redis-rs/redis/tests/test_async.rs:749,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:749,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_async.rs:752,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_async.rs:752,1
    - Dst: Self::with_pattern
      Src: /src/redis-rs/redis/tests/test_async.rs:752,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:753,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:753,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:754,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:754,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:756,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:754,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_async.rs:762,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:763,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:763,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:764,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:764,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:764,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 47
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 770
      start: 746
    functionDepth: 8
    functionLinenumber: 746
    functionLinenumberEnd: 770
    functionName: basic_async::scan_with_options_works
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::with_pattern
    - scan_options::<String>
    - timeout
    - impl AsyncCommands::append
    - Self::collect
    - ScanOptions::default
    - Self::with_count
    - unwrap
    - futures_time::time::Duration::from_millis
    linkageType: ''
    returnType: void
    signature: 'async fn 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:777,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:777,1
    - Dst: scan_match::<&str, String>
      Src: /src/redis-rs/redis/tests/test_async.rs:779,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:779,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_async.rs:781,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:780,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:784,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:780,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 787
      start: 775
    functionDepth: 7
    functionLinenumber: 775
    functionLinenumberEnd: 787
    functionName: basic_async::issue_stream_blocks
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - timeout
    - impl AsyncCommands::append
    - Self::collect
    - scan_match::<&str, String>
    - unwrap
    - futures_time::time::Duration::from_millis
    linkageType: ''
    returnType: void
    signature: 'async fn issue_stream_blocks(mut con: impl AsyncCommands)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:793,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:793,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_async.rs:794,1
    - Dst: impl AsyncCommands::set
      Src: /src/redis-rs/redis/tests/test_async.rs:796,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:796,1
    - Dst: impl AsyncCommands::scan
      Src: /src/redis-rs/redis/tests/test_async.rs:799,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:799,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:800,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:800,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_async.rs:801,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 804
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 804
    functionName: basic_async::issue_async_commands_scan_broken
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - map
    - collect
    - sort
    - impl AsyncCommands::scan
    - unwrap
    - impl AsyncCommands::set
    linkageType: ''
    returnType: void
    signature: 'async fn 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:813,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:815,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:815,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:816,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:816,1
    - Dst: on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:817,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:818,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:818,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:819,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:819,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:823,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:823,1
    - Dst: next
      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: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:827,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:827,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 831
      start: 812
    functionDepth: 1
    functionLinenumber: 812
    functionLinenumberEnd: 831
    functionName: basic_async::pub_sub_subscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - publish
    - subscribe
    - on_message
    - TestContext::async_connection
    - next
    - unwrap
    - TestContext::new
    - get_payload
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_subscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:835,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:837,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:837,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:838,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:838,1
    - Dst: on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:842,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:843,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:843,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:844,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:844,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:846,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:846,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:846,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:846,1
    - Dst: publish
      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: next
      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: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:850,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:850,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 852
      start: 834
    functionDepth: 1
    functionLinenumber: 834
    functionLinenumberEnd: 852
    functionName: basic_async::pub_sub_subscription_to_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - publish
    - subscribe
    - on_message
    - TestContext::async_connection
    - next
    - unwrap
    - TestContext::new
    - get_payload
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_subscription_to_multiple_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_async.rs:879,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_async.rs:879,1
    - Dst: impl AsyncCommands::set
      Src: /src/redis-rs/redis/tests/test_async.rs:884,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis/tests/test_async.rs:884,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:884,1
    - Dst: impl AsyncCommands::scan
      Src: /src/redis-rs/redis/tests/test_async.rs:888,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:888,1
    - Dst: next_item
      Src: /src/redis-rs/redis/tests/test_async.rs:893,1
    - Dst: is_some
      Src: /src/redis-rs/redis/tests/test_async.rs:899,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_async.rs:902,1
    - Dst: PathBuf::kind
      Src: /src/redis-rs/redis/tests/test_async.rs:902,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 58
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 912
      start: 857
    functionDepth: 3
    functionLinenumber: 857
    functionLinenumberEnd: 912
    functionName: basic_async::issue_async_commands_scan_finishing_prematurely
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Some
    - PathBuf::kind
    - map
    - collect
    - next_item
    - impl AsyncCommands::scan
    - unwrap
    - '&str::as_bytes'
    - is_some
    - impl AsyncCommands::set
    linkageType: ''
    returnType: void
    signature: 'async fn 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:918,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:920,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:920,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:921,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:921,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:922,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:922,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:924,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:924,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:925,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:925,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:925,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:925,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:925,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:931,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:931,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 933
      start: 915
    functionDepth: 3
    functionLinenumber: 915
    functionLinenumberEnd: 933
    functionName: basic_async::pub_sub_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - get
    - subscribe
    - query_async
    - TestContext::async_connection
    - unsubscribe
    - unwrap
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_unsubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:937,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:939,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:939,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:939,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:940,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:940,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:942,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:942,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:945,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:945,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:949,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:949,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:949,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:949,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 953
      start: 936
    functionDepth: 1
    functionLinenumber: 936
    functionLinenumberEnd: 953
    functionName: basic_async::can_receive_messages_while_sending_requests_from_split_pub_sub
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - publish
    - subscribe
    - split
    - TestContext::async_connection
    - next
    - unwrap
    - TestContext::new
    - get_payload
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn 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:957,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:959,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:959,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:959,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:960,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:960,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:962,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:962,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:967,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:967,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:970,1
    - Dst: ping
      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: ping
      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: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:978,1
    - Dst: ping_message
      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: ping_message
      Src: /src/redis-rs/redis/tests/test_async.rs:982,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:982,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:987,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:987,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:987,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:987,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:993,1
    - Dst: ping_message::<()>
      Src: /src/redis-rs/redis/tests/test_async.rs:994,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:994,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 996
      start: 956
    functionDepth: 3
    functionLinenumber: 956
    functionLinenumberEnd: 996
    functionName: basic_async::can_send_ping_on_split_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - publish
    - subscribe
    - supports_resp3
    - ping_message
    - split
    - unwrap_err
    - TestContext::async_connection
    - ping
    - ping_message::<()>
    - drop
    - next
    - unwrap
    - TestContext::new
    - get_payload
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn can_send_ping_on_split_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1000,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1002,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1002,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1002,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1003,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1003,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1005,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1005,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1006,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1009,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1009,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:1013,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1013,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1013,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1013,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 999
    functionDepth: 3
    functionLinenumber: 999
    functionLinenumberEnd: 1017
    functionName: basic_async::can_receive_messages_from_split_pub_sub_after_sink_was_dropped
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - publish
    - subscribe
    - split
    - TestContext::async_connection
    - drop
    - next
    - unwrap
    - TestContext::new
    - get_payload
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn 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:1021,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1023,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1023,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1024,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1024,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1026,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1026,1
    - Dst: into_on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1027,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1029,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_async.rs:1029,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1029,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1032,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1032,1
    - Dst: next
      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: get_payload
      Src: /src/redis-rs/redis/tests/test_async.rs:1036,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1036,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1040
    functionName: basic_async::can_receive_messages_from_split_pub_sub_after_into_on_message
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - into
    - publish
    - subscribe
    - sleep
    - Duration::from_secs
    - into_on_message
    - TestContext::async_connection
    - next
    - unwrap
    - TestContext::new
    - get_payload
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn 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:1044,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1046,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1046,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1046,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1047,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1050
    functionName: basic_async::cannot_subscribe_on_split_pub_sub_after_stream_was_dropped
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - split
    - drop
    - unwrap
    - TestContext::new
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn 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:1056,1
    - Dst: TestContext::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: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1059,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1059,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1060,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1062,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1062,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1066,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1066,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1066,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1066,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1066,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1072,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1072,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1077,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1077,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1077,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1053
    functionDepth: 3
    functionLinenumber: 1053
    functionLinenumberEnd: 1080
    functionName: basic_async::automatic_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - get
    - into
    - subscribe
    - sleep
    - query_async
    - TestContext::async_connection
    - Duration::from_millis
    - drop
    - unwrap
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn automatic_unsubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1086,1
    - Dst: TestContext::async_pubsub
      Src: /src/redis-rs/redis/tests/test_async.rs:1088,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1088,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_async.rs:1088,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1089,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1089,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1090,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1090,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1091,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1091,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1091,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1093,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1093,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1093,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1093,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1093,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1099,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1099,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1102,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1106,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1106,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1106,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1106,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1106,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1112,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1112,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1117,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1117,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1117,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1122,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1122,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1083
    functionDepth: 3
    functionLinenumber: 1083
    functionLinenumberEnd: 1124
    functionName: basic_async::automatic_unsubscription_on_split
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - into
    - get
    - subscribe
    - sleep
    - query_async
    - split
    - unwrap_err
    - TestContext::async_connection
    - Duration::from_millis
    - drop
    - unwrap
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    - TestContext::async_pubsub
    linkageType: ''
    returnType: void
    signature: async fn automatic_unsubscription_on_split()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lpush::<&str, &str, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:1128,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1128,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: redis::Pipeline::get
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: llen
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1130,1
    - Dst: RedisResult::lrange
      Src: /src/redis-rs/redis/tests/test_async.rs:1136,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 1139
      start: 1127
    functionDepth: 2
    functionLinenumber: 1127
    functionLinenumberEnd: 1139
    functionName: basic_async::pipe_errors_do_not_affect_subsequent_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Pipeline::get
    - llen
    - exec_async
    - RedisResult::lrange
    - unwrap_err
    - unwrap
    - lpush::<&str, &str, ()>
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: 'async fn 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:1143,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1144,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1148,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1149,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1149,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1150,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1150,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1155,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1155,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1156,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1156,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1158,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1158,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1161,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1161,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1163,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1163,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1165,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1165,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1167,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1167,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1169
    functionName: basic_async::multiplexed_pub_sub_subscribe_on_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_push_sender
    - get_multiplexed_async_connection_with_config
    - publish
    - redis::AsyncConnectionConfig::new
    - supports_resp3
    - recv
    - TestContext::async_connection
    - RedisResult::subscribe
    - tokio::sync::mpsc::unbounded_channel
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn multiplexed_pub_sub_subscribe_on_multiple_channels()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: lpush::<&str, &str, ()>
      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: RedisResult::req_packed_commands
      Src: /src/redis-rs/redis/tests/test_async.rs:1177,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1179,1
    - Dst: redis::Pipeline::get
      Src: /src/redis-rs/redis/tests/test_async.rs:1179,1
    - Dst: llen
      Src: /src/redis-rs/redis/tests/test_async.rs:1179,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl AsyncCommands
    constantsTouched: []
    func_position:
      end: 1190
      start: 1172
    functionDepth: 3
    functionLinenumber: 1172
    functionLinenumberEnd: 1190
    functionName: basic_async::non_transaction_errors_do_not_affect_other_results_in_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Pipeline::get
    - llen
    - RedisResult::req_packed_commands
    - unwrap
    - lpush::<&str, &str, ()>
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: 'async fn 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:1194,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1195,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1195,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1196,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1196,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1197,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1197,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1199,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1200,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1200,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1201,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1201,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/tests/test_async.rs:1206,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1207,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1207,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1207,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1208,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1208,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1211,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1211,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1213,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1214,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1213,1
    - Dst: recv
      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: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1232,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1233,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1232,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1236,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1236,1
    - Dst: RedisResult::unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1244,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1244,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:1245,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1245,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1247,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/tests/test_async.rs:1248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1247,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1252,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1252,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1252,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1193
    functionDepth: 8
    functionLinenumber: 1193
    functionLinenumberEnd: 1254
    functionName: basic_async::pub_sub_multiple
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Client::open
    - TestContext::new
    - '&str::clone'
    - '&str::to_string'
    - TestContext::async_connection
    - RedisResult::unwrap
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_protocol
    - RedisConnectionInfo::default
    - publish
    - recv
    - sleep
    - set_redis_settings
    - connection_info
    - RedisResult::unsubscribe
    - RedisResult::subscribe
    - unwrap
    - Self::set_push_sender
    - into
    - get_multiplexed_async_connection_with_config
    - redis::AsyncConnectionConfig::new
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_multiple()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1258,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1258,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1261,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1262,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1262,1
    - Dst: RedisResult::subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1270
      start: 1257
    functionDepth: 2
    functionLinenumber: 1257
    functionLinenumberEnd: 1270
    functionName: basic_async::pub_sub_requires_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - TestContext::async_connection
    - RedisResult::subscribe
    - unwrap
    - TestContext::new
    - ProtocolVersion::supports_resp3
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_requires_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1274,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1275,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1275,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1276,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1276,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1277,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1277,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1279,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1280,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1280,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1281,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1281,1
    - Dst: RedisResult::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1286,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1286,1
    - Dst: kill_client_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1288,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1273
    functionDepth: 8
    functionLinenumber: 1273
    functionLinenumberEnd: 1291
    functionName: basic_async::push_sender_send_on_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_push_sender
    - get_multiplexed_async_connection_with_config
    - redis::AsyncConnectionConfig::new
    - set_redis_settings
    - connection_info
    - redis::Client::open
    - RedisResult::set
    - Self::set_protocol
    - RedisResult::unwrap
    - TestContext::new
    - tokio::sync::mpsc::unbounded_channel
    - unwrap
    - kill_client_async
    - RedisConnectionInfo::default
    linkageType: ''
    returnType: void
    signature: async fn push_sender_send_on_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1296,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1297,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1300,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1302,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1303,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1303,1
    - Dst: Self::set_automatic_resubscription
      Src: /src/redis-rs/redis/tests/test_async.rs:1303,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1303,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1308,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1308,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1313,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1313,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1317,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1317,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_async.rs:1318,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1318,1
    - Dst: recv
      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: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1323,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1323,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1326,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1326,1
    - Dst: recv
      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: 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: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1336,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1336,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1337,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1340,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1340,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1340,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: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1343,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1345,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1345,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1348,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1348,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1356,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1356,1
    - Dst: Self::async_connection
      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: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1361,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1361,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1363,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1363,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_async.rs:1371,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1371,1
    - Dst: publish
      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: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1373,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1373,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 153
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1295
    functionDepth: 3
    functionLinenumber: 1295
    functionLinenumberEnd: 1386
    functionName: basic_async::manager_should_resubscribe_to_pubsub_channels_after_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - TestContext::new_with_addr
    - subscribe
    - supports_resp3
    - TestContext::new
    - clone
    - unsubscribe
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_max_delay
    - client_addr
    - publish
    - recv
    - sleep
    - drop
    - Self::set_automatic_resubscription
    - unwrap
    - psubscribe
    - get_connection_manager_with_config
    - Self::set_push_sender
    - into
    - Self::async_connection
    - redis::aio::ConnectionManagerConfig::new
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn manager_should_resubscribe_to_pubsub_channels_after_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_async.rs:1395,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_async.rs:1395,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_async.rs:1395,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1395,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1395,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1395,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1395,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1395,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:1395,1
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - conn
    argTypes:
    - impl ConnectionLike
    constantsTouched: []
    func_position:
      end: 1416
      start: 1390
    functionDepth: 2
    functionLinenumber: 1390
    functionLinenumberEnd: 1416
    functionName: basic_async::async_basic_pipe_with_parsing_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Pipeline::atomic
    - '&mut Pipeline::cmd'
    - redis::Cmd::arg
    - cmd
    - "atomic()\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\")\n   \
      \         .arg(0)\n            .cmd(\"EVALSHA\")\n            .arg(\"foobar\"\
      )\n            .arg(0)\n            .query_async::<((), ())>"
    - Cmd::arg
    - '&mut Cmd::arg'
    - expect_err
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: 'async fn 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:1421,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1422,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1422,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1422,1
    - Dst: tempfile::Builder::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1426,1
    - Dst: RedisResult::prefix
      Src: /src/redis-rs/redis/tests/test_async.rs:1426,1
    - Dst: tempdir
      Src: /src/redis-rs/redis/tests/test_async.rs:1426,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_async.rs:1426,1
    - Dst: redis_test::utils::build_keys_and_certs_for_tls
      Src: /src/redis-rs/redis/tests/test_async.rs:1430,1
    - Dst: TestContext::with_tls
      Src: /src/redis-rs/redis/tests/test_async.rs:1432,1
    - Dst: TlsFilePaths::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1432,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1435,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1436,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1437,1
    - Dst: redis::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1440,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1440,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1440,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1443,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1443,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1444,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1445,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1448,1
    - Dst: redis_test::server::RedisServer::new_with_addr_and_modules
      Src: /src/redis-rs/redis/tests/test_async.rs:1452,1
    - Dst: set::<_, _, Value>
      Src: /src/redis-rs/redis/tests/test_async.rs:1455,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1456,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1456,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1456,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1460,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1420
    functionDepth: 3
    functionLinenumber: 1420
    functionLinenumberEnd: 1466
    functionName: basic_async::connection_manager_reconnect_after_delay
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - set
    - supports_resp3
    - RedisResult::prefix
    - clone
    - redis::aio::ConnectionManager::new_with_config
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_max_delay
    - client_addr
    - Self::set_exponent_base
    - sleep
    - tempdir
    - drop
    - unwrap
    - TestContext::with_tls
    - Self::set_push_sender
    - into
    - redis::aio::ConnectionManagerConfig::new
    - TlsFilePaths::clone
    - redis_test::server::RedisServer::new_with_addr_and_modules
    - expect
    - Duration::from_millis
    - set::<_, _, Value>
    - redis_test::utils::build_keys_and_certs_for_tls
    - ProtocolVersion::supports_resp3
    - tempfile::Builder::new
    linkageType: ''
    returnType: void
    signature: async fn connection_manager_reconnect_after_delay()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1471,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1472,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1476,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1477,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1477,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1477,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1481,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1481,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1487,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1487,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1488,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1489,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1491,1
    - Dst: Duration::from_secs_f32
      Src: /src/redis-rs/redis/tests/test_async.rs:1491,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1494
      start: 1470
    functionDepth: 3
    functionLinenumber: 1470
    functionLinenumberEnd: 1494
    functionName: basic_async::manager_should_reconnect_without_actions_if_resp3_is_set
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - client_addr
    - into
    - Duration::from_secs_f32
    - TestContext::new_with_addr
    - supports_resp3
    - Self::set_exponent_base
    - redis::aio::ConnectionManagerConfig::new
    - clone
    - sleep
    - Duration::from_millis
    - drop
    - unwrap
    - Self::set_max_delay
    - TestContext::new
    - get_connection_manager_with_config
    linkageType: ''
    returnType: void
    signature: async fn 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:1499,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1500,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1500,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1501,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1501,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1502,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1502,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1507,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1508,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1507,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1511,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1511,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1511,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1511,1
    - Dst: RedisResult::lines
      Src: /src/redis-rs/redis/tests/test_async.rs:1517,1
    - Dst: lines().collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/test_async.rs:1517,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_async.rs:1517,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1520,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1521,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1520,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1524,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1524,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1524,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1524,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1498
    functionDepth: 8
    functionLinenumber: 1498
    functionLinenumberEnd: 1535
    functionName: basic_async::manager_should_completely_disconnect_when_drop
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - redis::aio::ConnectionManagerConfig::new
    - set_redis_settings
    - connection_info
    - '&mut Cmd::query_async'
    - len
    - redis::Client::open
    - Cmd::arg
    - lines().collect::<Vec<_>>
    - Self::set_protocol
    - RedisResult::unwrap
    - TestContext::new
    - unwrap
    - RedisResult::lines
    - RedisConnectionInfo::default
    - get_connection_manager_with_config
    linkageType: ''
    returnType: void
    signature: async fn manager_should_completely_disconnect_when_drop()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1541,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1542,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1546,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1548,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1549,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/tests/test_async.rs:1549,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1549,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1549,1
    - Dst: get_connection_manager_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1554,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1554,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1560,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1560,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1562,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1563,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1563,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1565,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1565,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1571,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1572,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1572,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1574,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1576,1
    - Dst: Duration::from_secs_f32
      Src: /src/redis-rs/redis/tests/test_async.rs:1576,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1539
    functionDepth: 3
    functionLinenumber: 1539
    functionLinenumberEnd: 1579
    functionName: basic_async::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:
    - Duration::from_secs_f32
    - TestContext::new_with_addr
    - supports_resp3
    - TestContext::new
    - clone
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_max_delay
    - ConnectionAddr::clone
    - client_addr
    - recv
    - Self::set_exponent_base
    - sleep
    - drop
    - unwrap
    - get_connection_manager_with_config
    - Self::set_push_sender
    - into
    - redis::aio::ConnectionManagerConfig::new
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn 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:1591,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1591,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1591,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1591,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1593,1
    - Dst: RedisResult::as_bytes
      Src: /src/redis-rs/redis/tests/test_async.rs:1593,1
    - Dst: windows
      Src: /src/redis-rs/redis/tests/test_async.rs:1593,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_async.rs:1593,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_async.rs:1593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut impl redis::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 1598
      start: 1589
    functionDepth: 1
    functionLinenumber: 1589
    functionLinenumberEnd: 1598
    functionName: b::a::s::i::c::_::a::s::y::n::c::::::::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:
    - windows
    - cmd
    - Ok
    - '&mut Cmd::query_async'
    - RedisResult::as_bytes
    - Cmd::arg
    - filter
    - unwrap
    - count
    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:1583,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1585,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1585,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1586,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1586,1
    - Dst: set_response_timeout
      Src: /src/redis-rs/redis/tests/test_async.rs:1587,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1587,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1602,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1602,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1602,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1602,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1608,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1611,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1613,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1613,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1613,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1582
    functionDepth: 3
    functionLinenumber: 1582
    functionLinenumberEnd: 1616
    functionName: basic_async::multiplexed_connection_kills_connection_on_drop_even_when_blocking
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - into
    - cmd
    - sleep
    - exec_async
    - unwrap_err
    - set_response_timeout
    - TestContext::async_connection
    - Duration::from_millis
    - Cmd::arg
    - drop
    - unwrap
    - '&mut Cmd::arg'
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn 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:1620,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1622,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1622,1
    - Dst: get_async_monitor
      Src: /src/redis-rs/redis/tests/test_async.rs:1623,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1623,1
    - Dst: into_on_message
      Src: /src/redis-rs/redis/tests/test_async.rs:1624,1
    - Dst: RedisResult::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1626,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1626,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_async.rs:1628,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1628,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1631,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1619
    functionDepth: 3
    functionLinenumber: 1619
    functionLinenumberEnd: 1634
    functionName: basic_async::monitor
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - into_on_message
    - TestContext::async_connection
    - drop
    - get_async_monitor
    - unwrap
    - next
    - TestContext::new
    - RedisResult::set
    linkageType: ''
    returnType: void
    signature: async fn monitor()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new_with_mtls
      Src: /src/redis-rs/redis/tests/test_async.rs:1644,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_async.rs:1647,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1647,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1647,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1649,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:1650,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1652,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1654,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1654,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1654,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1654,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1654,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1660,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1660,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 39
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 1665
      start: 1643
    functionDepth: 10
    functionLinenumber: 1643
    functionLinenumberEnd: 1665
    functionName: basic_async::test_should_connect_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - block_on_all
    - '&mut Cmd::query_async'
    - build_single_client
    - connection_info
    - exec_async
    - TestContext::new_with_mtls
    - get_multiplexed_async_connection
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - '&mut Cmd::arg'
    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:1671,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_async.rs:1674,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1674,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1674,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1676,1
    - Dst: block_on_all
      Src: /src/redis-rs/redis/tests/test_async.rs:1677,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1680,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1680,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1680,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1680,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1680,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1686,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1686,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1686,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1694,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1694,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1696,1
    - Dst: is_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1703,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 54
    argCount: 1
    argNames:
    - runtime
    argTypes:
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 1710
      start: 1670
    functionDepth: 10
    functionLinenumber: 1670
    functionLinenumberEnd: 1710
    functionName: basic_async::test_should_not_connect_if_tls_active
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - block_on_all
    - '&mut Cmd::query_async'
    - build_single_client
    - connection_info
    - exec_async
    - is_err
    - TestContext::new_with_mtls
    - get_multiplexed_async_connection
    - is_ok
    - RedisResult::unwrap
    - redis::cmd
    - '&mut Cmd::arg'
    - unwrap
    - addr
    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:1716,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_async.rs:1717,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_async.rs:1717,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1718,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1718,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1719,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1719,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1721,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1722,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1722,1
    - Dst: redis::aio::ConnectionManager::new_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1723,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1723,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:1726,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1727,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1727,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:1727,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1726,1
    - Dst: build_simple_pipeline_for_invalidation
      Src: /src/redis-rs/redis/tests/test_async.rs:1730,1
    - Dst: Pipeline::query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1731,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1732,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1732,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_async.rs:1733,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1733,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1738
      start: 1715
    functionDepth: 8
    functionLinenumber: 1715
    functionLinenumberEnd: 1738
    functionName: basic_async::resp3_pushes_connection_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - redis::Client::open
    - Pipeline::query_async
    - TestContext::new
    - try_recv
    - redis::aio::ConnectionManager::new_with_config
    - RedisResult::unwrap
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_protocol
    - RedisConnectionInfo::default
    - get
    - set_redis_settings
    - connection_info
    - unwrap
    - '&mut Cmd::arg'
    - Self::set_push_sender
    - redis::aio::ConnectionManagerConfig::new
    - build_simple_pipeline_for_invalidation
    - Cmd::arg
    - send_packed_command
    linkageType: ''
    returnType: void
    signature: async fn resp3_pushes_connection_manager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1742,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1743,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_async.rs:1743,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_async.rs:1744,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_async.rs:1744,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_async.rs:1745,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1745,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1747,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1747,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1749,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1749,1
    - Dst: '&mut Cmd::query_async'
      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: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1755
      start: 1741
    functionDepth: 9
    functionLinenumber: 1741
    functionLinenumberEnd: 1755
    functionName: basic_async::select_db
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - redis_settings
    - '&mut Cmd::query_async'
    - set_redis_settings
    - connection_info
    - get_multiplexed_async_connection
    - RedisConnectionInfo::set_db
    - redis::Client::open
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn select_db()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1759,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:1760,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:1764,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1765,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:1765,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_async.rs:1766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1766,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1771,1
    - Dst: TestContext::stop_server
      Src: /src/redis-rs/redis/tests/test_async.rs:1772,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1775,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1775,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1775,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1778
      start: 1758
    functionDepth: 3
    functionLinenumber: 1758
    functionLinenumberEnd: 1778
    functionName: basic_async::multiplexed_connection_send_single_disconnect_on_connection_failure
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_push_sender
    - into
    - get_multiplexed_async_connection_with_config
    - redis::AsyncConnectionConfig::new
    - supports_resp3
    - sleep
    - TestContext::stop_server
    - Duration::from_millis
    - drop
    - tokio::sync::mpsc::unbounded_channel
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn multiplexed_connection_send_single_disconnect_on_connection_failure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1782,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1783,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1783,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1785,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:1785,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1785,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1792,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_async.rs:1792,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1792,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1798
      start: 1781
    functionDepth: 4
    functionLinenumber: 1781
    functionLinenumberEnd: 1798
    functionName: basic_async::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::new
    - unwrap_err
    - TestContext::async_connection
    - query_async::<String>
    - redis::Pipeline::new
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn fail_on_empty_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:1806,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:1806,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_async.rs:1806,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1806,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl AsyncCommands'
    constantsTouched: []
    func_position:
      end: 1811
      start: 1805
    functionDepth: 1
    functionLinenumber: 1805
    functionLinenumberEnd: 1811
    functionName: basic_async::check_unwatched
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg
    - cmd
    - '&mut Cmd::query_async'
    - unwrap
    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:1815,1
    - Dst: impl AsyncCommands + Clone::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1816,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1819,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:1819,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1819,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:1819,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1819,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1819,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1819,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1815,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_async.rs:1833,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 30
    argCount: 1
    argNames:
    - con
    argTypes:
    - impl AsyncCommands + Clone
    constantsTouched: []
    func_position:
      end: 1834
      start: 1814
    functionDepth: 3
    functionLinenumber: 1814
    functionLinenumberEnd: 1834
    functionName: basic_async::simple_case_success
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get
    - redis::aio::transaction_async
    - set
    - query_async
    - Pipeline::set
    - impl AsyncCommands + Clone::clone
    - unwrap
    - check_unwatched
    - ignore
    linkageType: ''
    returnType: void
    signature: 'async fn simple_case_success(mut con: impl AsyncCommands + Clone)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1838,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1839,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1839,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1840,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1840,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1842,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1842,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1843,1
    - Dst: tokio::sync::Notify::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1843,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1844,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1845,1
    - Dst: tokio::sync::Notify::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1845,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1846,1
    - Dst: futures::future::join
      Src: /src/redis-rs/redis/tests/test_async.rs:1848,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1849,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1849,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1850,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1851,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1852,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_async.rs:1854,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_async.rs:1855,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_async.rs:1856,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_async.rs:1858,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_async.rs:1858,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1858,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1858,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_async.rs:1866,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1867,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1867,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_async.rs:1868,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_async.rs:1870,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_async.rs:1871,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1848,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_async.rs:1879,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1879,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1837
    functionDepth: 7
    functionLinenumber: 1837
    functionLinenumberEnd: 1880
    functionName: basic_async::transaction_should_retry_on_watch
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Self::notified
    - set
    - tokio::sync::Notify::new
    - Arc::new
    - TestContext::new
    - ignore
    - redis::aio::transaction_async
    - clone
    - query_async
    - TestContext::async_connection
    - Self::fetch_add
    - Pipeline::set
    - get
    - AtomicUsize::new
    - RedisServer::clone
    - unwrap
    - Self::notify_one
    - futures::future::join
    - check_unwatched
    - Self::clone
    linkageType: ''
    returnType: void
    signature: async fn transaction_should_retry_on_watch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1884,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1885,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1885,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1887,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1887,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_async.rs:1890,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1890,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1891,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_async.rs:1893,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1896,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_async.rs:1896,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1899,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1890,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_async.rs:1906,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1906,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1907
      start: 1883
    functionDepth: 7
    functionLinenumber: 1883
    functionLinenumberEnd: 1907
    functionName: basic_async::transaction_should_retry_on_none_from_closure
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - Some
    - redis::aio::transaction_async
    - AtomicUsize::new
    - Ok
    - clone
    - Self::clone
    - Arc::new
    - TestContext::async_connection
    - Self::fetch_add
    - unwrap
    - check_unwatched
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn transaction_should_retry_on_none_from_closure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1911,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_async.rs:1912,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1912,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1913,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1913,1
    - Dst: redis::aio::transaction_async::<_, _, (), _, _>
      Src: /src/redis-rs/redis/tests/test_async.rs:1915,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1916,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1919,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_async.rs:1921,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_async.rs:1924,1
    - Dst: redis::RedisError::from
      Src: /src/redis-rs/redis/tests/test_async.rs:1924,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1931,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_async.rs:1915,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_async.rs:1943,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1943,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1910
    functionDepth: 7
    functionLinenumber: 1910
    functionLinenumberEnd: 1944
    functionName: basic_async::transaction_abort_if_internal_function_returns_error
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - AtomicUsize::new
    - redis::RedisError::from
    - Ok
    - clone
    - redis::aio::transaction_async::<_, _, (), _, _>
    - Self::clone
    - Arc::new
    - unwrap_err
    - TestContext::async_connection
    - Err
    - Self::fetch_add
    - unwrap
    - check_unwatched
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn transaction_abort_if_internal_function_returns_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1953,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1955,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/tests/test_async.rs:1955,1
    - Dst: Self::set_number_of_retries
      Src: /src/redis-rs/redis/tests/test_async.rs:1955,1
    - Dst: get_connection_manager_lazy
      Src: /src/redis-rs/redis/tests/test_async.rs:1959,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1959,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:1962,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1962,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1963,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1963,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1952
    functionDepth: 3
    functionLinenumber: 1952
    functionLinenumberEnd: 1965
    functionName: basic_async::lazy_connection_manager_can_be_created_synchronously
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get
    - Self::set_number_of_retries
    - set
    - redis::aio::ConnectionManagerConfig::new
    - Self::set_pipeline_buffer_size
    - unwrap
    - TestContext::new
    - get_connection_manager_lazy
    linkageType: ''
    returnType: void
    signature: async fn lazy_connection_manager_can_be_created_synchronously()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1969,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1971,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:1972,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/tests/test_async.rs:1972,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:1977,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1977,1
    - Dst: client_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1979,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:1979,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_async.rs:1980,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1982,1
    - Dst: TestContext::new_with_addr
      Src: /src/redis-rs/redis/tests/test_async.rs:1985,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_async.rs:1988,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_async.rs:1988,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_async.rs:1988,1
    - Dst: set::<_, _, ()>
      Src: /src/redis-rs/redis/tests/test_async.rs:1989,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/tests/test_async.rs:1989,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:1990,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:1990,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1996
      start: 1968
    functionDepth: 3
    functionLinenumber: 1968
    functionLinenumberEnd: 1996
    functionName: basic_async::lazy_connection_manager_reconnects_after_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - client_addr
    - get
    - into
    - TestContext::new_with_addr
    - set
    - sleep
    - redis::aio::ConnectionManagerConfig::new
    - clone
    - Duration::from_millis
    - drop
    - is_ok
    - unwrap
    - Self::set_max_delay
    - TestContext::new
    - set::<_, _, ()>
    - get_connection_manager_lazy
    linkageType: ''
    returnType: void
    signature: async fn lazy_connection_manager_reconnects_after_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:2000,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:2002,1
    - Dst: get_connection_manager_lazy
      Src: /src/redis-rs/redis/tests/test_async.rs:2003,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2003,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_async.rs:2004,1
    - Dst: Self::set
      Src: /src/redis-rs/redis/tests/test_async.rs:2007,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2007,1
    - Dst: manager::set
      Src: /src/redis-rs/redis/tests/test_async.rs:2008,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2008,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_async.rs:2010,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2010,1
    - Dst: manager::get
      Src: /src/redis-rs/redis/tests/test_async.rs:2011,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2011,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1999
    functionDepth: 3
    functionLinenumber: 1999
    functionLinenumberEnd: 2015
    functionName: basic_async::lazy_connection_manager_can_be_cloned_before_sending
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - manager::set
    - clone
    - redis::aio::ConnectionManagerConfig::new
    - Self::get
    - Self::set
    - unwrap
    - manager::get
    - TestContext::new
    - get_connection_manager_lazy
    linkageType: ''
    returnType: void
    signature: async fn lazy_connection_manager_can_be_cloned_before_sending()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_async.rs:2019,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_async.rs:2020,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_async.rs:2024,1
    - Dst: redis::aio::ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/tests/test_async.rs:2025,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_async.rs:2025,1
    - Dst: get_connection_manager_lazy
      Src: /src/redis-rs/redis/tests/test_async.rs:2027,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2027,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:2029,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2029,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/tests/test_async.rs:2031,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_async.rs:2032,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_async.rs:2032,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_async.rs:2032,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2031,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_async.rs:2036,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2036,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_async.rs:2037,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2037,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_async.rs:2039,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_async.rs:2039,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2018
    functionDepth: 3
    functionLinenumber: 2018
    functionLinenumberEnd: 2041
    functionName: basic_async::lazy_connection_manager_with_resp3_push
    functionSourceFile: /src/redis-rs/redis/tests/test_async.rs
    functionUses: 0
    functionsReached:
    - get
    - Self::set_push_sender
    - cmd
    - set
    - supports_resp3
    - recv
    - redis::aio::ConnectionManagerConfig::new
    - Cmd::arg
    - tokio::sync::mpsc::unbounded_channel
    - unwrap
    - TestContext::new
    - '&mut Cmd::arg'
    - send_packed_command
    - get_connection_manager_lazy
    linkageType: ''
    returnType: void
    signature: async fn 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: Self::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: 8
    functionLinenumber: 32
    functionLinenumberEnd: 94
    functionName: test_cmd_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::time
    - Self::with_justid
    - with_force
    - StreamReadOptions::default
    - Self::count
    - StreamClaimOptions::default
    - Self::idle
    - retry
    - Self::block
    - assert_args
    - Self::noack
    - Self::group
    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: TestContext::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::xlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:155,1
    - Dst: redis::Connection::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: redis::Connection::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: 7
    functionLinenumber: 97
    functionLinenumberEnd: 164
    functionName: test_assorted_1
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xread
    - get
    - redis::Connection::xadd_maxlen
    - insert
    - redis::Connection::xadd_map
    - redis::Connection::xlen
    - TestContext::connection
    - xadd
    - xadd_keyrange
    - StreamMaxlen::Equals
    - redis::Connection::xadd
    - unwrap
    - TestContext::new
    - BTreeMap::new
    - redis::Connection::xrange_all
    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: TestContext::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: redis::Connection::xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:180,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:188,1
    - Dst: redis::Connection::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: redis::Connection::xgroup_create
      Src: /src/redis-rs/redis/tests/test_streams.rs:197,1
    - Dst: redis::Connection::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:
    - redis::Connection::xinfo_groups
    - redis::Connection::xinfo_stream
    - TestContext::connection
    - xadd
    - redis::Connection::xgroup_create
    - unwrap
    - TestContext::new
    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: TestContext::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: redis::Connection::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: redis::Connection::xgroup_create
      Src: /src/redis-rs/redis/tests/test_streams.rs:225,1
    - Dst: redis::Connection::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: redis::Connection::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: redis::Connection::xgroup_createconsumer
      Src: /src/redis-rs/redis/tests/test_streams.rs:242,1
    - Dst: redis::Connection::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: redis::Connection::xgroup_createconsumer
      Src: /src/redis-rs/redis/tests/test_streams.rs:253,1
    - Dst: redis::Connection::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:
    - redis::Connection::xinfo_groups
    - redis::Connection::xinfo_consumers
    - redis::Connection::xinfo_stream
    - TestContext::connection
    - xadd
    - redis::Connection::xgroup_create
    - redis::Connection::xgroup_createconsumer
    - unwrap
    - TestContext::new
    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: TestContext::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: redis::Connection::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:284,1
    - Dst: redis::Connection::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: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:301,1
    - Dst: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:302,1
    - Dst: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::xack
      Src: /src/redis-rs/redis/tests/test_streams.rs:344,1
    - Dst: redis::Connection::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: redis::Connection::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: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:364,1
    - Dst: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:365,1
    - Dst: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: 150
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 406
      start: 265
    functionDepth: 8
    functionLinenumber: 265
    functionLinenumberEnd: 406
    functionName: test_assorted_2
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xack
    - redis::Connection::xinfo_groups
    - redis::Connection::xread_options
    - redis::Connection::xinfo_consumers
    - redis::Connection::xgroup_create_mkstream
    - redis::Connection::xpending_consumer_count
    - StreamReadOptions::default
    - TestContext::connection
    - xadd
    - redis::Connection::xpending
    - redis::Connection::xadd
    - assert_stream_pending_data
    - unwrap
    - TestContext::new
    - redis::Connection::xpending_count
    - Self::group
    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: TestContext::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: redis::Connection::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: redis::Connection::xlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:427,1
    - Dst: redis::Connection::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: 7
    functionLinenumber: 416
    functionLinenumberEnd: 434
    functionName: test_xadd_maxlen_map
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - insert
    - to_string
    - redis::Connection::xlen
    - TestContext::connection
    - StreamMaxlen::Equals
    - redis::Connection::xadd_maxlen_map
    - unwrap
    - TestContext::new
    - BTreeMap::new
    - redis::Connection::xrange_all
    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: 8
    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:
    - '&mut Connection::xadd_options'
    - StreamAddOptions::default
    - '&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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:439,1
    - Dst: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: 8
    functionLinenumber: 437
    functionLinenumberEnd: 509
    functionName: test_xadd_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - insert
    - redis::Connection::xinfo_stream
    - TestContext::connection
    - Self::trim
    - redis::Connection::xadd_options
    - Self::nomkstream
    - StreamTrimStrategy::minid
    - StreamTrimStrategy::maxlen
    - unwrap
    - StreamAddOptions::default
    - TestContext::new
    - BTreeMap::new
    - setup_stream
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:515,1
    - Dst: redis::Connection::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:516,1
    - Dst: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: 8
    functionLinenumber: 512
    functionLinenumberEnd: 546
    functionName: test_xread_options_deleted_pel_entry
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xadd_maxlen
    - redis::Connection::xread_options
    - redis::Connection::xgroup_create_mkstream
    - StreamReadOptions::default
    - TestContext::connection
    - StreamMaxlen::Equals
    - unwrap
    - TestContext::new
    - Self::group
    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: 8
    functionLinenumber: 548
    functionLinenumberEnd: 565
    functionName: create_group_add_and_read
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - '&mut Connection::xgroup_create_mkstream'
    - '&mut Connection::flushall'
    - '&mut Connection::xread_options'
    - StreamReadOptions::default
    - xadd_keyrange
    - unwrap
    - Self::group
    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: TestContext::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: redis::Connection::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: redis::Connection::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: Self::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: 9
    functionLinenumber: 568
    functionLinenumberEnd: 630
    functionName: test_xautoclaim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamAutoClaimOptions::default
    - Self::with_justid
    - clone
    - redis::Connection::xautoclaim_options
    - Self::count
    - TestContext::connection
    - create_group_add_and_read
    - Duration::from_millis
    - unwrap
    - TestContext::new
    - std::thread::sleep
    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: TestContext::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: 9
    functionLinenumber: 633
    functionLinenumberEnd: 718
    functionName: test_xclaim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - slice::from_ref
    - redis::Connection::xclaim
    - redis::Connection::xclaim_options
    - Self::with_justid
    - TestContext::connection
    - create_group_add_and_read
    - StreamClaimOptions::default
    - Duration::from_millis
    - redis::Connection::xpending
    - Self::with_force
    - unwrap
    - TestContext::new
    - "keys[0]\n        .ids\n        .iter()\n        .map(|msg| &msg.id)\n     \
      \   .collect::<Vec<&String>>"
    - std::thread::sleep
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:723,1
    - Dst: redis::Connection::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: redis::Connection::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: redis::Connection::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: Self::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: redis::Connection::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: 8
    functionLinenumber: 721
    functionLinenumberEnd: 793
    functionName: test_xclaim_last_id
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xread_options
    - redis::Connection::xinfo_groups
    - redis::Connection::xgroup_create_mkstream
    - redis::Connection::xclaim_options
    - slice::from_ref
    - Self::with_justid
    - Self::with_lastid
    - as_str
    - StreamReadOptions::default
    - Self::count
    - xadd_keyrange
    - TestContext::connection
    - StreamClaimOptions::default
    - Duration::from_millis
    - unwrap
    - TestContext::new
    - std::thread::sleep
    - Self::group
    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:797,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:798,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:810,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:813,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:817,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:817,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:817,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:813,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:813,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:825,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:825,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:825,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:825,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:828,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:828,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:837,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:837,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:840,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:844,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:844,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:844,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:844,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:840,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:850,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:865,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:865,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:868,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:865,1
    - Dst: xpending_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:875,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:875,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 894
      start: 796
    functionDepth: 8
    functionLinenumber: 796
    functionLinenumberEnd: 894
    functionName: test_xreadgroup_with_claim_option
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xread_options
    - iter
    - map
    - run_test_if_version_supported
    - clone
    - collect
    - StreamReadOptions::default
    - xadd_keyrange
    - xpending
    - Duration::from_millis
    - unwrap
    - claim
    - xpending_count
    - count
    - Self::group
    - std::thread::sleep
    - connection
    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: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:911,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:914,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:918,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:918,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:918,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:914,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:914,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:925,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:925,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:928,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_streams.rs:925,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:932,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:932,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:935,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:938,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:942,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:942,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:942,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:942,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:938,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:948,1
    - Dst: xpending_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:976,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:976,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:995,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:995,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:998,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1002,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1002,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1002,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:998,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1007,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 143
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 897
    functionDepth: 8
    functionLinenumber: 897
    functionLinenumberEnd: 1025
    functionName: test_xreadgroup_claim_with_idle_and_incoming_messages
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xread_options
    - iter
    - map
    - run_test_if_version_supported
    - clone
    - collect
    - StreamReadOptions::default
    - xadd_keyrange
    - Duration::from_millis
    - unwrap
    - claim
    - xpending_count
    - count
    - Self::group
    - std::thread::sleep
    - connection
    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:1029,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1030,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:1046,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1050,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1054,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1054,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1054,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1050,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1059,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:1063,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:1063,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1066,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1070,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1070,1
    - Dst: claim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1070,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1066,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1075,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1090,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1090,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1096,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1096,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1028
    functionDepth: 8
    functionLinenumber: 1028
    functionLinenumberEnd: 1100
    functionName: test_xreadgroup_claim_multiple_streams
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xread_options
    - run_test_if_version_supported
    - StreamReadOptions::default
    - xadd_keyrange
    - Duration::from_millis
    - xpending_consumer_count
    - unwrap
    - claim
    - count
    - Self::group
    - std::thread::sleep
    - connection
    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:1106,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1107,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1110,1
    - Dst: redis::Connection::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:1113,1
    - Dst: redis::Connection::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1120
    functionName: test_xdel
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - xadd
    - redis::Connection::xdel
    - TestContext::connection
    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:1124,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1125,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1126,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1126,1
    - Dst: try_into
      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: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1140,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1140,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1140,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1140,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1143,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1143,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1146,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1150,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1150,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1150,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1152,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1146,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1155,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1155,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1161,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1166,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1166,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:1167,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1169,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1166,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1161,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1161,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1179,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1179,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1184,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1184,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1187,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1193,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1123
    functionDepth: 8
    functionLinenumber: 1123
    functionLinenumberEnd: 1205
    functionName: test_xadd_options_deletion_policy_keepref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - StreamReadOptions::default
    - StreamTrimStrategy::maxlen
    - Self::trim
    - map
    - xadd
    - StreamAddOptions::default
    - flushdb
    - set_deletion_policy
    - xgroup_create_mkstream
    - xadd_options
    - xpending_consumer_count
    - unwrap
    - xinfo_stream
    - count
    - connection
    - xread_options
    - len
    - xpending
    - try_into
    - Self::group
    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:1209,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1210,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1211,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1211,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1223,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1223,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1225,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1225,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1225,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1225,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1228,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1231,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1235,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1235,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1235,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1237,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1231,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1240,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1240,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1246,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1251,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:1251,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:1252,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1254,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1251,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1246,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1246,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1264,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1264,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1269,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1269,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1272,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1278,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1208
    functionDepth: 8
    functionLinenumber: 1208
    functionLinenumberEnd: 1290
    functionName: test_xadd_options_deletion_policy_delref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - StreamReadOptions::default
    - StreamTrimStrategy::maxlen
    - Self::trim
    - map
    - xadd
    - StreamAddOptions::default
    - flushdb
    - set_deletion_policy
    - xgroup_create_mkstream
    - xadd_options
    - xpending_consumer_count
    - unwrap
    - xinfo_stream
    - count
    - connection
    - xread_options
    - len
    - xpending
    - try_into
    - Self::group
    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: 1293
    functionDepth: 8
    functionLinenumber: 1293
    functionLinenumberEnd: 1378
    functionName: test_xadd_options_deletion_policy_acked
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - StreamReadOptions::default
    - StreamTrimStrategy::maxlen
    - Self::trim
    - map
    - xadd
    - StreamAddOptions::default
    - flushdb
    - set_deletion_policy
    - xgroup_create_mkstream
    - xadd_options
    - xpending_consumer_count
    - unwrap
    - xinfo_stream
    - count
    - connection
    - xread_options
    - len
    - xpending
    - try_into
    - Self::group
    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:1382,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1383,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1384,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1384,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1396,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1396,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1398,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1398,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1398,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1398,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1401,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1401,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1404,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1408,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1408,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1408,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1410,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1404,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1413,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1413,1
    - Dst: xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1419,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:1422,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1422,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1422,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1419,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1427,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1427,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1431,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1437,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1449
      start: 1381
    functionDepth: 8
    functionLinenumber: 1381
    functionLinenumberEnd: 1449
    functionName: test_xtrim_options_deletion_policy_keepref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - StreamReadOptions::default
    - Self::set_deletion_policy
    - map
    - clone
    - xadd
    - flushdb
    - xgroup_create_mkstream
    - xpending_consumer_count
    - unwrap
    - xinfo_stream
    - count
    - StreamTrimOptions::minid
    - connection
    - xread_options
    - len
    - xtrim_options
    - xpending
    - try_into
    - Self::group
    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:1453,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1454,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1455,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1455,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1467,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1467,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1469,1
    - Dst: xadd
      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: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1469,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1472,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1472,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1475,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1479,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1479,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1479,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1481,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1475,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1484,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1484,1
    - Dst: xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1490,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:1493,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1493,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1493,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1490,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1498,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1498,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1502,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1508,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1452
    functionDepth: 8
    functionLinenumber: 1452
    functionLinenumberEnd: 1520
    functionName: test_xtrim_options_deletion_policy_delref
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - StreamReadOptions::default
    - Self::set_deletion_policy
    - map
    - clone
    - xadd
    - flushdb
    - xgroup_create_mkstream
    - xpending_consumer_count
    - unwrap
    - xinfo_stream
    - count
    - StreamTrimOptions::minid
    - connection
    - xread_options
    - len
    - xtrim_options
    - xpending
    - try_into
    - Self::group
    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:1524,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1525,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1526,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1526,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1538,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1538,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1540,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1540,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1540,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1540,1
    - Dst: xgroup_create_mkstream
      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: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1546,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1550,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1550,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1550,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1552,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1546,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1555,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1555,1
    - Dst: xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1561,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:1564,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1564,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:1564,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1561,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1569,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1569,1
    - Dst: xpending_consumer_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1573,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1579,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1523
    functionDepth: 8
    functionLinenumber: 1523
    functionLinenumberEnd: 1591
    functionName: test_xtrim_options_deletion_policy_acked
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - StreamReadOptions::default
    - Self::set_deletion_policy
    - map
    - clone
    - xadd
    - flushdb
    - xgroup_create_mkstream
    - xpending_consumer_count
    - unwrap
    - xinfo_stream
    - count
    - StreamTrimOptions::minid
    - connection
    - xread_options
    - len
    - xtrim_options
    - xpending
    - try_into
    - Self::group
    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:1595,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1596,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1597,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1597,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1612,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1612,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1614,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1614,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1614,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1614,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1617,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1617,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1622,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1626,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1626,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1626,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1622,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1633,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1633,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1646,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1646,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1651,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1658,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1658,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1660,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1660,1
    - Dst: xack
      Src: /src/redis-rs/redis/tests/test_streams.rs:1663,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1663,1
    - Dst: xpending
      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: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1666,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1666,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1668,1
    - Dst: xpending
      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: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1672,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1672,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1677,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1679,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1679,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1681,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1681,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1686,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1693,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1693,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1695,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1695,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1702,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1702,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1703,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1703,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1703,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1704,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1704,1
    - Dst: xinfo_stream
      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: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1709,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1716,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1716,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1718,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1718,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1721,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1723,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1723,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1725,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1725,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1731,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1735,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1735,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1735,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1731,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1741,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1741,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1743,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1743,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1747,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1749,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1749,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1751,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1751,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1754,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1756,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1756,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1758,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1758,1
    - Dst: try_into
      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: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1764,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1764,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1764,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1764,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1766,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:1768,1
    - Dst: as_str
      Src: /src/redis-rs/redis/tests/test_streams.rs:1768,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1781,1
    - Dst: xdel_ex
      Src: /src/redis-rs/redis/tests/test_streams.rs:1789,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 299
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1791
      start: 1594
    functionDepth: 8
    functionLinenumber: 1594
    functionLinenumberEnd: 1791
    functionName: test_xdel_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xread_options
    - xdel_ex
    - flushdb
    - map
    - xgroup_create_mkstream
    - run_test_if_version_supported
    - xack
    - as_str
    - StreamReadOptions::default
    - xadd
    - xpending
    - unwrap
    - xinfo_stream
    - try_into
    - count
    - Self::group
    - connection
    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:1795,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:1796,1
    - Dst: flushdb
      Src: /src/redis-rs/redis/tests/test_streams.rs:1797,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1797,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:1814,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1814,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1816,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1816,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1816,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1816,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1820,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1820,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1825,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1829,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1829,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1829,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1825,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1836,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1836,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1849,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1849,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1852,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1852,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:1855,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:1866,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_streams.rs:1866,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_streams.rs:1866,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1867,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:1867,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1871,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1871,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1873,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1873,1
    - Dst: try_into
      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: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1879,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1879,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1879,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1880,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1880,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1886,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1896,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1900,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1900,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1900,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1896,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1906,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1906,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1907,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1907,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1913,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1913,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1918,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1925,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1925,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1927,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1927,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1929,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1929,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1934,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1941,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1941,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1943,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1943,1
    - Dst: try_into
      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: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:1950,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:1950,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1950,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1950,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:1953,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:1957,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:1957,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:1957,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1953,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1964,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1964,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1966,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1966,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1968,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1968,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1971,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1984,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1984,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:1986,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1986,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:1988,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:1988,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:1991,1
    - Dst: try_into
      Src: /src/redis-rs/redis/tests/test_streams.rs:2007,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2007,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:2009,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2009,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2009,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2009,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2012,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2016,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:2016,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2016,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2012,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2022,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2022,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2024,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2024,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2026,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2026,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2030,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2044,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2044,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2046,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2046,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2048,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2048,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2052,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2065,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2065,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2067,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2067,1
    - Dst: xinfo_stream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2069,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2069,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2073,1
    - Dst: xack_del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2082,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 384
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2089
      start: 1794
    functionDepth: 8
    functionLinenumber: 1794
    functionLinenumberEnd: 2089
    functionName: test_xack_del
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - RedisResult::iter
    - run_test_if_version_supported
    - StreamReadOptions::default
    - map
    - clone
    - xadd
    - xack_del
    - iter
    - flushdb
    - xgroup_create_mkstream
    - unwrap
    - xinfo_stream
    - count
    - connection
    - xread_options
    - len
    - xpending
    - zip
    - try_into
    - Self::group
    linkageType: ''
    returnType: void
    signature: fn test_xack_del()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2095,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2096,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2099,1
    - Dst: redis::Connection::xtrim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2103,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:2103,1
    - Dst: redis::Connection::xtrim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2106,1
    - Dst: StreamMaxlen::Equals
      Src: /src/redis-rs/redis/tests/test_streams.rs:2106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2092
    functionDepth: 3
    functionLinenumber: 2092
    functionLinenumberEnd: 2108
    functionName: test_xtrim
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xtrim
    - xadd_keyrange
    - StreamMaxlen::Equals
    - TestContext::connection
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_xtrim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2114,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2115,1
    - Dst: xadd_keyrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2118,1
    - Dst: redis::Connection::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2122,1
    - Dst: StreamTrimOptions::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2124,1
    - Dst: redis::Connection::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2129,1
    - Dst: StreamTrimOptions::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2131,1
    - Dst: redis::Connection::del
      Src: /src/redis-rs/redis/tests/test_streams.rs:2135,1
    - Dst: redis::Connection::xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2138,1
    - Dst: redis::Connection::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2142,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:2144,1
    - Dst: redis::Connection::xtrim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2149,1
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/tests/test_streams.rs:2151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2154
      start: 2111
    functionDepth: 3
    functionLinenumber: 2111
    functionLinenumberEnd: 2154
    functionName: test_xtrim_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::del
    - xadd_keyrange
    - redis::Connection::xtrim_options
    - TestContext::connection
    - redis::Connection::xadd
    - TestContext::new
    - StreamTrimOptions::maxlen
    - StreamTrimOptions::minid
    linkageType: ''
    returnType: void
    signature: fn test_xtrim_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2163,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2164,1
    - Dst: redis::Connection::xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2167,1
    - Dst: redis::Connection::xgroup_destroy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2171,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2175,1
    - Dst: redis::Connection::xgroup_create
      Src: /src/redis-rs/redis/tests/test_streams.rs:2178,1
    - Dst: redis::Connection::xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2182,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2186,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:2186,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2182,1
    - Dst: redis::Connection::xgroup_delconsumer
      Src: /src/redis-rs/redis/tests/test_streams.rs:2192,1
    - Dst: redis::Connection::xgroup_destroy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2198
      start: 2157
    functionDepth: 8
    functionLinenumber: 2157
    functionLinenumberEnd: 2198
    functionName: test_xgroup
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xgroup_destroy
    - redis::Connection::xread_options
    - redis::Connection::xgroup_create_mkstream
    - StreamReadOptions::default
    - TestContext::connection
    - xadd
    - redis::Connection::xgroup_create
    - redis::Connection::xgroup_delconsumer
    - unwrap
    - TestContext::new
    - Self::group
    linkageType: ''
    returnType: void
    signature: fn test_xgroup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2207,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2208,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2210,1
    - Dst: redis::Connection::xrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:2213,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2213,1
    - Dst: redis::Connection::xrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2216,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2216,1
    - Dst: redis::Connection::xrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2219,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2219,1
    - Dst: redis::Connection::xrange_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2222,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2201
    functionDepth: 2
    functionLinenumber: 2201
    functionLinenumberEnd: 2224
    functionName: test_xrange
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xrange
    - redis::Connection::xrange_count
    - TestContext::connection
    - xadd
    - unwrap
    - TestContext::new
    - redis::Connection::xrange_all
    linkageType: ''
    returnType: void
    signature: fn test_xrange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2233,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2234,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2236,1
    - Dst: redis::Connection::xrevrange_all
      Src: /src/redis-rs/redis/tests/test_streams.rs:2239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2239,1
    - Dst: redis::Connection::xrevrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2242,1
    - Dst: redis::Connection::xrevrange
      Src: /src/redis-rs/redis/tests/test_streams.rs:2245,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2245,1
    - Dst: redis::Connection::xrevrange_count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2250
      start: 2227
    functionDepth: 2
    functionLinenumber: 2227
    functionLinenumberEnd: 2250
    functionName: test_xrevrange
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::xrevrange_count
    - redis::Connection::xrevrange_all
    - xadd
    - TestContext::connection
    - unwrap
    - TestContext::new
    - redis::Connection::xrevrange
    linkageType: ''
    returnType: void
    signature: fn test_xrevrange()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_streams.rs:2261,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2262,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:2270,1
    - Dst: redis::Connection::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:2278,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2278,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2278,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:2279,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:2279,1
    - Dst: redis::Connection::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2281,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2287,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2288,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2288,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2281,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_streams.rs:2293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2253
    functionDepth: 9
    functionLinenumber: 2253
    functionLinenumberEnd: 2302
    functionName: test_xautoclaim_invalid_pel_entries_claiming_full_entries
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamAutoClaimOptions::default
    - redis::Connection::xdel
    - TestContext::get_version
    - clone
    - redis::Connection::xautoclaim_options
    - Self::count
    - TestContext::connection
    - create_group_add_and_read
    - Duration::from_millis
    - unwrap
    - TestContext::new
    - std::thread::sleep
    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:2313,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2314,1
    - Dst: create_group_add_and_read
      Src: /src/redis-rs/redis/tests/test_streams.rs:2322,1
    - Dst: redis::Connection::xdel
      Src: /src/redis-rs/redis/tests/test_streams.rs:2330,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2330,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2330,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:2331,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_streams.rs:2331,1
    - Dst: redis::Connection::xautoclaim_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2333,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2339,1
    - Dst: StreamAutoClaimOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2340,1
    - Dst: Self::count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2340,1
    - Dst: Self::with_justid
      Src: /src/redis-rs/redis/tests/test_streams.rs:2340,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2333,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/tests/test_streams.rs:2344,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/tests/test_streams.rs:2345,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_streams.rs:2347,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:2355,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2358,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2359,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_streams.rs:2364,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_streams.rs:2367,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2305
    functionDepth: 9
    functionLinenumber: 2305
    functionLinenumberEnd: 2376
    functionName: test_xautoclaim_invalid_pel_entries_claiming_just_ids
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - StreamAutoClaimOptions::default
    - redis::Connection::xdel
    - TestContext::get_version
    - insert
    - Self::with_justid
    - clone
    - Default::default
    - redis::Connection::xautoclaim_options
    - Self::count
    - TestContext::connection
    - create_group_add_and_read
    - Duration::from_millis
    - unwrap
    - TestContext::new
    - std::mem::take
    - std::thread::sleep
    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:2397,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2398,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2403,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2403,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2404,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2404,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2409,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2409,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2416,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2416,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2425,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2425,1
    - Dst: xadd_options
      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: xrange_all
      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: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2440,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2440,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2446,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2447,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2447,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2454,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2454,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2460,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2461,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2461,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2469,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2473
      start: 2395
    functionDepth: 8
    functionLinenumber: 2395
    functionLinenumberEnd: 2473
    functionName: idempotency_tests::test_xadd_idempotency_manual_mode
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xadd_options
    - Self::idmp
    - run_test_if_version_supported
    - xrange_all
    - xinfo_stream_with_idempotency
    - unwrap
    - StreamAddOptions::default
    - connection
    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:2478,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2479,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2484,1
    - Dst: Self::idmpauto
      Src: /src/redis-rs/redis/tests/test_streams.rs:2484,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2485,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2485,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2490,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2490,1
    - Dst: xadd_options
      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: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2511,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2511,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2517,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2517,1
    - Dst: xinfo_stream_with_idempotency
      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: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2530,1
    - Dst: Self::idmpauto
      Src: /src/redis-rs/redis/tests/test_streams.rs:2531,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2530,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2538,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2542
      start: 2476
    functionDepth: 8
    functionLinenumber: 2476
    functionLinenumberEnd: 2542
    functionName: idempotency_tests::test_xadd_idempotency_automatic_mode
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::idmpauto
    - xadd_options
    - run_test_if_version_supported
    - xinfo_stream_with_idempotency
    - unwrap
    - StreamAddOptions::default
    - connection
    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:2547,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2548,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2563,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2567,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2567,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2567,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2572,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_streams.rs:2579,1
    - Dst: xadd
      Src: /src/redis-rs/redis/tests/test_streams.rs:2580,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2580,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2580,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2583,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2583,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2589,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2589,1
    - Dst: xread_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2592,1
    - Dst: StreamReadOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2596,1
    - Dst: Self::group
      Src: /src/redis-rs/redis/tests/test_streams.rs:2596,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_streams.rs:2596,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:2598,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2592,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2601,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2601,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2606,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2611,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2611,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2611,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2613,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:2615,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2611,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2606,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2606,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2625,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2625,1
    - Dst: xpending
      Src: /src/redis-rs/redis/tests/test_streams.rs:2634,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2634,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2639,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2644,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2644,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2644,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2646,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:2648,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2644,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2639,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2639,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2658,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2658,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2667,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2672,1
    - Dst: Self::idmpauto
      Src: /src/redis-rs/redis/tests/test_streams.rs:2672,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/tests/test_streams.rs:2672,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/tests/test_streams.rs:2674,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_streams.rs:2676,1
    - Dst: set_deletion_policy
      Src: /src/redis-rs/redis/tests/test_streams.rs:2672,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2667,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2667,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2687,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2687,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 161
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2545
    functionDepth: 9
    functionLinenumber: 2545
    functionLinenumberEnd: 2694
    functionName: idempotency_tests::test_xadd_idempotency_with_other_options
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - Self::idmp
    - run_test_if_version_supported
    - xinfo_stream_with_idempotency
    - StreamReadOptions::default
    - StreamTrimStrategy::maxlen
    - Self::trim
    - map
    - xadd
    - StreamAddOptions::default
    - Self::idmpauto
    - set_deletion_policy
    - xadd_options
    - xgroup_create_mkstream
    - unwrap
    - count
    - connection
    - xread_options
    - len
    - xpending
    - Self::nomkstream
    - Self::group
    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:2698,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2699,1
    - Dst: xcfgset
      Src: /src/redis-rs/redis/tests/test_streams.rs:2705,1
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/tests/test_streams.rs:2707,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2707,1
    - Dst: xcfgset
      Src: /src/redis-rs/redis/tests/test_streams.rs:2716,1
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/tests/test_streams.rs:2718,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2718,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2726,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2726,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2729,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2729,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2743,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2743,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2757,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2757,1
    - Dst: StreamConfigOptions::with_idempotency_seconds
      Src: /src/redis-rs/redis/tests/test_streams.rs:2763,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2763,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/tests/test_streams.rs:2763,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2763,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2768,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2768,1
    - Dst: StreamConfigOptions::with_idempotency_maxsize
      Src: /src/redis-rs/redis/tests/test_streams.rs:2774,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2774,1
    - Dst: idempotency_seconds
      Src: /src/redis-rs/redis/tests/test_streams.rs:2774,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2774,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2779,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2779,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2783
      start: 2697
    functionDepth: 1
    functionLinenumber: 2697
    functionLinenumberEnd: 2783
    functionName: idempotency_tests::test_xcfgset
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xgroup_create_mkstream
    - run_test_if_version_supported
    - Result::unwrap
    - xinfo_stream_with_idempotency
    - idempotency_maxsize
    - StreamConfigOptions::with_idempotency_maxsize
    - StreamConfigOptions::with_idempotency_seconds
    - idempotency_seconds
    - unwrap
    - xcfgset
    - connection
    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:2787,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2788,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2793,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2793,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2794,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2794,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2800,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2800,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2801,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2801,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2807,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2807,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2814,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2814,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2820,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2820,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2834,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2834,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2846,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2846,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2853,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2853,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2860,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2860,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2866,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2866,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2879,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2888
      start: 2786
    functionDepth: 8
    functionLinenumber: 2786
    functionLinenumberEnd: 2888
    functionName: idempotency_tests::test_xcfgset_with_idempotent_messages
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xadd_options
    - Self::idmp
    - run_test_if_version_supported
    - xinfo_stream_with_idempotency
    - unwrap
    - StreamAddOptions::default
    - connection
    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:2892,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_streams.rs:2893,1
    - Dst: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2903,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2903,1
    - Dst: xinfo_stream_with_idempotency
      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: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2918,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2918,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2919,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2919,1
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2924,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2924,1
    - Dst: xadd_options
      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: xinfo_stream_with_idempotency
      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:2937,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2937,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2938,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2938,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:2944,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2944,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: del
      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: xgroup_create_mkstream
      Src: /src/redis-rs/redis/tests/test_streams.rs:2972,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2972,1
    - Dst: xinfo_stream_with_idempotency
      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: StreamAddOptions::default
      Src: /src/redis-rs/redis/tests/test_streams.rs:2987,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/tests/test_streams.rs:2987,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:2988,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:2988,1
    - Dst: xadd_options
      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: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:3000,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3000,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/test_streams.rs:3005,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_streams.rs:3005,1
    - Dst: xadd_options
      Src: /src/redis-rs/redis/tests/test_streams.rs:3010,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3010,1
    - Dst: xinfo_stream_with_idempotency
      Src: /src/redis-rs/redis/tests/test_streams.rs:3016,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_streams.rs:3016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 141
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3027
      start: 2891
    functionDepth: 8
    functionLinenumber: 2891
    functionLinenumberEnd: 3027
    functionName: idempotency_tests::test_xcfgset_idempotency_behavior
    functionSourceFile: /src/redis-rs/redis/tests/test_streams.rs
    functionUses: 0
    functionsReached:
    - xgroup_create_mkstream
    - Self::idmp
    - run_test_if_version_supported
    - xadd_options
    - xinfo_stream_with_idempotency
    - std::time::Duration::from_secs
    - del
    - unwrap
    - StreamAddOptions::default
    - std::thread::sleep
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_xcfgset_idempotency_behavior()
  - 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: 6
    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
    - filter_level
    - is_test
    - String::is_err
    - call_once
    - env_logger::builder
    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:
    - String::unwrap_or_else
    - std::env::var
    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:
    - String::unwrap_or_else
    - std::env::var
    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: 4
    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
    - collect
    - get_or_init
    - get_env_var
    - String::split
    - TlsFilePaths::trim
    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 Cmd::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 Cmd::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:
    - redis::Cmd::arg
    - start
    - Self::set_credentials_provider
    - get_multiplexed_async_connection_with_config
    - redis::AsyncConnectionConfig::new
    - '&mut Cmd::query_async'
    - exec_async
    - RetryConfig::default
    - init_logger
    - Client::open
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - '&mut Cmd::arg'
    - get_redis_url
    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: 5
    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:
    - get_redis_scopes
    - test_redis_connection
    - get_env_var
    - RedisResult::unwrap
    - EntraIdCredentialsProvider::new_client_secret_with_scopes
    - '&''static Vec::clone'
    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:109,1
    - Dst: fs::read
      Src: /src/redis-rs/redis/tests/test_auth.rs:111,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_auth.rs:111,1
    - Dst: encode
      Src: /src/redis-rs/redis/tests/test_auth.rs:115,1
    - Dst: EntraIdCredentialsProvider::new_client_certificate_with_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:117,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:118,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:119,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:124,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:124,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:117,1
    - Dst: test_redis_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 129
      start: 105
    functionDepth: 5
    functionLinenumber: 105
    functionLinenumberEnd: 129
    functionName: entra_id_tests::test_service_principal_client_certificate
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - get_redis_scopes
    - encode
    - test_redis_connection
    - expect
    - EntraIdCredentialsProvider::new_client_certificate_with_scopes
    - RedisResult::unwrap
    - get_env_var
    - fs::read
    - '&''static Vec::clone'
    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:135,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:136,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:136,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:135,1
    - Dst: test_redis_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 5
    functionLinenumber: 133
    functionLinenumberEnd: 141
    functionName: entra_id_tests::test_system_assigned_managed_identity
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - EntraIdCredentialsProvider::new_system_assigned_managed_identity_with_scopes
    - get_redis_scopes
    - test_redis_connection
    - RedisResult::unwrap
    - '&''static Vec::clone'
    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:146,1
    - Dst: get_redis_scopes
      Src: /src/redis-rs/redis/tests/test_auth.rs:147,1
    - Dst: '&''static Vec::clone'
      Src: /src/redis-rs/redis/tests/test_auth.rs:147,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_auth.rs:148,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_auth.rs:149,1
    - Dst: UserAssignedId::ObjectId
      Src: /src/redis-rs/redis/tests/test_auth.rs:149,1
    - Dst: get_env_var
      Src: /src/redis-rs/redis/tests/test_auth.rs:149,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_auth.rs:152,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_auth.rs:146,1
    - Dst: test_redis_connection
      Src: /src/redis-rs/redis/tests/test_auth.rs:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 145
    functionDepth: 8
    functionLinenumber: 145
    functionLinenumberEnd: 157
    functionName: entra_id_tests::test_user_assigned_managed_identity
    functionSourceFile: /src/redis-rs/redis/tests/test_auth.rs
    functionUses: 0
    functionsReached:
    - Some
    - EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
    - get_redis_scopes
    - Default::default
    - test_redis_connection
    - UserAssignedId::ObjectId
    - RedisResult::unwrap
    - get_env_var
    - '&''static Vec::clone'
    linkageType: ''
    returnType: void
    signature: async fn test_user_assigned_managed_identity()
  - 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:
    - '&str::parse'
    - unwrap
    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: TestContext::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 Cmd::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 Cmd::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::arg
    - '&mut Cmd::exec'
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - exec
    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: TestContext::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 Cmd::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: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 136
      start: 108
    functionDepth: 9
    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:
    - cmd
    - get_connection
    - redis_settings
    - Self::arg
    - redis::Cmd::new
    - set_redis_settings
    - connection_info
    - arg
    - TestContext::connection
    - redis::Client::open
    - Cmd::arg
    - Self::set_username
    - RedisConnectionInfo::set_password
    - RedisResult::unwrap
    - unwrap
    - TestContext::new
    - '&mut Cmd::query'
    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: TestContext::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 Cmd::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 Cmd::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::arg
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - exec
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:161,1
    - Dst: redis::Connection::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 Cmd::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: redis::Connection::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 Cmd::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: redis::Connection::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 Cmd::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: redis::Connection::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 Cmd::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: redis::Connection::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 Cmd::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: redis::Connection::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::arg
    - arg
    - expect
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - redis::Connection::key_type
    - unwrap
    - exec
    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: TestContext::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 Cmd::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: redis::Connection::get
      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: 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: 2
    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::Cmd::arg
    - ignore
    - cmd
    - parse
    - redis::Connection::get
    - arg
    - redis::Pipeline::cmd
    - TestContext::connection
    - '&mut Cmd::arg'
    - unwrap
    - TestContext::new
    - query
    - redis::pipe
    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: TestContext::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 Cmd::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::arg
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - exec
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:262,1
    - Dst: redis::Connection::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: redis::Connection::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:
    - redis::Connection::ping
    - TestContext::connection
    - redis::Connection::ping_message
    - RedisResult::unwrap
    - unwrap
    - TestContext::new
    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: TestContext::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 Cmd::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::arg
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - exec
    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: TestContext::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 Cmd::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: redis::Connection::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: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:308,1
    - Dst: 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 Cmd::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: redis::Connection::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: redis::Connection::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: 2
    functionLinenumber: 286
    functionLinenumberEnd: 326
    functionName: basic::test_getex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - sleep
    - redis::Connection::get
    - redis::Connection::get_int
    - Duration::from_secs
    - TestContext::connection
    - redis::Connection::get_ex
    - Duration::from_millis
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - unwrap
    - exec
    - Expiry::EX
    - redis::Commands::get_ex::<_, usize>
    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: TestContext::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:
    - TestContext::connection
    - redis::Cmd::query
    - RedisResult::unwrap
    - redis::cmd
    - TestContext::new
    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: TestContext::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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::arg
    - arg
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - '&mut Cmd::query'
    - unwrap
    - exec
    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:373,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:375,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:376,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:376,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:376,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:376,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:376,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:376,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:376,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:376,1
    - Dst: hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:385,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:385,1
    - Dst: httl
      Src: /src/redis-rs/redis/tests/test_basic.rs:390,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:390,1
    - Dst: hpttl
      Src: /src/redis-rs/redis/tests/test_basic.rs:395,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:395,1
    - Dst: hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:400,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:400,1
    - Dst: hexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:406,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:406,1
    - Dst: hpexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:412,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:412,1
    - Dst: hpexpire
      Src: /src/redis-rs/redis/tests/test_basic.rs:418,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:418,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:424,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:424,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:424,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:424,1
    - Dst: hexpire_at
      Src: /src/redis-rs/redis/tests/test_basic.rs:428,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:428,1
    - Dst: hexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:438,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:438,1
    - Dst: hpexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:440,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:440,1
    - Dst: hpersist
      Src: /src/redis-rs/redis/tests/test_basic.rs:446,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:446,1
    - Dst: hpttl
      Src: /src/redis-rs/redis/tests/test_basic.rs:448,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 452
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 452
    functionName: basic::test_hash_expiration
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - arg
    - redis::Cmd::arg
    - as_secs
    - RedisResult::unwrap
    - hpttl
    - redis::cmd
    - exec
    - SystemTime::now
    - hpersist
    - '&mut Cmd::arg'
    - unwrap
    - hexpire
    - connection
    - hexpire_at
    - hpexpire
    - httl
    - hpexpire_time
    - hexpire_time
    - duration_since
    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:460,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:460,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: 466
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 466
    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:473,1
    - Dst: for_each
      Src: /src/redis-rs/redis/tests/test_basic.rs:473,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: 476
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 476
    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:487,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:488,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:498,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:501,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:501,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:506,1
    - Dst: Self::extend_from_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:528,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:531,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:531,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 550
      start: 486
    functionDepth: 2
    functionLinenumber: 486
    functionLinenumberEnd: 550
    functionName: basic::test_hget_del
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - hgetall
    - Vec::from
    - verify_fields_absence_from_hash
    - unwrap
    - Self::extend_from_slice
    - connection
    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:564,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:565,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:609,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:616,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:616,1
    - Dst: Vec::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:618,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:620,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:620,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:625,1
    - Dst: redis::Commands::hget_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:643,1
    - Dst: Expiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:643,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:643,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:646,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:650,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:657,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:657,1
    - Dst: Self::extend_from_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:659,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:661,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:661,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 675
      start: 563
    functionDepth: 2
    functionLinenumber: 563
    functionLinenumberEnd: 675
    functionName: basic::test_hget_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Commands::hget_ex
    - sleep
    - run_test_if_version_supported
    - len
    - hgetall
    - Vec::from
    - Duration::from_millis
    - verify_fields_absence_from_hash
    - unwrap
    - Self::extend_from_slice
    - verify_exact_hash_fields_and_values
    - Expiry::EX
    - connection
    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:683,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:684,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:689,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:710,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:710,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:710,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:750,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:750,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:751,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 755
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 755
    functionName: basic::test_hget_ex_field_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - sleep
    - run_test_if_version_supported
    - SystemTime::now
    - Duration::from_millis
    - unwrap
    - verify_exact_hash_fields_and_values
    - duration_since
    - connection
    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:778,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:779,1
    - Dst: generate_random_testing_hash_key
      Src: /src/redis-rs/redis/tests/test_basic.rs:781,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:784,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:784,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:788,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:788,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:794,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:800,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:800,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:810,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:814,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:816,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:816,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:826,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:830,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:834,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:834,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:845,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:845,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:860,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:860,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:860,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:864,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:864,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:874,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:888,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:888,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:891,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:891,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:902,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:902,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:918,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:918,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:919,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:919,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:919,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:923,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:923,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:933,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:946,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:946,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:950,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:950,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 167
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 956
      start: 777
    functionDepth: 8
    functionLinenumber: 777
    functionLinenumberEnd: 956
    functionName: basic::test_hset_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - sleep
    - run_test_if_version_supported
    - HashFieldExpirationOptions::default
    - collect
    - hgetall
    - hset_ex
    - SetExpiry::EX
    - verify_exact_hash_fields_and_values
    - Duration::from_millis
    - generate_random_testing_hash_key
    - redis::Commands::hgetall
    - unwrap
    - verify_fields_absence_from_hash
    - Self::set_expiration
    - Self::set_existence_check
    - connection
    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:964,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:965,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:970,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:973,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:973,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:973,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:975,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:977,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:977,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:982,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:982,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:983,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:983,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:988,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:988,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:988,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:991,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:991,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:991,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:992,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:992,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:997,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:998,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:998,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:999,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:999,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1004,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1004,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1005,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1005,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1011,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1012,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1012,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1018,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 97
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 963
    functionDepth: 8
    functionLinenumber: 963
    functionLinenumberEnd: 1022
    functionName: basic::test_hsetex_field_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - as_secs
    - SetExpiry::PXAT
    - run_test_if_version_supported
    - HashFieldExpirationOptions::default
    - SetExpiry::EXAT
    - as_millis
    - sleep
    - SystemTime::now
    - Self::set_existence_check
    - hset_ex
    - SetExpiry::EX
    - SetExpiry::PX
    - Duration::from_millis
    - unwrap
    - Self::set_expiration
    - verify_exact_hash_fields_and_values
    - duration_since
    - connection
    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:1026,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1027,1
    - Dst: HashFieldExpirationOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1031,1
    - Dst: Self::set_existence_check
      Src: /src/redis-rs/redis/tests/test_basic.rs:1031,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1031,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1033,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1036,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1036,1
    - Dst: Self::set_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:1042,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:1042,1
    - Dst: hset_ex
      Src: /src/redis-rs/redis/tests/test_basic.rs:1043,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1043,1
    - Dst: verify_exact_hash_fields_and_values
      Src: /src/redis-rs/redis/tests/test_basic.rs:1048,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1057,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1057,1
    - Dst: hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:1060,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1060,1
    - Dst: verify_fields_absence_from_hash
      Src: /src/redis-rs/redis/tests/test_basic.rs:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1025
    functionDepth: 8
    functionLinenumber: 1025
    functionLinenumberEnd: 1069
    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:
    - sleep
    - run_test_if_version_supported
    - HashFieldExpirationOptions::default
    - hgetall
    - hset_ex
    - SetExpiry::EX
    - verify_exact_hash_fields_and_values
    - Duration::from_millis
    - verify_fields_absence_from_hash
    - unwrap
    - Self::set_expiration
    - Self::set_existence_check
    - connection
    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:1076,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1077,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1079,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 Cmd::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
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1084,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1084,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1084,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1084,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1075
    functionDepth: 2
    functionLinenumber: 1075
    functionLinenumberEnd: 1086
    functionName: basic::test_unlink
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - exec
    linkageType: ''
    returnType: void
    signature: fn test_unlink()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1090,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1091,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1095,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1095,1
    - Dst: TlsFilePaths::sort_unstable
      Src: /src/redis-rs/redis/tests/test_basic.rs:1096,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1100,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1100,1
    - Dst: redis::Commands::smembers
      Src: /src/redis-rs/redis/tests/test_basic.rs:1106,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1111
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1111
    functionName: basic::test_set_ops
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Commands::smembers
    - TlsFilePaths::sort_unstable
    - TestContext::connection
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_set_ops()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1115,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1116,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1120,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1120,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1120,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1120,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1120,1
    - Dst: TlsFilePaths::sort_unstable
      Src: /src/redis-rs/redis/tests/test_basic.rs:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1114
    functionDepth: 2
    functionLinenumber: 1114
    functionLinenumberEnd: 1129
    functionName: basic::test_scan
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestContext::connection
    - TlsFilePaths::sort_unstable
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - unwrap
    - query
    linkageType: ''
    returnType: void
    signature: fn test_scan()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1133,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1134,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1136,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1136,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1136,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1136,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1136,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1138,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1138,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1138,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1138,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1138,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1146,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1146,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1146,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/tests/test_basic.rs:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1151
      start: 1132
    functionDepth: 2
    functionLinenumber: 1132
    functionLinenumberEnd: 1151
    functionName: basic::test_optionals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - unwrap_or
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - unwrap
    - query
    - exec
    - '&mut Cmd::query'
    linkageType: ''
    returnType: void
    signature: fn test_optionals()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1155,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1156,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1157,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1160,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:1161,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1164,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1164,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1164,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1164,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:1164,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1164,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:1171,1
    - Dst: RedisServer::remove
      Src: /src/redis-rs/redis/tests/test_basic.rs:1175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1154
    functionDepth: 7
    functionLinenumber: 1154
    functionLinenumberEnd: 1179
    functionName: basic::test_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - RedisServer::insert
    - HashSet::new
    - '&mut Cmd::cursor_arg'
    - '&mut Cmd::clone'
    - map
    - TestContext::connection
    - RedisServer::remove
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - unwrap
    - exec
    - Self::iter
    linkageType: ''
    returnType: void
    signature: fn test_scanning()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1185,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1186,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1190,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1190,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1190,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1190,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1190,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1198,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1198,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1198,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1198,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1198,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1206,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1207,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:1207,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1206,1
    - Dst: None::is_some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1216,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1220,1
    - Dst: kind
      Src: /src/redis-rs/redis/tests/test_basic.rs:1220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1182
    functionDepth: 8
    functionLinenumber: 1182
    functionLinenumberEnd: 1232
    functionName: basic::test_checked_scanning_error
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - None::is_some
    - scan_options::<String>
    - Some
    - kind
    - TestContext::connection
    - ScanOptions::default
    - Self::with_count
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - unwrap
    - exec
    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:1236,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1237,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1238,1
    - Dst: redis::Connection::hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1241,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1241,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:1244,1
    - Dst: hscan_match::<&str, &str, (String, usize)>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1248,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1248,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:1252,1
    - Dst: RedisServer::remove
      Src: /src/redis-rs/redis/tests/test_basic.rs:1255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1235
    functionDepth: 7
    functionLinenumber: 1235
    functionLinenumberEnd: 1259
    functionName: basic::test_filtered_scanning
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - hscan_match::<&str, &str, (String, usize)>
    - RedisServer::insert
    - HashSet::new
    - map
    - redis::Connection::hset
    - TestContext::connection
    - RedisServer::remove
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_filtered_scanning()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1263,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1264,1
    - Dst: redis::Connection::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: redis::Connection::append
      Src: /src/redis-rs/redis/tests/test_basic.rs:1267,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1267,1
    - Dst: redis::Connection::hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1269,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1269,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1272,1
    - Dst: Self::with_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:1272,1
    - Dst: Self::with_pattern
      Src: /src/redis-rs/redis/tests/test_basic.rs:1272,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1273,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1273,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1274,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1277,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1278,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1278,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1279,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1282,1
    - Dst: Self::with_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:1282,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1283,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1283,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1284,1
    - Dst: ScanOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:1287,1
    - Dst: Self::with_type
      Src: /src/redis-rs/redis/tests/test_basic.rs:1287,1
    - Dst: scan_options::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:1288,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1288,1
    - Dst: Self::collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1262
    functionDepth: 8
    functionLinenumber: 1262
    functionLinenumberEnd: 1291
    functionName: basic::test_scan_with_options_works
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::append
    - Self::with_pattern
    - scan_options::<String>
    - Self::collect
    - redis::Connection::hset
    - TestContext::connection
    - ScanOptions::default
    - Self::with_type
    - Self::with_count
    - unwrap
    - TestContext::new
    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:1295,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1296,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1294
    functionDepth: 2
    functionLinenumber: 1294
    functionLinenumberEnd: 1314
    functionName: basic::test_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - cmd
    - arg
    - redis::Pipeline::cmd
    - TestContext::connection
    - '&mut Cmd::arg'
    - unwrap
    - TestContext::new
    - query
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: fn test_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1318,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1319,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1321,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1321,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1321,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1321,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1321,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1326,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1326,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1326,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1326,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1326,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1332,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1332,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1332,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1332,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1332,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1338,1
    - Dst: redis::Pipeline::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1338,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1338,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1338,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1338,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1349,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1349,1
    - Dst: "arg(\"x\")\n            .query::<String>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1349,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1354
      start: 1317
    functionDepth: 2
    functionLinenumber: 1317
    functionLinenumberEnd: 1354
    functionName: basic::test_pipeline_with_err
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - get
    - ignore
    - "arg(\"x\")\n            .query::<String>"
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - unwrap
    - exec
    - redis::pipe
    - redis::Pipeline::set
    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:1358,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1359,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1360,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1361,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1361,1
    - Dst: hset
      Src: /src/redis-rs/redis/tests/test_basic.rs:1361,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1361,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1361,1
    - Dst: Pipeline::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1367,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1368,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_basic.rs:1368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1357
    functionDepth: 3
    functionLinenumber: 1357
    functionLinenumberEnd: 1373
    functionName: basic::test_pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - get
    - to_string
    - redis::pipe
    - TestContext::connection
    - unwrap_err
    - Pipeline::set
    - hset
    - TestContext::new
    - ignore
    - Pipeline::exec
    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:1377,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1378,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1380,1
    - Dst: redis::Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1380,1
    - Dst: redis::Cmd::ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1380,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1380,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1381
      start: 1376
    functionDepth: 2
    functionLinenumber: 1376
    functionLinenumberEnd: 1381
    functionName: basic::test_empty_pipeline
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Pipeline::cmd
    - TestContext::connection
    - unwrap
    - TestContext::new
    - redis::Cmd::ignore
    - exec
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: fn test_empty_pipeline()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1385,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1386,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1384
    functionDepth: 2
    functionLinenumber: 1384
    functionLinenumberEnd: 1405
    functionName: basic::test_pipeline_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Pipeline::atomic
    - '&mut Pipeline::cmd'
    - redis::Cmd::arg
    - ignore
    - cmd
    - arg
    - TestContext::connection
    - '&mut Cmd::arg'
    - unwrap
    - TestContext::new
    - query
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_transaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1409,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1410,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1412,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1412,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1415,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1415,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1415,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1415,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1415,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1422,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1422,1
    - Dst: '&mut Pipeline::ping'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1422,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1422,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1422,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1422,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1422,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:1422,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1422,1
    - Dst: into_server_errors
      Src: /src/redis-rs/redis/tests/test_basic.rs:1433,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1433,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1440,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1408
    functionDepth: 3
    functionLinenumber: 1408
    functionLinenumberEnd: 1442
    functionName: basic::test_pipeline_transaction_with_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - set
    - redis::Commands::get
    - '&mut Pipeline::ping'
    - Option::unwrap
    - unwrap_err
    - TestContext::new
    - ignore
    - redis::Connection::set
    - redis::Cmd::arg
    - "atomic()\n            .ping()\n            .set(\"x\", 142)\n            .ignore()\n\
      \            .get(\"x\")\n            .set(\"x\", 142)\n            .query::<()>"
    - RedisResult::unwrap
    - redis::cmd
    - exec
    - redis::pipe
    - redis::Pipeline::atomic
    - get
    - TestContext::connection
    - into_server_errors
    - unwrap
    - '&mut Cmd::arg'
    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:1446,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1447,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1449,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1451,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1451,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1451,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1451,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1451,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1451,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1451,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1451,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1463,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1466,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1466,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1466,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1466,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1466,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1466,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1466,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1466,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1445
    functionDepth: 2
    functionLinenumber: 1445
    functionLinenumberEnd: 1480
    functionName: basic::test_pipeline_reuse_query
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::exec'
    - ignore
    - cmd
    - arg
    - TestContext::connection
    - unwrap
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - query
    - redis::pipe
    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:1484,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1485,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1487,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1489,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1489,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1489,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1489,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1489,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1489,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1489,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1489,1
    - Dst: clear
      Src: /src/redis-rs/redis/tests/test_basic.rs:1498,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1502,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1502,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1502,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1502,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1504,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1504,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1504,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1504,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1504,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1504,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1504,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1504,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1504,1
    - Dst: clear
      Src: /src/redis-rs/redis/tests/test_basic.rs:1514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1483
    functionDepth: 3
    functionLinenumber: 1483
    functionLinenumberEnd: 1518
    functionName: basic::test_pipeline_reuse_query_clear
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::exec'
    - ignore
    - cmd
    - clear
    - arg
    - TestContext::connection
    - unwrap
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - query
    - redis::pipe
    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:1522,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1524,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1524,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1526
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1526
    functionName: basic::test_pipeline_len
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - cmd
    - redis::pipe
    - arg
    linkageType: ''
    returnType: void
    signature: fn test_pipeline_len()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1530,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1533,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1533,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1535
      start: 1529
    functionDepth: 2
    functionLinenumber: 1529
    functionLinenumberEnd: 1535
    functionName: basic::test_pipeline_is_empty
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - cmd
    - redis::pipe
    - arg
    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:1539,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1540,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1543,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1543,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1543,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1543,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1543,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 Cmd::exec'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1546,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1546,1
    - Dst: redis::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 Cmd::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
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    - Dst: '&mut Pipeline::cmd'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1569
      start: 1538
    functionDepth: 3
    functionLinenumber: 1538
    functionLinenumberEnd: 1569
    functionName: basic::test_real_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::exec'
    - redis::Pipeline::atomic
    - '&mut Pipeline::cmd'
    - ignore
    - cmd
    - query
    - arg
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - '&mut Cmd::query'
    - unwrap
    - exec
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: fn test_real_transaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1573,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1574,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1577,1
    - Dst: redis::transaction
      Src: /src/redis-rs/redis/tests/test_basic.rs:1579,1
    - Dst: redis::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 Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1580,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1580,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1581,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1581,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1581,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:1581,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1581,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1581,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:1581,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1572
    functionDepth: 3
    functionLinenumber: 1572
    functionLinenumberEnd: 1592
    functionName: basic::test_real_transaction_highlevel
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - cmd
    - redis::transaction
    - query
    - arg
    - TestContext::connection
    - Pipeline::cmd
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - '&mut Cmd::query'
    - unwrap
    - exec
    - ignore
    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:1597,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1598,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1601,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1602,1
    - Dst: redis::Connection::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:1604,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1608,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1608,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1609,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1611,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1612,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1613,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1613,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1615,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1617,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1617,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1621,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1621,1
    - Dst: RedisServer::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1626,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1627,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1627,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1627,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1627,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1627,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1635,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1635,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1636,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1639,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1639,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1647,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1647,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1655,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1655,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1664
      start: 1595
    functionDepth: 7
    functionLinenumber: 1595
    functionLinenumberEnd: 1664
    functionName: basic::test_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - subscribe
    - supports_resp3
    - Arc::new
    - redis::Connection::as_pubsub
    - TestContext::new
    - std::sync::mpsc::channel
    - Barrier::new
    - redis::Cmd::arg
    - try_recv
    - RedisResult::unwrap
    - redis::cmd
    - redis::Connection::set_push_sender
    - exec
    - Self::join
    - RedisServer::clone
    - spawn
    - get_message
    - TestContext::connection
    - RedisServer::wait
    - unwrap
    - Self::wait
    - '&mut Cmd::arg'
    - expect
    linkageType: ''
    returnType: void
    signature: fn test_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1668,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1669,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1672,1
    - Dst: redis::Connection::set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:1673,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:1674,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1674,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1673,1
    - Dst: PubSub::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1676,1
    - Dst: PubSub::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1678,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1678,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1679,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:1679,1
    - Dst: redis::Connection::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1682,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1682,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1684,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1667
    functionDepth: 1
    functionLinenumber: 1667
    functionLinenumberEnd: 1687
    functionName: basic::test_pubsub_handles_timeout
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Some
    - redis::Connection::publish
    - PubSub::subscribe
    - PubSub::get_message
    - TestContext::connection
    - Duration::from_millis
    - redis::Connection::set_read_timeout
    - PubSub::as_pubsub
    - RedisResult::unwrap
    - RedisResult::unwrap_err
    - TestContext::new
    - 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:1692,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1693,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1696,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1700,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1700,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1701,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1704,1
    - Dst: Barrier::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1704,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1705,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1707,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1708,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1709,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1709,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1711,1
    - Dst: Self::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1712,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1714,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:1715,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1715,1
    - Dst: ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:1718,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1718,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1722,1
    - Dst: ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1723,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1723,1
    - Dst: ping_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1726,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1726,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1730,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1730,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1734,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1734,1
    - Dst: RedisServer::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1739,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1741,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1741,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1741,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1741,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1741,1
    - Dst: RedisServer::wait
      Src: /src/redis-rs/redis/tests/test_basic.rs:1750,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1752,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1690
    functionDepth: 7
    functionLinenumber: 1690
    functionLinenumberEnd: 1753
    functionName: basic::test_pubsub_send_ping
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - subscribe
    - supports_resp3
    - Arc::new
    - redis::Connection::as_pubsub
    - TestContext::new
    - Barrier::new
    - redis::Cmd::arg
    - ping
    - RedisResult::unwrap
    - redis::cmd
    - exec
    - Self::join
    - RedisServer::clone
    - ping_message
    - spawn
    - get_message
    - TestContext::connection
    - RedisServer::wait
    - unwrap
    - Self::wait
    - '&mut Cmd::arg'
    - expect
    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:1757,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1758,1
    - Dst: RedisResult::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1759,1
    - Dst: PubSub::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1760,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1760,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1761,1
    - Dst: redis::Connection::publish
      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: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1764,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1764,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1764,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1764,1
    - Dst: redis::Connection::publish
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1767,1
    - Dst: PubSub::get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1768,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1768,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1768,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1770
      start: 1756
    functionDepth: 1
    functionLinenumber: 1756
    functionLinenumberEnd: 1770
    functionName: basic::pub_sub_subscription_to_multiple_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::publish
    - PubSub::subscribe
    - PubSub::get_message
    - TestContext::connection
    - RedisResult::unwrap
    - unwrap
    - TestContext::new
    - get_payload
    - RedisResult::as_pubsub
    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:1774,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1775,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1777,1
    - Dst: redis::Connection::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:1779,1
    - Dst: redis::Connection::as_pubsub
      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: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1784,1
    - Dst: 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: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1787,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1787,1
    - Dst: redis::Connection::set
      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: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1792,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1792,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1792,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:1795,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:1813,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1813,1
    - Dst: redis::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_basic.rs:1815,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_basic.rs:1815,1
    - Dst: '&''a NodeAddress::unwrap'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1815,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1815,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:1816,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1822
      start: 1773
    functionDepth: 4
    functionLinenumber: 1773
    functionLinenumberEnd: 1822
    functionName: basic::test_pubsub_unsubscribe
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::from_redis_value_ref
    - subscribe
    - supports_resp3
    - psubscribe
    - redis::Connection::get
    - try_recv
    - Result::unwrap
    - first
    - '&''a NodeAddress::unwrap'
    - TestContext::connection
    - redis::Connection::as_pubsub
    - unwrap
    - TestContext::new
    - std::sync::mpsc::channel
    - RedisResult::unwrap
    - redis::Connection::set_push_sender
    - redis::Connection::set
    - push
    linkageType: ''
    returnType: void
    signature: fn test_pubsub_unsubscribe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1826,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1827,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1828,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1829,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1829,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1829,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:1830,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:1831,1
    - Dst: std::thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1833,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1834,1
    - Dst: subscribe
      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: Self::send
      Src: /src/redis-rs/redis/tests/test_basic.rs:1836,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1836,1
    - Dst: get_message
      Src: /src/redis-rs/redis/tests/test_basic.rs:1838,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1838,1
    - Dst: get_channel_name
      Src: /src/redis-rs/redis/tests/test_basic.rs:1839,1
    - Dst: get_payload
      Src: /src/redis-rs/redis/tests/test_basic.rs:1840,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1840,1
    - Dst: lock
      Src: /src/redis-rs/redis/tests/test_basic.rs:1841,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1841,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:1841,1
    - Dst: subscribe
      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: Self::send
      Src: /src/redis-rs/redis/tests/test_basic.rs:1851,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1851,1
    - Dst: "(\n        PendingRequest::recv"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1855,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1855,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1860,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1860,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1860,1
    - Dst: "arg(\"foo\")\n                .arg(index)\n                .query::<i32>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1860,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1860,1
    - Dst: "(\n        PendingRequest::recv"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1866,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1866,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1867,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1867,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1867,1
    - Dst: "arg(\"bar\")\n            .arg(-1)\n            .query::<i32>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:1867,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1867,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1872,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1872,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 108
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1825
    functionDepth: 7
    functionLinenumber: 1825
    functionLinenumberEnd: 1880
    functionName: basic::test_pubsub_subscribe_while_messages_are_sent
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - subscribe
    - std::sync::Arc::new
    - get_channel_name
    - redis::Connection::as_pubsub
    - TestContext::new
    - std::sync::mpsc::channel
    - push
    - redis::Cmd::arg
    - "arg(\"foo\")\n                .arg(index)\n                .query::<i32>"
    - clone
    - RedisResult::unwrap
    - redis::cmd
    - Vec::new
    - Self::join
    - std::thread::spawn
    - get_message
    - TestContext::connection
    - unwrap
    - '&mut Cmd::arg'
    - get_payload
    - "arg(\"bar\")\n            .arg(-1)\n            .query::<i32>"
    - lock
    - std::sync::Mutex::new
    - Result::unwrap
    - Self::unwrap
    - "(\n        PendingRequest::recv"
    - Self::send
    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:1884,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1885,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1888,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1892,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1892,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1893,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1893,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1883
    functionDepth: 1
    functionLinenumber: 1883
    functionLinenumberEnd: 1895
    functionName: basic::test_pubsub_unsubscribe_no_subs
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::get
    - TestContext::connection
    - unwrap
    - redis::Connection::as_pubsub
    - TestContext::new
    - redis::Connection::set
    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:1899,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1900,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1903,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1904,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1904,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1908,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1908,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1909,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1909,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1898
    functionDepth: 5
    functionLinenumber: 1898
    functionLinenumberEnd: 1911
    functionName: basic::test_pubsub_unsubscribe_one_sub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - subscribe
    - redis::Connection::get
    - TestContext::connection
    - unwrap
    - redis::Connection::as_pubsub
    - TestContext::new
    - redis::Connection::set
    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:1915,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1916,1
    - Dst: redis::Connection::as_pubsub
      Src: /src/redis-rs/redis/tests/test_basic.rs:1919,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1920,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1920,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1921,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1921,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1925,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1925,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1926,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1926,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1928
      start: 1914
    functionDepth: 5
    functionLinenumber: 1914
    functionLinenumberEnd: 1928
    functionName: basic::test_pubsub_unsubscribe_one_sub_one_psub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - subscribe
    - psubscribe
    - redis::Connection::get
    - TestContext::connection
    - unwrap
    - redis::Connection::as_pubsub
    - TestContext::new
    - RedisResult::unwrap
    - redis::Connection::set
    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:1932,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1933,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1936,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:1938,1
    - Dst: redis::Connection::subscribe
      Src: /src/redis-rs/redis/tests/test_basic.rs:1940,1
    - Dst: ControlFlow::Break
      Src: /src/redis-rs/redis/tests/test_basic.rs:1952,1
    - Dst: ControlFlow::Break
      Src: /src/redis-rs/redis/tests/test_basic.rs:1954,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1940,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:1964,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:1964,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1966,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1966,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1966,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1966,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1966,1
    - Dst: Self::join
      Src: /src/redis-rs/redis/tests/test_basic.rs:1974,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:1974,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:1977,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1977,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:1978,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1978,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1980
      start: 1931
    functionDepth: 2
    functionLinenumber: 1931
    functionLinenumberEnd: 1980
    functionName: basic::scoped_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ControlFlow::Break
    - Self::join
    - sleep
    - redis::Connection::get
    - spawn
    - expect
    - TestContext::connection
    - Duration::from_millis
    - RedisResult::unwrap
    - redis::cmd
    - TestContext::new
    - redis::Connection::subscribe
    - '&mut Cmd::arg'
    - unwrap
    - exec
    - redis::Connection::set
    linkageType: ''
    returnType: void
    signature: fn scoped_pubsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:1984,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:1985,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:1987,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:1987,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:1987,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:1987,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:1987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2007
      start: 1983
    functionDepth: 2
    functionLinenumber: 1983
    functionLinenumberEnd: 2007
    functionName: basic::test_tuple_args
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - exec
    linkageType: ''
    returnType: void
    signature: fn test_tuple_args()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2011,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2012,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2017,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2010
    functionDepth: 3
    functionLinenumber: 2010
    functionLinenumberEnd: 2030
    functionName: basic::test_nice_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Pipeline::atomic
    - get
    - ignore
    - set
    - '&mut Pipeline::set'
    - TestContext::connection
    - unwrap
    - TestContext::new
    - query
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: fn test_nice_api()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2034,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2047
      start: 2033
    functionDepth: 1
    functionLinenumber: 2033
    functionLinenumberEnd: 2047
    functionName: basic::test_auto_m_versions
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::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:2051,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2052,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2059,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2059,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2066,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2066,1
    - Dst: redis::Commands::hgetall
      Src: /src/redis-rs/redis/tests/test_basic.rs:2073,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2073,1
    - Dst: redis::Connection::hscan
      Src: /src/redis-rs/redis/tests/test_basic.rs:2098,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2098,1
    - Dst: HashSet::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2099,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2101,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:2104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2110
      start: 2050
    functionDepth: 7
    functionLinenumber: 2050
    functionLinenumberEnd: 2110
    functionName: basic::test_nice_hash_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::hscan
    - insert
    - HashSet::new
    - map
    - TestContext::connection
    - redis::Commands::hgetall
    - unwrap
    - TestContext::new
    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:2114,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2115,1
    - Dst: redis::Commands::lrange
      Src: /src/redis-rs/redis/tests/test_basic.rs:2139,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2113
    functionDepth: 1
    functionLinenumber: 2113
    functionLinenumberEnd: 2145
    functionName: basic::test_nice_list_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - expect
    - redis::Commands::lrange
    - TestContext::connection
    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:2149,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2150,1
    - Dst: redis::Connection::zrangebyscore_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2156,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2156,1
    - Dst: redis::Connection::zrangebyscore_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2161,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2148
    functionDepth: 1
    functionLinenumber: 2148
    functionLinenumberEnd: 2163
    functionName: basic::test_tuple_decoding_regression
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::zrangebyscore_withscores
    - unwrap
    - TestContext::connection
    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:2168,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2169,1
    - Dst: HashMap::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:2171,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2175,1
    - Dst: hscan::<_, (String, u32)>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2179,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2179,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2166
    functionDepth: 1
    functionLinenumber: 2166
    functionLinenumberEnd: 2197
    functionName: basic::test_tuple_decoding_from_iter
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - iter
    - HashMap::from
    - TestContext::connection
    - hscan::<_, (String, u32)>
    - unwrap
    - TestContext::new
    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:2201,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2200
    functionDepth: 1
    functionLinenumber: 2200
    functionLinenumberEnd: 2206
    functionName: basic::test_setbit_and_getbit_single_offset
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - TestContext::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:2217,1
    - Dst: max
      Src: /src/redis-rs/redis/tests/test_basic.rs:2217,1
    - Dst: '&str::len'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2217,1
    - Dst: chars
      Src: /src/redis-rs/redis/tests/test_basic.rs:2223,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_basic.rs:2223,1
    - Dst: chars
      Src: /src/redis-rs/redis/tests/test_basic.rs:2225,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2223,1
    - Dst: op
      Src: /src/redis-rs/redis/tests/test_basic.rs:2227,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 3
    argNames:
    - str1
    - str2
    - op
    argTypes:
    - '&str'
    - '&str'
    - F
    constantsTouched: []
    func_position:
      end: 2231
      start: 2213
    functionDepth: 3
    functionLinenumber: 2213
    functionLinenumberEnd: 2231
    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:
    - op
    - map
    - collect
    - max
    - zip
    - chars
    - '&str::len'
    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: run_test_if_version_supported
      Src: /src/redis-rs/redis/tests/test_basic.rs:2210,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2211,1
    - Dst: BTreeMap::from
      Src: /src/redis-rs/redis/tests/test_basic.rs:2256,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2258,1
    - Dst: Self::keys
      Src: /src/redis-rs/redis/tests/test_basic.rs:2262,1
    - Dst: cloned
      Src: /src/redis-rs/redis/tests/test_basic.rs:2262,1
    - Dst: keys().cloned().collect::<Vec<_>>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2262,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2266,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2266,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2271,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2271,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2276,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2276,1
    - Dst: choose
      Src: /src/redis-rs/redis/tests/test_basic.rs:2280,1
    - Dst: rng
      Src: /src/redis-rs/redis/tests/test_basic.rs:2280,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2280,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2282,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2282,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2288,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2288,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2295,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2295,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2302,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2302,1
    - Dst: redis::Commands::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2309,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 105
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2209
    functionDepth: 3
    functionLinenumber: 2209
    functionLinenumberEnd: 2311
    functionName: basic::test_bit_operations
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - keys().cloned().collect::<Vec<_>>
    - BTreeMap::from
    - redis::Commands::get
    - run_test_if_version_supported
    - choose
    - rng
    - unwrap
    - Self::iter
    - Self::keys
    - cloned
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_bit_operations()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2315,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2316,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2318,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2318,1
    - Dst: TestContext::stop_server
      Src: /src/redis-rs/redis/tests/test_basic.rs:2321,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2323,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:2323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2314
    functionDepth: 2
    functionLinenumber: 2314
    functionLinenumberEnd: 2328
    functionName: basic::test_redis_server_down
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - TestContext::connection
    - TestContext::stop_server
    - redis::cmd
    - TestContext::new
    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:2332,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2333,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2335,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2335,1
    - Dst: redis::Connection::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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2372
      start: 2331
    functionDepth: 1
    functionLinenumber: 2331
    functionLinenumberEnd: 2372
    functionName: basic::test_zinterstore_weights
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::zadd_multiple
    - unwrap
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_zinterstore_weights()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2376,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2377,1
    - Dst: redis::Connection::zadd_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:2379,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2379,1
    - Dst: redis::Connection::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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2375
    functionDepth: 1
    functionLinenumber: 2375
    functionLinenumberEnd: 2437
    functionName: basic::test_zunionstore_weights
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::zadd_multiple
    - unwrap
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_zunionstore_weights()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2441,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2442,1
    - Dst: redis::Connection::zrembylex
      Src: /src/redis-rs/redis/tests/test_basic.rs:2461,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2461,1
    - Dst: redis::Connection::zrange
      Src: /src/redis-rs/redis/tests/test_basic.rs:2464,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2466
      start: 2440
    functionDepth: 1
    functionLinenumber: 2440
    functionLinenumberEnd: 2466
    functionName: basic::test_zrembylex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::zrange
    - unwrap
    - TestContext::new
    - redis::Connection::zrembylex
    linkageType: ''
    returnType: void
    signature: fn test_zrembylex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2473,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2474,1
    - Dst: redis::Connection::zadd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2477,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2477,1
    - Dst: redis::Connection::zrandmember
      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: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2482,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2482,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2482,1
    - Dst: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2486,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2486,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2486,1
    - Dst: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2498,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2498,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2498,1
    - Dst: redis::Connection::zrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2501,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:2501,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2501,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:2504,1
    - Dst: redis::Connection::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2505,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2505,1
    - Dst: redis::Connection::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2508,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2508,1
    - Dst: redis::Connection::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2512,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2512,1
    - Dst: redis::Connection::zrandmember_withscores
      Src: /src/redis-rs/redis/tests/test_basic.rs:2515,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2517
      start: 2472
    functionDepth: 1
    functionLinenumber: 2472
    functionLinenumberEnd: 2517
    functionName: basic::test_zrandmember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Some
    - supports_resp3
    - redis::Connection::zrandmember_withscores
    - redis::Connection::zadd
    - TestContext::connection
    - unwrap
    - TestContext::new
    - redis::Connection::zrandmember
    linkageType: ''
    returnType: void
    signature: fn test_zrandmember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2521,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2522,1
    - Dst: redis::Connection::sismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2527,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2527,1
    - Dst: redis::Connection::sismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2530,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2532
      start: 2520
    functionDepth: 1
    functionLinenumber: 2520
    functionLinenumberEnd: 2532
    functionName: basic::test_sismember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::sismember
    - unwrap
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_sismember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2539,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2540,1
    - Dst: redis::Connection::smismember
      Src: /src/redis-rs/redis/tests/test_basic.rs:2544,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2546
      start: 2538
    functionDepth: 1
    functionLinenumber: 2538
    functionLinenumberEnd: 2546
    functionName: basic::test_smismember
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::smismember
    - unwrap
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_smismember()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2550,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2551,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2553,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2553,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2554,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2554,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:2571,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:2571,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:2571,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:2571,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:2571,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2571,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2578,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2549
    functionDepth: 2
    functionLinenumber: 2549
    functionLinenumberEnd: 2582
    functionName: basic::test_object_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - redis::Connection::get
    - arg
    - TestContext::connection
    - unwrap
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    - RedisResult::unwrap
    - exec
    - redis::Connection::set
    linkageType: ''
    returnType: void
    signature: fn test_object_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2586,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2587,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2589,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2589,1
    - Dst: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2590,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2590,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2590,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2590,1
    - Dst: TlsFilePaths::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2594,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2590,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2598,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2598,1
    - Dst: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2599,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2599,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:2599,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:2599,1
    - Dst: TlsFilePaths::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2603,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:2599,1
    - Dst: redis::Connection::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: redis::Connection::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2610,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2585
    functionDepth: 3
    functionLinenumber: 2585
    functionLinenumberEnd: 2612
    functionName: basic::test_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - map
    - collect
    - redis::Connection::mget
    - TestContext::connection
    - TlsFilePaths::unwrap
    - unwrap
    - TestContext::new
    - redis::Connection::set
    linkageType: ''
    returnType: void
    signature: fn test_mget()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2616,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2617,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2619,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2619,1
    - Dst: redis::Commands::mget
      Src: /src/redis-rs/redis/tests/test_basic.rs:2622,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2624
      start: 2615
    functionDepth: 1
    functionLinenumber: 2615
    functionLinenumberEnd: 2624
    functionName: basic::test_variable_length_get
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - unwrap
    - TestContext::new
    - redis::Commands::mget
    - redis::Connection::set
    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:2628,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2629,1
    - Dst: redis::Connection::rename
      Src: /src/redis-rs/redis/tests/test_basic.rs:2633,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2627
    functionDepth: 1
    functionLinenumber: 2627
    functionLinenumberEnd: 2635
    functionName: basic::test_multi_generics
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::rename
    - unwrap
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_multi_generics()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2639,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2640,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2642,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2642,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2643,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2643,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2646,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2646,1
    - Dst: redis::Connection::set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2647,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2649
      start: 2638
    functionDepth: 8
    functionLinenumber: 2638
    functionLinenumberEnd: 2649
    functionName: basic::test_set_options_with_get
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - SetOptions::default
    - TestContext::connection
    - Self::get
    - unwrap
    - TestContext::new
    - redis::Connection::set_options
    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:2653,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2656,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2656,1
    - Dst: Self::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2656,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2656,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2659,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2661,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2663,1
    - Dst: Self::conditional_set
      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: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2663,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2666,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2668,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2670,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2670,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2670,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2674,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2676,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2676,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2676,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:2678,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2680,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2682,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2682,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2682,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2652
    functionDepth: 8
    functionLinenumber: 2652
    functionLinenumberEnd: 2685
    functionName: basic::test_set_options_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - with_expiration
    - Self::conditional_set
    - SetOptions::default
    - SetExpiry::EXAT
    - Self::with_expiration
    - SetExpiry::PX
    - SetExpiry::EX
    - Self::get
    - assert_args
    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:2689,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2695,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2695,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2695,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2696,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2697,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2697,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2697,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2698,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2699,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2700,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2701,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2701,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2701,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2702,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2705,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2705,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2705,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2707,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2705,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2705,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2709,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2710,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2711,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2711,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2711,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2713,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2711,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2711,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2715,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2716,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2717,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2717,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2717,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2719,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2717,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2717,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2721,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2722,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2723,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:2723,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2723,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2725,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2723,1
    - Dst: with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:2723,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:2727,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:2728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2688
    functionDepth: 8
    functionLinenumber: 2688
    functionLinenumberEnd: 2729
    functionName: basic::test_set_options_value_comparison
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::value_comparison
    - get
    - ValueComparison::ifeq
    - ValueComparison::ifdne
    - with_expiration
    - Self::conditional_set
    - SetOptions::default
    - SetExpiry::PX
    - SetExpiry::EX
    - assert_args
    - ValueComparison::ifdeq
    - ValueComparison::ifne
    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:2734,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2735,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2747,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2751,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2751,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2752,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2751,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2747,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2762,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2766,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2766,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2767,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2766,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2762,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2775,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2779,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2779,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2780,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2779,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2788
      start: 2733
    functionDepth: 8
    functionLinenumber: 2733
    functionLinenumberEnd: 2788
    functionName: basic::test_set_value_comparison_value_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::value_comparison
    - get
    - ValueComparison::ifeq
    - SetOptions::default
    - run_test_if_version_supported
    - unwrap
    - set_options
    - connection
    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:2793,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2794,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2806,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2810,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2810,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2811,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2810,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2806,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2822,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2826,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2826,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2827,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2826,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2822,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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2853
      start: 2792
    functionDepth: 8
    functionLinenumber: 2792
    functionLinenumberEnd: 2853
    functionName: basic::test_set_value_comparison_value_not_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::value_comparison
    - get
    - SetOptions::default
    - run_test_if_version_supported
    - unwrap
    - set_options
    - ValueComparison::ifne
    - connection
    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:2858,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2859,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2865,1
    - Dst: String::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:2870,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2871,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/tests/test_basic.rs:2875,1
    - Dst: fill_bytes
      Src: /src/redis-rs/redis/tests/test_basic.rs:2877,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2878,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2897
      start: 2857
    functionDepth: 7
    functionLinenumber: 2857
    functionLinenumberEnd: 2897
    functionName: basic::test_digest_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - run_test_if_version_supported
    - String::new
    - calculate_value_digest
    - fill_bytes
    - 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:2902,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2903,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2915,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2918,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2922,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2922,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2923,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2922,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2918,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2933,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2937,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2937,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2938,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2937,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2933,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2946,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2947,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2951,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2951,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:2952,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2951,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2960
      start: 2901
    functionDepth: 8
    functionLinenumber: 2901
    functionLinenumberEnd: 2960
    functionName: basic::test_set_value_comparison_digest_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::value_comparison
    - get
    - SetOptions::default
    - run_test_if_version_supported
    - calculate_value_digest
    - unwrap
    - set_options
    - ValueComparison::ifdeq
    - connection
    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:2965,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:2966,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:2978,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2979,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2983,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2983,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2984,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2983,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2979,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:2994,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:2998,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:2998,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:2999,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:2998,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:2994,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3014,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3016,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3020,1
    - Dst: Self::value_comparison
      Src: /src/redis-rs/redis/tests/test_basic.rs:3020,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3021,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3020,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3029
      start: 2964
    functionDepth: 8
    functionLinenumber: 2964
    functionLinenumberEnd: 3029
    functionName: basic::test_set_value_comparison_digest_not_equals
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::value_comparison
    - get
    - ValueComparison::ifdne
    - SetOptions::default
    - run_test_if_version_supported
    - calculate_value_digest
    - unwrap
    - set_options
    - connection
    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:3033,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3034,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3040,1
    - Dst: calculate_value_digest
      Src: /src/redis-rs/redis/tests/test_basic.rs:3041,1
    - Dst: ValueComparison::ifeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:3044,1
    - Dst: ValueComparison::ifne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3045,1
    - Dst: ValueComparison::ifdeq
      Src: /src/redis-rs/redis/tests/test_basic.rs:3046,1
    - Dst: ValueComparison::ifdne
      Src: /src/redis-rs/redis/tests/test_basic.rs:3047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3117
      start: 3032
    functionDepth: 1
    functionLinenumber: 3032
    functionLinenumberEnd: 3117
    functionName: basic::test_del_ex
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - ValueComparison::ifeq
    - ValueComparison::ifdne
    - run_test_if_version_supported
    - calculate_value_digest
    - ValueComparison::ifdeq
    - ValueComparison::ifne
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_del_ex()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3125,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3125,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3126,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3127,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3127,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3128,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3131,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3131,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3131,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3132,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3133,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3133,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3133,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3134,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3135,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3135,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3135,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3136,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3137,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3137,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3137,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3138,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3139,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3139,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3140,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3143,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3143,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3143,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3145,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3146,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3148,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3148,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3148,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3150,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3151,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3153,1
    - Dst: Self::conditional_set
      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: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3157
      start: 3121
    functionDepth: 8
    functionLinenumber: 3121
    functionLinenumberEnd: 3157
    functionName: basic::test_mset_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - MSetOptions::default
    - Self::conditional_set
    - SetExpiry::PXAT
    - SetExpiry::EXAT
    - Self::with_expiration
    - SetExpiry::EX
    - SetExpiry::PX
    - assert_args
    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:3162,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3163,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3176,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3203
      start: 3161
    functionDepth: 8
    functionLinenumber: 3161
    functionLinenumberEnd: 3203
    functionName: basic::test_mset_ex_nx
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - MSetOptions::default
    - 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:3208,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3209,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3223,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3223,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3232,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3257
      start: 3207
    functionDepth: 8
    functionLinenumber: 3207
    functionLinenumberEnd: 3257
    functionName: basic::test_mset_ex_xx
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - MSetOptions::default
    - 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:3262,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3263,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:3265,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:3265,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3265,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3285,1
    - Dst: SetExpiry::PX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3286,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3289,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:3289,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3293,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3293,1
    - Dst: SetExpiry::EX
      Src: /src/redis-rs/redis/tests/test_basic.rs:3295,1
    - Dst: MSetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3301,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3302,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:3302,1
    - Dst: Self::conditional_set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3305,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3305,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3322,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3328
      start: 3261
    functionDepth: 8
    functionLinenumber: 3261
    functionLinenumberEnd: 3328
    functionName: basic::test_mset_ex_expiration_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - iter
    - as_secs
    - MSetOptions::default
    - Self::conditional_set
    - SetExpiry::PXAT
    - run_test_if_version_supported
    - as_millis
    - SetExpiry::EXAT
    - sleep
    - Self::with_expiration
    - SystemTime::now
    - SetExpiry::EX
    - SetExpiry::PX
    - Duration::from_millis
    - enumerate
    - unwrap
    - duration_since
    - connection
    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:3332,1
    - Dst: CopyOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3335,1
    - Dst: Self::db
      Src: /src/redis-rs/redis/tests/test_basic.rs:3335,1
    - Dst: i64::replace
      Src: /src/redis-rs/redis/tests/test_basic.rs:3335,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/tests/test_basic.rs:3337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3338
      start: 3331
    functionDepth: 1
    functionLinenumber: 3331
    functionLinenumberEnd: 3338
    functionName: basic::test_copy_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - assert_args
    - CopyOptions::default
    - i64::replace
    - Self::db
    linkageType: ''
    returnType: void
    signature: fn test_copy_options()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3342,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3343,1
    - Dst: CopyOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3345,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3346,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3346,1
    - Dst: redis::Connection::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3347,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3347,1
    - Dst: redis::Connection::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3352,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3352,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3357,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3357,1
    - Dst: redis::Connection::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3358,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3358,1
    - Dst: redis::Connection::copy
      Src: /src/redis-rs/redis/tests/test_basic.rs:3363,1
    - Dst: Self::replace
      Src: /src/redis-rs/redis/tests/test_basic.rs:3363,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3366
      start: 3341
    functionDepth: 1
    functionLinenumber: 3341
    functionLinenumberEnd: 3366
    functionName: basic::test_copy
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - CopyOptions::default
    - unwrap
    - Self::replace
    - TestContext::new
    - redis::Connection::copy
    - redis::Connection::set
    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:3371,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3373,1
    - Dst: SystemTime::now
      Src: /src/redis-rs/redis/tests/test_basic.rs:3375,1
    - Dst: duration_since
      Src: /src/redis-rs/redis/tests/test_basic.rs:3375,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3375,1
    - Dst: as_secs
      Src: /src/redis-rs/redis/tests/test_basic.rs:3375,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3379,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3382,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3382,1
    - Dst: SetExpiry::EXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3382,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3379,1
    - Dst: expire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:3385,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3385,1
    - Dst: set_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3391,1
    - Dst: SetOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3394,1
    - Dst: Self::with_expiration
      Src: /src/redis-rs/redis/tests/test_basic.rs:3394,1
    - Dst: SetExpiry::PXAT
      Src: /src/redis-rs/redis/tests/test_basic.rs:3394,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3391,1
    - Dst: pexpire_time
      Src: /src/redis-rs/redis/tests/test_basic.rs:3397,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3402
      start: 3369
    functionDepth: 9
    functionLinenumber: 3369
    functionLinenumberEnd: 3402
    functionName: basic::test_expire_time
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - as_secs
    - pexpire_time
    - SetOptions::default
    - run_test_if_version_supported
    - expire_time
    - SetExpiry::EXAT
    - SetExpiry::PXAT
    - Self::with_expiration
    - SystemTime::now
    - unwrap
    - set_options
    - duration_since
    - connection
    linkageType: ''
    returnType: void
    signature: fn test_expire_time()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3406,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3407,1
    - Dst: redis::Connection::set
      Src: /src/redis-rs/redis/tests/test_basic.rs:3409,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3409,1
    - Dst: redis::Connection::set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:3411,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3411,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3411,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3411,1
    - Dst: redis::Connection::blpop
      Src: /src/redis-rs/redis/tests/test_basic.rs:3416,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3421,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3421,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3425,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:3425,1
    - Dst: RedisResult::is_ok
      Src: /src/redis-rs/redis/tests/test_basic.rs:3425,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3428,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3428,1
    - Dst: redis::Connection::get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3431,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3431,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3433
      start: 3405
    functionDepth: 1
    functionLinenumber: 3405
    functionLinenumberEnd: 3433
    functionName: basic::test_timeout_leaves_usable_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Some
    - redis::Connection::blpop
    - cmd
    - Cmd::exec
    - sleep
    - redis::Connection::get
    - TestContext::connection
    - Duration::from_millis
    - redis::Connection::set_read_timeout
    - unwrap
    - RedisResult::unwrap
    - TestContext::new
    - redis::Connection::set
    - RedisResult::is_ok
    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:3440,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_basic.rs:3440,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3440,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3440,1
    - Dst: std::io::BufReader::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:3442,1
    - Dst: try_clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3442,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3442,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_basic.rs:3446,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3447,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3447,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3447,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3447,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3452,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3452,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3452,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3452,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/tests/test_basic.rs:3457,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/tests/test_basic.rs:3457,1
    - Dst: RedisServer::read_exact
      Src: /src/redis-rs/redis/tests/test_basic.rs:3459,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3459,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3460,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3460,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:3464,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:3464,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3464,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/tests/test_basic.rs:3464,1
    - Dst: RedisServer::read_exact
      Src: /src/redis-rs/redis/tests/test_basic.rs:3466,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3466,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 Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3468,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3470,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3470,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3471,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3471,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3472,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3472,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 Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_basic.rs:3473,1
    - Dst: write_all
      Src: /src/redis-rs/redis/tests/test_basic.rs:3474,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3474,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 98
    argCount: 1
    argNames:
    - listener
    argTypes:
    - std::net::TcpListener
    constantsTouched: []
    func_position:
      end: 3480
      start: 3439
    functionDepth: 2
    functionLinenumber: 3439
    functionLinenumberEnd: 3480
    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:
    - Vec::len
    - cmd
    - sleep
    - '&mut Cmd::get_packed_command'
    - arg
    - get_packed_pipeline
    - try_clone
    - Cmd::arg
    - Duration::from_millis
    - std::net::TcpListener::incoming
    - next
    - unwrap
    - '&mut Cmd::arg'
    - std::io::BufReader::new
    - RedisServer::read_exact
    - write_all
    - redis::pipe
    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:3482,1
    - Dst: TcpListener::local_addr
      Src: /src/redis-rs/redis/tests/test_basic.rs:3483,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3483,1
    - Dst: port
      Src: /src/redis-rs/redis/tests/test_basic.rs:3483,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:3484,1
    - Dst: fake_redis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3484,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:3486,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3486,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3487,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3487,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:3488,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3488,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3488,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3488,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3491,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:3495,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:3495,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_basic.rs:3497,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3497,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 137
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3436
    functionDepth: 8
    functionLinenumber: 3436
    functionLinenumberEnd: 3499
    functionName: basic::test_timeout_in_middle_of_message_leaves_connection_usable
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TcpListener::local_addr
    - set_read_timeout
    - port
    - Some
    - get
    - get_connection
    - sleep
    - redis::Client::open
    - Duration::from_millis
    - get_listener_on_free_port
    - unwrap
    - fake_redis
    - RedisResult::unwrap
    - thread::spawn
    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:3503,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3504,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_basic.rs:3510,1
    - Dst: redis::Connection::bzpopmin
      Src: /src/redis-rs/redis/tests/test_basic.rs:3522,1
    - Dst: redis::Connection::bzpopmax
      Src: /src/redis-rs/redis/tests/test_basic.rs:3523,1
    - Dst: redis::Connection::bzmpop_min
      Src: /src/redis-rs/redis/tests/test_basic.rs:3535,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:3535,1
    - Dst: redis::Connection::bzmpop_max
      Src: /src/redis-rs/redis/tests/test_basic.rs:3536,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/tests/test_basic.rs:3536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3541
      start: 3502
    functionDepth: 1
    functionLinenumber: 3502
    functionLinenumberEnd: 3541
    functionName: basic::test_blocking_sorted_set_api
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::get_version
    - redis::Connection::bzpopmax
    - redis::Connection::bzmpop_min
    - redis::Connection::bzmpop_max
    - as_slice
    - TestContext::connection
    - TestContext::new
    - redis::Connection::bzpopmin
    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:3545,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3546,1
    - Dst: SortedSetAddOptions::add_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3550,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3559,1
    - Dst: include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3566,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3576,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3576,1
    - Dst: SortedSetAddOptions::update_only
      Src: /src/redis-rs/redis/tests/test_basic.rs:3585,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3585,1
    - Dst: SortedSetAddOptions::add_or_update
      Src: /src/redis-rs/redis/tests/test_basic.rs:3594,1
    - Dst: include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3602,1
    - Dst: SortedSetAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3608,1
    - Dst: Self::increment_score
      Src: /src/redis-rs/redis/tests/test_basic.rs:3608,1
    - Dst: Self::include_changed_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3616
      start: 3544
    functionDepth: 8
    functionLinenumber: 3544
    functionLinenumberEnd: 3616
    functionName: basic::test_sorted_set_add_options
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Some
    - Self::include_changed_count
    - SortedSetAddOptions::update_only
    - Self::increment_score
    - include_changed_count
    - TestContext::connection
    - SortedSetAddOptions::default
    - TestContext::new
    - SortedSetAddOptions::add_only
    - SortedSetAddOptions::add_or_update
    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:3621,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3622,1
    - Dst: vemb
      Src: /src/redis-rs/redis/tests/test_basic.rs:3646,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3646,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3648,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:3648,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3700
      start: 3620
    functionDepth: 2
    functionLinenumber: 3620
    functionLinenumberEnd: 3700
    functionName: basic::test_vector_sets_basic_operations
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - iter
    - run_test_if_version_supported
    - enumerate
    - unwrap
    - vemb
    - connection
    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:3705,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3706,1
    - Dst: VAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3742,1
    - Dst: Self::set_attributes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3742,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3742,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3755,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3756,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3755,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3770,1
    - Dst: VectorSimilaritySearchInput::Fp32
      Src: /src/redis-rs/redis/tests/test_basic.rs:3771,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3770,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3774,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3777,1
    - Dst: EmbeddingInput::Float32
      Src: /src/redis-rs/redis/tests/test_basic.rs:3777,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3774,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3781,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3784,1
    - Dst: EmbeddingInput::Float64
      Src: /src/redis-rs/redis/tests/test_basic.rs:3784,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3781,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:3788,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:3791,1
    - Dst: EmbeddingInput::String
      Src: /src/redis-rs/redis/tests/test_basic.rs:3791,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3788,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3801,1
    - Dst: Self::set_with_scores
      Src: /src/redis-rs/redis/tests/test_basic.rs:3801,1
    - Dst: Self::set_count
      Src: /src/redis-rs/redis/tests/test_basic.rs:3801,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3805,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3808,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3805,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_basic.rs:3824,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3825,1
    - Dst: find_map
      Src: /src/redis-rs/redis/tests/test_basic.rs:3825,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_basic.rs:3827,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3836,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3847,1
    - Dst: Self::set_filter_expression
      Src: /src/redis-rs/redis/tests/test_basic.rs:3847,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3848,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3851,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3848,1
    - Dst: VSimOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3866,1
    - Dst: Self::set_filter_expression
      Src: /src/redis-rs/redis/tests/test_basic.rs:3866,1
    - Dst: vsim_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3867,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:3870,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3867,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3881
      start: 3704
    functionDepth: 8
    functionLinenumber: 3704
    functionLinenumberEnd: 3881
    functionName: basic::test_vector_sets_similarity_search
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - VSimOptions::default
    - Some
    - Self::set_filter_expression
    - run_test_if_version_supported
    - VectorSimilaritySearchInput::Fp32
    - EmbeddingInput::String
    - vsim_options
    - Self::set_count
    - EmbeddingInput::Float64
    - clone
    - vsim
    - Self::set_with_scores
    - VectorSimilaritySearchInput::Values
    - find_map
    - VAddOptions::default
    - VectorSimilaritySearchInput::Element
    - iter
    - unwrap
    - connection
    - Self::unwrap
    - Self::set_attributes
    - redis_value
    - EmbeddingInput::Float32
    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:3886,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:3887,1
    - Dst: VAddOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3919,1
    - Dst: Self::set_reduction_dimension
      Src: /src/redis-rs/redis/tests/test_basic.rs:3919,1
    - Dst: Self::set_check_and_set_style
      Src: /src/redis-rs/redis/tests/test_basic.rs:3919,1
    - Dst: Self::set_quantization
      Src: /src/redis-rs/redis/tests/test_basic.rs:3919,1
    - Dst: Self::set_build_exploration_factor
      Src: /src/redis-rs/redis/tests/test_basic.rs:3919,1
    - Dst: Self::set_max_number_of_links
      Src: /src/redis-rs/redis/tests/test_basic.rs:3919,1
    - Dst: Self::set_attributes
      Src: /src/redis-rs/redis/tests/test_basic.rs:3928,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:3928,1
    - Dst: vemb
      Src: /src/redis-rs/redis/tests/test_basic.rs:3936,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3936,1
    - Dst: vemb_options
      Src: /src/redis-rs/redis/tests/test_basic.rs:3940,1
    - Dst: VEmbOptions::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:3944,1
    - Dst: Self::set_raw_representation
      Src: /src/redis-rs/redis/tests/test_basic.rs:3944,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3940,1
    - Dst: vinfo
      Src: /src/redis-rs/redis/tests/test_basic.rs:3960,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3960,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3960,1
    - Dst: vlinks
      Src: /src/redis-rs/redis/tests/test_basic.rs:3987,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:3987,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:3995,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:3995,1
    - Dst: vlinks_with_scores
      Src: /src/redis-rs/redis/tests/test_basic.rs:4006,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4006,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4021,1
    - Dst: zip
      Src: /src/redis-rs/redis/tests/test_basic.rs:4021,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4023,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_basic.rs:4021,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4071,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_basic.rs:4071,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4073,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_basic.rs:4071,1
    - Dst: vrandmember
      Src: /src/redis-rs/redis/tests/test_basic.rs:4076,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4076,1
    - Dst: vrandmember_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:4080,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:4081,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4080,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4085,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_basic.rs:4085,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_basic.rs:4085,1
    - Dst: vrandmember_multiple
      Src: /src/redis-rs/redis/tests/test_basic.rs:4089,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/test_basic.rs:4090,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4089,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_basic.rs:4093,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_basic.rs:4093,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_basic.rs:4093,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 164
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4111
      start: 3885
    functionDepth: 8
    functionLinenumber: 3885
    functionLinenumberEnd: 4111
    functionName: basic::test_vector_sets_auxiliary_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - Self::set_raw_representation
    - run_test_if_version_supported
    - vrandmember
    - all
    - map
    - clone
    - contains
    - vlinks_with_scores
    - Self::set_reduction_dimension
    - vrandmember_multiple
    - Self::set_max_number_of_links
    - vlinks
    - Self::set_build_exploration_factor
    - VAddOptions::default
    - iter
    - Self::set_check_and_set_style
    - enumerate
    - VEmbOptions::default
    - unwrap
    - connection
    - Self::set_quantization
    - '&''static str::to_string'
    - Self::set_attributes
    - collect
    - len
    - zip
    - vemb
    - vinfo
    - vemb_options
    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:4116,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4117,1
    - Dst: vdim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4126,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4128,1
    - Dst: vadd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4160,1
    - Dst: VectorAddInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:4162,1
    - Dst: EmbeddingInput::Float32
      Src: /src/redis-rs/redis/tests/test_basic.rs:4162,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4169,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4212,1
    - Dst: VectorSimilaritySearchInput::Values
      Src: /src/redis-rs/redis/tests/test_basic.rs:4215,1
    - Dst: EmbeddingInput::Float64
      Src: /src/redis-rs/redis/tests/test_basic.rs:4215,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4212,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4220,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:4223,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4220,1
    - Dst: vsim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4229,1
    - Dst: VectorSimilaritySearchInput::Element
      Src: /src/redis-rs/redis/tests/test_basic.rs:4231,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4239
      start: 4115
    functionDepth: 1
    functionLinenumber: 4115
    functionLinenumberEnd: 4239
    functionName: basic::test_vector_sets_edge_cases
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - VectorSimilaritySearchInput::Element
    - vdim
    - EmbeddingInput::Float64
    - VectorAddInput::Values
    - run_test_if_version_supported
    - vsim
    - vadd
    - unwrap_err
    - VectorSimilaritySearchInput::Values
    - unwrap
    - EmbeddingInput::Float32
    - connection
    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:4243,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:4244,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_basic.rs:4244,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4245,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4245,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4247,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4247,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4249,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4249,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4250,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4251,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4252,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4252,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4252,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4252,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4252,1
    - Dst: build_simple_pipeline_for_invalidation
      Src: /src/redis-rs/redis/tests/test_basic.rs:4257,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4259,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4260,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4260,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4261,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4261,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4267,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4268,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:4268,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4269,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4270,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4271,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4272,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4272,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4279,1
    - Dst: Pipeline::query
      Src: /src/redis-rs/redis/tests/test_basic.rs:4281,1
    - Dst: get_int
      Src: /src/redis-rs/redis/tests/test_basic.rs:4282,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4286
      start: 4242
    functionDepth: 8
    functionLinenumber: 4242
    functionLinenumberEnd: 4286
    functionName: basic::test_push_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - cmd
    - redis::Client::open
    - TestContext::new
    - std::sync::mpsc::channel
    - set_push_sender
    - try_recv
    - clone
    - RedisResult::unwrap
    - Self::set_protocol
    - exec
    - RedisConnectionInfo::default
    - Pipeline::query
    - set_redis_settings
    - connection_info
    - get_int
    - drop
    - '&mut Cmd::arg'
    - unwrap
    - get_connection
    - build_simple_pipeline_for_invalidation
    - Cmd::arg
    linkageType: ''
    returnType: void
    signature: fn test_push_manager()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4290,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/tests/test_basic.rs:4291,1
    - Dst: Self::set_protocol
      Src: /src/redis-rs/redis/tests/test_basic.rs:4291,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4292,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4292,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4293,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4293,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4295,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4295,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4296,1
    - Dst: set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4297,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_basic.rs:4297,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:4299,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4299,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_basic.rs:4304,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_basic.rs:4305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4308
      start: 4289
    functionDepth: 8
    functionLinenumber: 4289
    functionLinenumberEnd: 4308
    functionName: basic::test_push_manager_disconnection
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - set_push_sender
    - get_connection
    - set
    - clone
    - set_redis_settings
    - connection_info
    - redis::Client::open
    - drop
    - Self::set_protocol
    - RedisResult::unwrap
    - TestContext::new
    - std::sync::mpsc::channel
    - unwrap
    - RedisConnectionInfo::default
    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:4313,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4314,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4317,1
    - Dst: std::sync::mpsc::channel
      Src: /src/redis-rs/redis/tests/test_basic.rs:4319,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4320,1
    - Dst: redis::Connection::set_push_sender
      Src: /src/redis-rs/redis/tests/test_basic.rs:4321,1
    - Dst: redis::Connection::subscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4323,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4323,1
    - Dst: redis::Connection::psubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4324,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4324,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4327,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4327,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4327,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4327,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4327,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4336,1
    - Dst: redis::Cmd::exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4336,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4336,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4341,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4341,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_basic.rs:4342,1
    - Dst: redis::Connection::unsubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4377,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4377,1
    - Dst: redis::Connection::punsubscribe_resp3
      Src: /src/redis-rs/redis/tests/test_basic.rs:4378,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4378,1
    - Dst: redis::Connection::ping
      Src: /src/redis-rs/redis/tests/test_basic.rs:4379,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4379,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4385,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4385,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4393,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4393,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/tests/test_basic.rs:4403,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4404
      start: 4311
    functionDepth: 4
    functionLinenumber: 4311
    functionLinenumberEnd: 4404
    functionName: basic::test_raw_pubsub_with_push_manager
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::unsubscribe_resp3
    - redis::Connection::subscribe_resp3
    - supports_resp3
    - unwrap_err
    - TestContext::new
    - std::sync::mpsc::channel
    - push
    - redis::Cmd::arg
    - try_recv
    - RedisResult::unwrap
    - redis::cmd
    - redis::Connection::psubscribe_resp3
    - redis::Connection::set_push_sender
    - exec
    - redis::Cmd::exec
    - redis::Connection::ping
    - TestContext::connection
    - '&mut Cmd::arg'
    - unwrap
    - redis::Connection::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:4408,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4409,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_basic.rs:4409,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4410,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4410,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4412,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4412,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4413,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4413,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4414,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4414,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4414,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4419
      start: 4407
    functionDepth: 9
    functionLinenumber: 4407
    functionLinenumberEnd: 4419
    functionName: basic::test_select_db
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - get_connection
    - redis_settings
    - set_redis_settings
    - connection_info
    - RedisConnectionInfo::set_db
    - redis::Client::open
    - RedisResult::unwrap
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::query'
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn test_select_db()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4423,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4424,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4425,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4425,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4425,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/test_basic.rs:4425,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4425,1
    - Dst: redis::Connection::client_getname
      Src: /src/redis-rs/redis/tests/test_basic.rs:4430,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4430,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4432
      start: 4422
    functionDepth: 2
    functionLinenumber: 4422
    functionLinenumberEnd: 4432
    functionName: basic::test_client_getname
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - redis::Connection::client_getname
    - unwrap
    - exec
    linkageType: ''
    returnType: void
    signature: fn test_client_getname()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4436,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4437,1
    - Dst: redis::Connection::client_id
      Src: /src/redis-rs/redis/tests/test_basic.rs:4438,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4439
      start: 4435
    functionDepth: 1
    functionLinenumber: 4435
    functionLinenumberEnd: 4439
    functionName: basic::test_client_id
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - TestContext::new
    - redis::Connection::client_id
    - unwrap
    - TestContext::connection
    linkageType: ''
    returnType: void
    signature: fn test_client_id()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4443,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4444,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4446,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4446,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4446,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4448
      start: 4442
    functionDepth: 3
    functionLinenumber: 4442
    functionLinenumberEnd: 4448
    functionName: basic::test_client_setname
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - TestContext::connection
    - '&mut Cmd::query'
    - redis::cmd
    - TestContext::new
    - 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:4452,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4453,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4454,1
    - Dst: query::<Role>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4454,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4456
      start: 4451
    functionDepth: 2
    functionLinenumber: 4451
    functionLinenumberEnd: 4456
    functionName: basic::test_role_primary
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - query::<Role>
    - TestContext::connection
    - unwrap
    - redis::cmd
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_role_primary()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4460,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4461,1
    - Dst: thread::spawn
      Src: /src/redis-rs/redis/tests/test_basic.rs:4463,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: "arg(\"SLEEP\")\n                .arg(\"0.1\")\n                .query::<()>"
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4464,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/tests/test_basic.rs:4472,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:4472,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4474,1
    - Dst: RedisConnectionInfo::set_db
      Src: /src/redis-rs/redis/tests/test_basic.rs:4474,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4475,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4475,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4477,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4477,1
    - Dst: get_connection_with_timeout
      Src: /src/redis-rs/redis/tests/test_basic.rs:4478,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_basic.rs:4478,1
    - Dst: join
      Src: /src/redis-rs/redis/tests/test_basic.rs:4482,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4483
      start: 4459
    functionDepth: 9
    functionLinenumber: 4459
    functionLinenumberEnd: 4483
    functionName: basic::test_connection_timeout_on_busy_server
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - join
    - cmd
    - redis_settings
    - set_redis_settings
    - connection_info
    - thread::sleep
    - TestContext::connection
    - Cmd::arg
    - RedisConnectionInfo::set_db
    - Duration::from_millis
    - Client::open
    - get_connection_with_timeout
    - "arg(\"SLEEP\")\n                .arg(\"0.1\")\n                .query::<()>"
    - '&mut Cmd::arg'
    - unwrap
    - TestContext::new
    - RedisResult::unwrap
    - thread::spawn
    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:4487,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4488,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4490,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4490,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4490,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4496,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4496,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_basic.rs:4496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4501
      start: 4486
    functionDepth: 4
    functionLinenumber: 4486
    functionLinenumberEnd: 4501
    functionName: basic::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - redis::Cmd::new
    - unwrap_err
    - TestContext::connection
    - redis::Pipeline::new
    - TestContext::new
    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:4506,1
    - Dst: redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4509,1
    - Dst: RedisConnectionInfo::set_lib_name
      Src: /src/redis-rs/redis/tests/test_basic.rs:4509,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_basic.rs:4510,1
    - Dst: set_redis_settings
      Src: /src/redis-rs/redis/tests/test_basic.rs:4510,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/tests/test_basic.rs:4513,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4513,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/test_basic.rs:4514,1
    - Dst: RedisResult::expect
      Src: /src/redis-rs/redis/tests/test_basic.rs:4514,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_basic.rs:4519,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_basic.rs:4519,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/tests/test_basic.rs:4519,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_basic.rs:4519,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_basic.rs:4520,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_basic.rs:4521,1
    - Dst: splitn
      Src: /src/redis-rs/redis/tests/test_basic.rs:4522,1
    - Dst: splitn(2, '=').collect::<Vec<&str>>
      Src: /src/redis-rs/redis/tests/test_basic.rs:4522,1
    - Dst: HashMap::insert
      Src: /src/redis-rs/redis/tests/test_basic.rs:4523,1
    - Dst: trim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4523,1
    - Dst: trim
      Src: /src/redis-rs/redis/tests/test_basic.rs:4523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 4535
      start: 4504
    functionDepth: 9
    functionLinenumber: 4504
    functionLinenumberEnd: 4535
    functionName: basic::test_connection_info_lib_name
    functionSourceFile: /src/redis-rs/redis/tests/test_basic.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - HashMap::new
    - RedisConnectionInfo::set_lib_name
    - redis::Cmd::arg
    - redis_settings
    - split
    - RedisResult::unwrap
    - redis::cmd
    - set_redis_settings
    - connection_info
    - splitn
    - Client::open
    - '&mut Cmd::query'
    - unwrap
    - splitn(2, '=').collect::<Vec<&str>>
    - get_connection
    - RedisResult::expect
    - HashMap::insert
    - trim
    linkageType: ''
    returnType: void
    signature: fn test_connection_info_lib_name()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:42,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: cluster_async::broken_pipe_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - std::io::Error::new
    - RedisError::from
    linkageType: ''
    returnType: RedisError
    signature: fn broken_pipe_error() -> RedisError
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:49,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:49,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:49,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:49,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:49,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:55,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:55,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:55,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:55,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - connection
    argTypes:
    - impl redis::aio::ConnectionLike
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: cluster_async::smoke_test_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - '&mut Cmd::clone'
    - Self::query_async
    - exec_async
    - expect
    - Cmd::arg
    - '&mut Cmd::arg'
    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:66,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:68,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: cluster_async::async_cluster_basic_cmd
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - smoke_test_connection
    - Result::async_connection
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_basic_cmd()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:74,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:76,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:77,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:77,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:77,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:77,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:77,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:77,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:86,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:86,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:86,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:86,1
    - Dst: set_no_response
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:86,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:86,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:86,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:95,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:95,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 100
    functionName: cluster_async::no_response_skips_response_even_on_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::query_async'
    - arg
    - TestClusterContext::new
    - Result::async_connection
    - '&mut Cmd::exec_async'
    - '&mut Cmd::arg'
    - redis::cmd
    - unwrap
    - set_no_response
    linkageType: ''
    returnType: void
    signature: async fn 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:105,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:105,1
    - Dst: host_and_port
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:107,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:107,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:110,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:111,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:107,1
    - Dst: host_and_port
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:116,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:116,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:119,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:120,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:116,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:126,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:127,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:128,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:128,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:127,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:133,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:134,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:134,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:133,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:139,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:140,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:144,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:145,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 149
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 149
    functionName: cluster_async::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
    - TestClusterContext::async_connection
    - map
    - '&str::into'
    - clone
    - TestClusterContext::new_with_cluster_client_builder
    - RoutingInfo::SingleNode
    - host_and_port
    - retries
    - unwrap
    - redis::cmd
    linkageType: ''
    returnType: void
    signature: async fn 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:153,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:155,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:156,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:156,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:156,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:156,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:156,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:156,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 165
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 165
    functionName: cluster_async::async_cluster_basic_eval
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - query_async
    - arg
    - TestClusterContext::new
    - Cmd::arg
    - Result::async_connection
    - '&mut Cmd::arg'
    - unwrap
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_basic_eval()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:169,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:171,1
    - Dst: Script::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:172,1
    - Dst: Script::key
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:172,1
    - Dst: ScriptInvocation::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:172,1
    - Dst: '&''b mut ScriptInvocation::invoke_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:172,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:172,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 181
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 181
    functionName: cluster_async::async_cluster_basic_script
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ScriptInvocation::arg
    - Script::new
    - TestClusterContext::new
    - '&''b mut ScriptInvocation::invoke_async'
    - Result::async_connection
    - Script::key
    - unwrap
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_basic_script()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:185,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:187,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:188,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:188,1
    - Dst: bool::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:189,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:189,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:191,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:193,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:193,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:196,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:197,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:198,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:206,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:206,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:208,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:208,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 210
    functionName: cluster_async::async_cluster_route_flush_to_specific_node
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - SingleNodeRoutingInfo::SpecificNode
    - TestClusterContext::new
    - bool::get
    - Result::async_connection
    - bool::set
    - Route::new
    - unwrap
    - RoutingInfo::SingleNode
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_route_flush_to_specific_node()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:214,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:216,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:217,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:220,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:221,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:223,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:224,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:221,1
    - Dst: from_redis_value::<HashMap<String, String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:229,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:229,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:231,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:231,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:231,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:232,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:233,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:233,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:233,1
    - Dst: next
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:234,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:234,1
    - Dst: parse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:234,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:234,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:236,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:238,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:236,1
    - Dst: from_redis_value::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:243,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 246
      start: 213
    functionDepth: 6
    functionLinenumber: 213
    functionLinenumberEnd: 246
    functionName: cluster_async::async_cluster_route_flush_to_node_by_address
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - from_redis_value::<HashMap<String, String>>
    - into_iter
    - to_string
    - parse
    - split
    - Option::unwrap
    - TestClusterContext::new
    - Cmd::arg
    - RoutingInfo::MultiNode
    - Result::async_connection
    - next
    - unwrap
    - redis::cmd
    - Cmd::clone
    - RoutingInfo::SingleNode
    - from_redis_value::<String>
    linkageType: ''
    returnType: void
    signature: async fn 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:250,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:253,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:258,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:258,1
    - Dst: redis::from_redis_value_ref::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:262,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:262,1
    - Dst: redis::from_redis_value_ref::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:263,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:263,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:258,1
    - Dst: sort_by
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:267,1
    - Dst: cmp
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:267,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:268,1
    - Dst: std::iter::Chain::unzip
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:268,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:274,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:274,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:278,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:274,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:280,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:280,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:280,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:280,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:280,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:284,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:284,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:287,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:288,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:289,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:288,1
    - Dst: split_to_addresses_and_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:292,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:294,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:294,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:296,1
    - Dst: '&ConnectionAddr::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:296,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:294,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:298,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:304,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:304,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:309,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:310,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:311,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:310,1
    - Dst: split_to_addresses_and_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:314,1
    - Dst: split
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:320,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:320,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 249
    functionDepth: 8
    functionLinenumber: 249
    functionLinenumberEnd: 324
    functionName: cluster_async::async_cluster_route_info_to_nodes
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&ConnectionAddr::to_string'
    - ClusterClientBuilder::build
    - ClusterClientBuilder::read_routing_strategy
    - TestClusterContext::new_with_config
    - get_async_connection
    - into_iter
    - map
    - clone
    - sort
    - RedisServer::connection_info
    - split
    - RedisResult::unwrap
    - sort_by
    - redis::cmd
    - iter
    - RoutingInfo::MultiNode
    - split_to_addresses_and_info
    - unwrap
    - ClusterClient::builder
    - std::iter::Chain::unzip
    - bool::route_command
    - Default::default
    - collect
    - Self::into_iter
    - redis::from_redis_value_ref::<String>
    - std::iter::Chain::map
    - cmp
    - redis::ConnectionInfo::addr
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_route_info_to_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:328,1
    - Dst: ProtocolVersion::supports_resp3
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:328,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:332,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:334,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:336,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:336,1
    - Dst: bool::hset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:337,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:337,1
    - Dst: bool::hgetall
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:338,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 341
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 341
    functionName: cluster_async::cluster_resp3
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - use_protocol
    - TestClusterContext::new
    - bool::hgetall
    - Result::async_connection
    - unwrap
    - bool::hset
    - ProtocolVersion::supports_resp3
    linkageType: ''
    returnType: void
    signature: async fn cluster_resp3()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:345,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:347,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:348,1
    - Dst: Pipeline::add_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:349,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:349,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:349,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:349,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:349,1
    - Dst: Pipeline::add_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:350,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:350,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:350,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:350,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:350,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:351,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:351,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:352,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:352,1
    - Dst: bool::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:354,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:354,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 3
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: cluster_async::async_cluster_basic_pipe
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - clone
    - Pipeline::exec_async
    - TestClusterContext::new
    - Pipeline::add_command
    - Cmd::arg
    - Result::async_connection
    - bool::get
    - '&mut Cmd::arg'
    - unwrap
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_basic_pipe()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:366,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:367,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:369,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:369,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:369,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:369,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:374,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:374,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:374,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:374,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:375,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:375,1
    - Dst: '&mut Cmd::get_packed_command'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:375,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:376,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:376,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:385,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:386,1
    - Dst: redis::Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:386,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:386,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:386,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:386,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 359
    functionDepth: 2
    functionLinenumber: 359
    functionLinenumberEnd: 393
    functionName: cluster_async::test_pipeline_returns_server_errors
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - get
    - ignore
    - respond_startup
    - Ok
    - parse_redis_value
    - MockEnv::new
    - '&mut Cmd::get_packed_command'
    - get_packed_command
    - exec_async
    - Err
    - '&mut Cmd::arg'
    - redis::cmd
    - RedisResult::unwrap
    - tokio::runtime::Runtime::block_on
    - redis::pipe
    - redis::Pipeline::set
    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:397,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:399,1
    - Dst: bool::mset
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:401,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:401,1
    - Dst: bool::mget
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:406,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:406,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 408
      start: 396
    functionDepth: 3
    functionLinenumber: 396
    functionLinenumberEnd: 408
    functionName: cluster_async::async_cluster_multi_shard_commands
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::mget
    - TestClusterContext::new
    - Result::async_connection
    - unwrap
    - bool::mset
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_multi_shard_commands()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:412,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:414,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:416,1
    - Dst: redis::Pipeline::atomic
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:416,1
    - Dst: '&mut Pipeline::set'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:416,1
    - Dst: expire
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:416,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:416,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 425
      start: 411
    functionDepth: 9
    functionLinenumber: 411
    functionLinenumberEnd: 425
    functionName: cluster_async::async_cluster_can_run_a_transaction
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::Pipeline::atomic
    - expire
    - '&mut Pipeline::set'
    - query_async
    - TestClusterContext::new
    - Result::async_connection
    - unwrap
    - redis::pipe
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_can_run_a_transaction()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:432,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:437,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 429
    functionDepth: 8
    functionLinenumber: 429
    functionLinenumberEnd: 444
    functionName: cluster_async::async_cluster_default_reject_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_config
    - ClusterType::get_intended
    - Default::default
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_default_reject_invalid_hostnames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:451,1
    - Dst: TestClusterContext::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:456,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:460,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:462,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:465,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:466,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 467
      start: 448
    functionDepth: 8
    functionLinenumber: 448
    functionLinenumberEnd: 467
    functionName: cluster_async::async_cluster_danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - ClusterType::get_intended
    - danger_accept_invalid_hostnames
    - Default::default
    - smoke_test_connection
    - Result::async_connection
    - TestClusterContext::new_with_config_and_builder
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_danger_accept_invalid_hostnames()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: test_failover
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:471,1
    - Dst: TestClusterContext::new_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:472,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 480
      start: 470
    functionDepth: 9
    functionLinenumber: 470
    functionLinenumberEnd: 480
    functionName: cluster_async::async_cluster_basic_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_config
    - RedisClusterConfiguration::single_replica_config
    - test_failover
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_basic_failover()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:485,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:485,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:485,1
    - Dst: '&mut Cmd::exec_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:485,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - redis
    argTypes:
    - '&mut redis::aio::MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 1
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: cluster_async::do_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg
    - cmd
    - '&mut Cmd::exec_async'
    - Ok
    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:495,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:495,1
    - Dst: '&TestClusterContext::async_connection'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:497,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:498,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:501,1
    - Dst: iter_servers
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:503,1
    - Dst: RedisServer::client_addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:504,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:506,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:507,1
    - Dst: RedisResult::unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:506,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:513,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:513,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:518,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:518,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:518,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:518,1
    - Dst: redis::ConnectionInfo::get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:523,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:523,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:526,1
    - Dst: flushall::<()>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:526,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:526,1
    - Dst: futures_time::time::Duration::from_secs
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:527,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:526,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:529,1
    - Dst: anyhow::Error::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:529,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:526,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:533,1
    - Dst: Ok::<(), anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:535,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:547,1
    - Dst: bool::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:549,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:550,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:551,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:555,1
    - Dst: Self::iter_mut
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:556,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:556,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:558,1
    - Dst: do_failover
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:558,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:561,1
    - Dst: all
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:561,1
    - Dst: is_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:561,1
    - Dst: RedisResult::pop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:562,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:562,1
    - Dst: Ok::<_, anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:564,1
    - Dst: pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:568,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:568,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:569,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:568,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:568,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:568,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:568,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:576,1
    - Dst: Ok::<_, anyhow::Error>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:577,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:547,1
    - Dst: try_collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:547,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:547,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 146
    argCount: 4
    argNames:
    - env
    - requests
    - value
    - _mtls_enabled
    argTypes:
    - '&TestClusterContext'
    - i32
    - i32
    - bool
    constantsTouched: []
    func_position:
      end: 591
      start: 489
    functionDepth: 7
    functionLinenumber: 489
    functionLinenumberEnd: 591
    functionName: cluster_async::test_failover
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - RedisResult::iter
    - Arc::new
    - Err
    - do_failover
    - all
    - anyhow::Error::from
    - iter_servers
    - ignore
    - future::join_all
    - try_collect
    - RedisResult::unwrap_or_else
    - map
    - clone
    - Ok::<(), anyhow::Error>
    - redis::ConnectionInfo::get
    - query_async
    - RedisResult::pop
    - '&TestClusterContext::async_connection'
    - RedisServer::connection_info
    - get_multiplexed_async_connection
    - flushall::<()>
    - Pipeline::set
    - Self::fetch_add
    - unwrap_or_else
    - ".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<_>>"
    - get
    - Vec::new
    - AtomicI32::new
    - RedisServer::clear
    - timeout
    - Self::arg
    - redis::Cmd::new
    - build_single_client
    - futures_time::time::Duration::from_secs
    - Ok::<_, anyhow::Error>
    - unwrap
    - Self::iter_mut
    - Box::pin
    - Ok
    - bool::clone
    - is_err
    - expect
    - pipe
    - RedisServer::client_addr
    - RedisServer::push
    - Self::clone
    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:647,1
    - Dst: async_generic_connection::<ErrorConnection>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:649,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:651,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:652,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:652,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:655,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:657,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 665
      start: 646
    functionDepth: 3
    functionLinenumber: 646
    functionLinenumberEnd: 665
    functionName: cluster_async::async_cluster_error_in_inner_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - get
    - async_generic_connection::<ErrorConnection>
    - TestClusterContext::new
    - unwrap
    - store
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_error_in_inner_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:676,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:677,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:678,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:678,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:678,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:679,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:679,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:680,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:680,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:680,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:682,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:682,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:686,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:686,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:686,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:686,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 689
    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:
    - cmd
    - Ok
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - Err
    - is_connection_check
    - contains_slice
    - arg("test").query_async::<Value>
    - 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:700,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:701,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:702,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:702,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:702,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:703,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:703,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:704,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:704,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:704,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:709,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:709,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:713,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:713,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:713,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:713,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 716
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 716
    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:
    - cmd
    - Ok
    - MockEnv::new
    - redis_value
    - Cmd::arg
    - Err
    - is_connection_check
    - contains_slice
    - arg("test").query_async::<Value>
    - 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:722,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:728,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:729,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:729,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:732,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:734,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:735,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:735,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:736,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:736,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:736,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:741,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:742,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:742,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:742,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 748
      start: 719
    functionDepth: 1
    functionLinenumber: 719
    functionLinenumberEnd: 748
    functionName: cluster_async::test_async_cluster_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - MockEnv::with_client_builder
    - parse_redis_value
    - Ok
    - redis_value
    - atomic::AtomicUsize::new
    - Cmd::arg
    - fetch_add
    - Err
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - respond_startup
    - ClusterClientBuilder::retries
    - ClusterClient::builder
    - tokio::runtime::Runtime::block_on
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_retries()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:754,1
    - Dst: atomic::AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:754,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:761,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:762,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:762,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:765,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:767,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:768,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:769,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:769,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:774,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:775,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:775,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:775,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 785
      start: 751
    functionDepth: 7
    functionLinenumber: 751
    functionLinenumberEnd: 785
    functionName: cluster_async::test_async_cluster_tryagain_exhaust_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - MockEnv::with_client_builder
    - respond_startup
    - parse_redis_value
    - clone
    - Arc::new
    - atomic::AtomicUsize::new
    - Cmd::arg
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - Err
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - fetch_add
    - tokio::runtime::Runtime::block_on
    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:791,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:792,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:793,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:800,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:801,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:802,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:804,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:806,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:807,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:807,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:807,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:810,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:816,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:816,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:817,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:820,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:820,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:823,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:823,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:823,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:836,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:837,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:837,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:837,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 843
      start: 788
    functionDepth: 2
    functionLinenumber: 788
    functionLinenumberEnd: 843
    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:
    - cmd
    - Ok
    - parse_redis_value
    - MockEnv::new
    - as_bytes
    - redis_value
    - atomic::AtomicUsize::new
    - atomic::AtomicBool::new
    - Cmd::arg
    - RedisServer::load
    - RedisServer::store
    - is_connection_check
    - Err
    - contains_slice
    - respond_startup
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - fetch_add
    - tokio::runtime::Runtime::block_on
    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:849,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:856,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:857,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:857,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:860,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:861,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:864,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:865,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:865,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:865,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:868,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:868,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:869,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:869,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:869,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:875,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:876,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:876,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:876,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:883,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:883,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:884,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:894,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:894,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:894,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:894,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:906,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:907,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:907,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:907,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 913
      start: 846
    functionDepth: 2
    functionLinenumber: 846
    functionLinenumberEnd: 913
    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:
    - cmd
    - MockEnv::with_client_builder
    - respond_startup
    - Ok
    - parse_redis_value
    - as_bytes
    - arg("test").query_async::<Value>
    - redis_value
    - atomic::AtomicBool::new
    - Cmd::arg
    - RedisServer::load
    - Err
    - is_connection_check
    - contains_slice
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - tokio::runtime::Runtime::block_on
    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:919,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:920,1
    - Dst: atomic::AtomicU16::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:920,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:921,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:928,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:929,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:929,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:932,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:935,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:936,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:940,1
    - Dst: RedisServer::swap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:942,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:943,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:943,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:943,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:945,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:945,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:945,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:958,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:958,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:959,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:960,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:961,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:972,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:972,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:973,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:974,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:975,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 983
      start: 916
    functionDepth: 7
    functionLinenumber: 916
    functionLinenumberEnd: 983
    functionName: cluster_async::test_async_cluster_reconnect_even_with_zero_retries
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - MockEnv::with_client_builder
    - Arc::new
    - Err
    - atomic::AtomicBool::new
    - respond_startup
    - tokio::runtime::Runtime::block_on
    - RedisServer::swap
    - RedisServer::clone
    - broken_pipe_error
    - atomic::AtomicU16::new
    - contains_slice
    - RoutingInfo::SingleNode
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - RedisServer::fetch_add
    - bool::route_command
    - '&''static str::to_string'
    - Ok
    - redis_value
    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:988,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:988,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:994,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:995,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:999,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1002,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1005,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1005,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1013,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1013,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1017,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1017,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1017,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1027,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1028,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1028,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1028,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 986
    functionDepth: 7
    functionLinenumber: 986
    functionLinenumberEnd: 1034
    functionName: cluster_async::test_async_cluster_ask_redirect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - cmd
    - MockEnv::with_client_builder
    - parse_redis_value
    - Ok
    - Arc::new
    - redis_value
    - Cmd::arg
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - Err
    - ClusterClient::builder
    - RedisServer::fetch_add
    - tokio::runtime::Runtime::block_on
    - respond_startup_two_nodes
    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:1039,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1039,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1040,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1046,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1047,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1052,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1053,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1053,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1058,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1059,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1061,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1062,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1062,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1068,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1069,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1069,1
    - Dst: arg("test").query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1069,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1068,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1037
    functionDepth: 7
    functionLinenumber: 1037
    functionLinenumberEnd: 1074
    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
    - cmd
    - MockEnv::with_client_builder
    - parse_redis_value
    - RedisServer::clone
    - Ok
    - Arc::new
    - Cmd::arg
    - Err
    - is_connection_check
    - Self::fetch_add
    - unwrap
    - ClusterClient::builder
    - arg("test").query_async::<Value>
    - tokio::runtime::Runtime::block_on
    - respond_startup_two_nodes
    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:1079,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1079,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1085,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1087,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1087,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1087,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1089,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1090,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1093,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1093,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1094,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1099,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1099,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1099,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1105,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1106,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1106,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1077
    functionDepth: 7
    functionLinenumber: 1077
    functionLinenumberEnd: 1112
    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
    - cmd
    - parse_redis_value
    - as_bytes
    - MockEnv::new
    - broken_pipe_error
    - Ok
    - Arc::new
    - redis_value
    - Cmd::arg
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - Err
    - RedisServer::fetch_add
    - tokio::runtime::Runtime::block_on
    - respond_startup_two_nodes
    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:1117,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1117,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1123,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1124,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1128,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1131,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1133,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1133,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1143,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1143,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1147,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1147,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1157,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1158,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1115
    functionDepth: 7
    functionLinenumber: 1115
    functionLinenumberEnd: 1163
    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
    - cmd
    - MockEnv::with_client_builder
    - parse_redis_value
    - Ok
    - Arc::new
    - Err
    - ClusterClient::builder
    - RedisServer::fetch_add
    - tokio::runtime::Runtime::block_on
    - query_async::<Value>
    - respond_startup_two_nodes
    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:1169,1
    - Dst: atomic::AtomicBool::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1170,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1177,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1178,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1179,1
    - Dst: RedisServer::store
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1181,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1183,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1184,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1184,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1184,1
    - Dst: fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1187,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1191,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1191,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1192,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1197,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1197,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1202,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1202,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1202,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1210,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1211,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1211,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1211,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 1166
    functionDepth: 2
    functionLinenumber: 1166
    functionLinenumberEnd: 1217
    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:
    - cmd
    - Ok
    - parse_redis_value
    - MockEnv::new
    - as_bytes
    - redis_value
    - atomic::AtomicUsize::new
    - atomic::AtomicBool::new
    - Cmd::arg
    - RedisServer::load
    - RedisServer::store
    - is_connection_check
    - Err
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - respond_startup
    - fetch_add
    - tokio::runtime::Runtime::block_on
    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:1229,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1230,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1230,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1230,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1235,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1237,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1237,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1237,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1243,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1244,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1244,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1244,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1256,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1257,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1257,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1257,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1262,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1264,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1264,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1264,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1270,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1271,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1271,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1271,1
    - Dst: "arg(\"test\")\n                .arg(\"123\")\n                .query_async::<Option<Value>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1277
      start: 1220
    functionDepth: 1
    functionLinenumber: 1220
    functionLinenumberEnd: 1277
    functionName: cluster_async::test_async_cluster_random_replica_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - respond_startup_with_replica
    - MockEnv::with_client_builder
    - Ok
    - cmd
    - redis_value
    - ClusterClientBuilder::read_routing_strategy
    - Cmd::arg
    - Err
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - "arg(\"test\")\n                .arg(\"123\")\n                .query_async::<Option<Value>>"
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - tokio::runtime::Runtime::block_on
    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:1282,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1282,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1282,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1283,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1306,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1307,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1307,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1307,1
    - Dst: RoundRobinReplicaStrategy::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1309,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1312,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1312,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1312,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1313,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1314,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1314,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1314,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1315,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1315,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1315,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1317,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1333,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1334,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1334,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1334,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1333,1
    - Dst: Vec::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1338,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1338,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1338,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1280
    functionDepth: 7
    functionLinenumber: 1280
    functionLinenumberEnd: 1340
    functionName: cluster_async::test_async_cluster_round_robin_read
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Some
    - Vec::clone
    - cmd
    - MockEnv::with_client_builder
    - '&mut Cmd::query_async'
    - Arc::new
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - push
    - clone
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - Vec::new
    - contains_slice
    - unwrap
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - Self::lock
    - std::sync::Mutex::new
    - Ok
    - Self::unwrap
    - redis_value
    - Vec::lock
    - Cmd::arg
    - RoundRobinReplicaStrategy::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:1348,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1348,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1348,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1349,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1350,1
    - Dst: RedisFuture::split_whitespace
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1351,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1352,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1354,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1361,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1362,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1362,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1362,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1367,1
    - Dst: Option<Vec<MockSlotRange>>::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1370,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1373,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1373,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1373,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1374,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1374,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1374,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1376,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1380,1
    - Dst: query_async::<Option<()>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1380,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1381,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1381,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1381,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: 1384
      start: 1342
    functionDepth: 7
    functionLinenumber: 1342
    functionLinenumberEnd: 1384
    functionName: cluster_async::test_async_cluster_fan_out
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - MockEnv::with_client_builder
    - Arc::new
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - Cmd::get_packed_command
    - query_async::<Option<()>>
    - push
    - sort
    - Option<Vec<MockSlotRange>>::clone
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - Vec::new
    - RedisServer::clone
    - RedisFuture::split_whitespace
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - RedisServer::lock
    - Self::lock
    - std::sync::Mutex::new
    - Ok
    - Self::unwrap
    - redis_value
    - Cmd::arg
    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:1388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1387
    functionDepth: 8
    functionLinenumber: 1387
    functionLinenumberEnd: 1394
    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:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1404
      start: 1397
    functionDepth: 8
    functionLinenumber: 1397
    functionLinenumberEnd: 1404
    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:1408,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1407
    functionDepth: 8
    functionLinenumber: 1407
    functionLinenumberEnd: 1425
    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:1429,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1456
      start: 1428
    functionDepth: 8
    functionLinenumber: 1428
    functionLinenumberEnd: 1456
    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:1462,1
    - Dst: std::sync::Mutex::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1462,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1462,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1463,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1471,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1472,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1472,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1472,1
    - Dst: respond_startup_with_replica
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1477,1
    - Dst: Self::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1478,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1478,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1478,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1479,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1479,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1483,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1484,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1485,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1485,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1486,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1487,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1490,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1490,1
    - Dst: RedisServer::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1491,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1493,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1496,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1496,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1497,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1498,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1501,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1501,1
    - Dst: RedisServer::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1502,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1504,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1507,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1507,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1509,1
    - Dst: '&''static str::to_string'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1510,1
    - Dst: RedisServer::lock
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1515,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1515,1
    - Dst: RedisServer::sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1516,1
    - Dst: RedisServer::clear
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1520
      start: 1459
    functionDepth: 7
    functionLinenumber: 1459
    functionLinenumberEnd: 1520
    functionName: cluster_async::test_async_cluster_route_according_to_passed_argument
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - MockEnv::with_client_builder
    - Arc::new
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - push
    - respond_startup_with_replica
    - tokio::runtime::Runtime::block_on
    - Vec::new
    - RedisServer::clear
    - RedisServer::clone
    - RoutingInfo::MultiNode
    - RoutingInfo::SingleNode
    - ClusterClient::builder
    - Cmd::clone
    - ClusterClientBuilder::retries
    - RedisServer::lock
    - bool::route_command
    - Self::lock
    - '&''static str::to_string'
    - std::sync::Mutex::new
    - Ok
    - RedisServer::sort
    - Self::unwrap
    - Cmd::arg
    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:1525,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1526,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1526,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1533,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1534,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1534,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1534,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1539,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1542,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1542,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1542,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1546,1
    - Dst: query_async::<i64>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1547,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1546,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1523
    functionDepth: 1
    functionLinenumber: 1523
    functionLinenumberEnd: 1550
    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:
    - respond_startup_with_replica_using_config
    - MockEnv::with_client_builder
    - Ok
    - redis_value
    - Cmd::arg
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - query_async::<i64>
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - unwrap
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    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:1555,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1556,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1556,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1556,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1556,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1556,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1556,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1568,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1569,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1569,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1569,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1574,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1577,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1577,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1577,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1579,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1579,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1579,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1586,1
    - Dst: query_async::<Vec<i64>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1587,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1586,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1590
      start: 1553
    functionDepth: 1
    functionLinenumber: 1553
    functionLinenumberEnd: 1590
    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:
    - respond_startup_with_replica_using_config
    - MockEnv::with_client_builder
    - Ok
    - arg
    - redis_value
    - Cmd::arg
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - unwrap
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - query_async::<Vec<i64>>
    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:1595,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1596,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1602,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1603,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1603,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1603,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1608,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1610,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1610,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1612,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1612,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1612,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1612,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1620,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1621,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1620,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1593
    functionDepth: 1
    functionLinenumber: 1593
    functionLinenumberEnd: 1624
    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:
    - respond_startup_with_replica_using_config
    - MockEnv::with_client_builder
    - Ok
    - Cmd::arg
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - RedisError::from
    - unwrap
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - Cmd::new
    - std::io::Error::new
    - query_async::<Value>
    - tokio::runtime::Runtime::block_on
    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:1629,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1630,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1636,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1637,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1637,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1637,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1642,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1643,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1643,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1647,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1648,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1647,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1651
      start: 1627
    functionDepth: 1
    functionLinenumber: 1627
    functionLinenumberEnd: 1651
    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:
    - respond_startup_with_replica_using_config
    - MockEnv::with_client_builder
    - Ok
    - Cmd::arg
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - unwrap
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - query_async::<Value>
    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:1656,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1657,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1657,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1663,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1664,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1664,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1664,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1669,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1671,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1671,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1672,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1671,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1679,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1680,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1683
      start: 1654
    functionDepth: 1
    functionLinenumber: 1654
    functionLinenumberEnd: 1683
    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:
    - respond_startup_with_replica_using_config
    - into
    - MockEnv::with_client_builder
    - unwrap_err
    - Cmd::arg
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    - query_async::<Value>
    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:1688,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1694,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1695,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1695,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1695,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1700,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1701,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1701,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1705,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1706,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1686
    functionDepth: 1
    functionLinenumber: 1686
    functionLinenumberEnd: 1709
    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:
    - respond_startup_with_replica_using_config
    - cmd
    - MockEnv::with_client_builder
    - Ok
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - unwrap
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - tokio::runtime::Runtime::block_on
    - query_async::<Value>
    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:1714,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1720,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1721,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1721,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1721,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1726,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1728,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1728,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1729,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1728,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1734,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1734,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1738,1
    - Dst: query_async::<Value>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1739,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1738,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1742
    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:
    - respond_startup_with_replica_using_config
    - into
    - cmd
    - MockEnv::with_client_builder
    - Ok
    - unwrap_err
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - tokio::runtime::Runtime::block_on
    - query_async::<Value>
    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:1747,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1753,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1754,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1754,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1754,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1759,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1761,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1761,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1761,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1763,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1763,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1767,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1768,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1767,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1771
      start: 1745
    functionDepth: 1
    functionLinenumber: 1745
    functionLinenumberEnd: 1771
    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:
    - respond_startup_with_replica_using_config
    - cmd
    - MockEnv::with_client_builder
    - Ok
    - redis_value
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - query_async::<String>
    - unwrap
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - tokio::runtime::Runtime::block_on
    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:1776,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1777,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1777,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1783,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1784,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1784,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1784,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1789,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1790,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1790,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1790,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1795,1
    - Dst: query_async::<Vec<(String, String)>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1796,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1795,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1809
      start: 1774
    functionDepth: 1
    functionLinenumber: 1774
    functionLinenumberEnd: 1809
    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:
    - respond_startup_with_replica_using_config
    - query_async::<Vec<(String, String)>>
    - MockEnv::with_client_builder
    - Ok
    - redis_value
    - sort
    - Cmd::arg
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - unwrap
    - Cmd::new
    - tokio::runtime::Runtime::block_on
    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:1814,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1820,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1821,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1821,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1821,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1826,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1827,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1827,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1827,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1831,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1832,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1831,1
    - Dst: sort
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1840
      start: 1812
    functionDepth: 1
    functionLinenumber: 1812
    functionLinenumberEnd: 1840
    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:
    - respond_startup_with_replica_using_config
    - query_async::<Vec<String>>
    - cmd
    - MockEnv::with_client_builder
    - Ok
    - redis_value
    - sort
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - unwrap
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - tokio::runtime::Runtime::block_on
    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:1845,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1846,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1846,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1846,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1852,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1853,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1853,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1853,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1858,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1859,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1859,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1860,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1860,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1863,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1864,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1864,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1860,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1870,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1870,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1870,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1874,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1875,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1874,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1878
      start: 1843
    functionDepth: 2
    functionLinenumber: 1843
    functionLinenumberEnd: 1878
    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:
    - Some
    - cmd
    - MockEnv::with_client_builder
    - arg
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - filter_map
    - Value::Array
    - std::str::from_utf8
    - contains
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - iter
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - unwrap
    - query_async::<Vec<String>>
    - Ok
    - collect
    - redis_value
    - Cmd::arg
    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:1883,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1884,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1884,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1884,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1885,1
    - Dst: AtomicU16::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1885,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1886,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1892,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1893,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1893,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1897,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1898,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1898,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1899,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1900,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1902,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1903,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1903,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1904,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1907,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1907,1
    - Dst: contains
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1910,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1911,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1911,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1907,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1917,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1917,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1917,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1921,1
    - Dst: query_async::<Vec<String>>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1922,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1921,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1926
      start: 1881
    functionDepth: 7
    functionLinenumber: 1881
    functionLinenumberEnd: 1926
    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:
    - Some
    - cmd
    - MockEnv::with_client_builder
    - as_bytes
    - Arc::new
    - arg
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - filter_map
    - Value::Array
    - parse_redis_value
    - std::str::from_utf8
    - contains
    - Self::fetch_add
    - tokio::runtime::Runtime::block_on
    - respond_startup_with_replica_using_config
    - iter
    - RedisServer::clone
    - AtomicU16::new
    - '&mut Cmd::arg'
    - ClusterClient::builder
    - unwrap
    - query_async::<Vec<String>>
    - Ok
    - collect
    - redis_value
    - Cmd::arg
    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:1930,1
    - Dst: username
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1931,1
    - Dst: RedisCluster::username
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1932,1
    - Dst: '&''static str::password'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1931,1
    - Dst: RedisCluster::password
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1933,1
    - Dst: Result::disable_default_user
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1935,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1937,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1938,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1938,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1938,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1938,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1938,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1944,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1944,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1944,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1944,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1944,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1929
    functionDepth: 1
    functionLinenumber: 1929
    functionLinenumberEnd: 1951
    functionName: cluster_async::async_cluster_with_username_and_password
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - '&mut Cmd::clone'
    - RedisCluster::password
    - Result::disable_default_user
    - Self::query_async
    - exec_async
    - username
    - RedisCluster::username
    - Cmd::arg
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - '&''static str::password'
    - Result::async_connection
    - '&mut Cmd::arg'
    - unwrap
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_with_username_and_password()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1956,1
    - Dst: AtomicI32::new
      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: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1966,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1971,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1972,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1972,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1972,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1972,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1976,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1976,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1976,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1982,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1983,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1983,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1983,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1989
      start: 1954
    functionDepth: 7
    functionLinenumber: 1954
    functionLinenumberEnd: 1989
    functionName: cluster_async::test_async_cluster_io_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicI32::new
    - cmd
    - MockEnv::with_client_builder
    - Ok
    - Arc::new
    - redis_value
    - Cmd::arg
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - Err
    - RedisError::from
    - tokio::runtime::Runtime::block_on
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - RedisServer::fetch_add
    - std::io::Error::new
    - respond_startup_two_nodes
    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:1994,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:1994,1
    - Dst: MockEnv::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2000,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2001,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2003,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2006,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2007,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2007,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2007,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2007,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2011,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2012,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2012,1
    - Dst: "arg(\"test\")\n                .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2012,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1992
    functionDepth: 7
    functionLinenumber: 1992
    functionLinenumberEnd: 2019
    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:
    - into
    - AtomicI32::new
    - cmd
    - MockEnv::new
    - Arc::new
    - Cmd::arg
    - "arg(\"test\")\n                .query_async::<Option<i32>>"
    - Err
    - Self::fetch_add
    - Self::clone
    - tokio::runtime::Runtime::block_on
    - respond_startup_two_nodes
    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:2024,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2042,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2043,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2043,1
    - Dst: ClusterClientBuilder::read_routing_strategy
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2043,1
    - Dst: respond_startup_with_replica_using_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2048,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2051,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2053,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2053,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2053,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2057,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2057,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2057,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2022
    functionDepth: 3
    functionLinenumber: 2022
    functionLinenumberEnd: 2059
    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:
    - Some
    - respond_startup_with_replica_using_config
    - MockEnv::with_client_builder
    - Ok
    - clone
    - bool::req_packed_command
    - redis_value
    - ClusterClientBuilder::read_routing_strategy
    - Err
    - redis::cmd
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - tokio::runtime::Runtime::block_on
    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:2064,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2064,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2066,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2067,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2069,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2070,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2072,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2073,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2079,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2083
      start: 2062
    functionDepth: 3
    functionLinenumber: 2062
    functionLinenumberEnd: 2083
    functionName: cluster_async::async_cluster_handle_complete_server_disconnect_without_panicking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - cmd
    - bool::req_packed_command
    - Result::async_connection
    - drop
    - TestClusterContext::new_with_cluster_client_builder
    - RoutingInfo::SingleNode
    - retries
    - Cmd::clone
    linkageType: ''
    returnType: void
    signature: async fn 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:2087,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2088,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2091,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2093,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2094,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2096,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2098,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2100,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2101,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2108,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2112,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2113,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2114,1
    - Dst: bool::req_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2117,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2117,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2086
    functionDepth: 8
    functionLinenumber: 2086
    functionLinenumberEnd: 2119
    functionName: cluster_async::async_cluster_reconnect_after_complete_server_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - bool::route_command
    - Vec::clone
    - cmd
    - RedisCluster::new
    - Result::get_ports
    - Default::default
    - bool::req_packed_command
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - Result::async_connection
    - drop
    - RoutingInfo::SingleNode
    - unwrap
    - retries
    - Cmd::clone
    linkageType: ''
    returnType: void
    signature: async fn 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:2123,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2124,1
    - Dst: Result::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2127,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2129,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2130,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2133,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2134,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2135,1
    - Dst: bool::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2139,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2141,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2142,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2144,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2150
      start: 2122
    functionDepth: 8
    functionLinenumber: 2122
    functionLinenumberEnd: 2150
    functionName: cluster_async::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
    - Some
    - Vec::clone
    - cmd
    - RedisCluster::new
    - Result::get_ports
    - Default::default
    - RoutingInfo::MultiNode
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - Result::async_connection
    - drop
    - unwrap
    - retries
    linkageType: ''
    returnType: void
    signature: async fn 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:2155,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2155,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2156,1
    - Dst: AtomicI32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2157,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2164,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2165,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2165,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2169,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2170,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2170,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2171,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2175,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2176,1
    - Dst: RedisServer::load
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2177,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2186,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2191,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2191,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2191,1
    - Dst: respond_startup_two_nodes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2193,1
    - Dst: RedisServer::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2194,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2199,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2199,1
    - Dst: broken_pipe_error
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2199,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2201,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2201,1
    - Dst: redis_value
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2201,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2208,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2209,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2209,1
    - Dst: "arg(\"test\")\n                    .query_async::<Option<i32>>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2209,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2219
      start: 2153
    functionDepth: 7
    functionLinenumber: 2153
    functionLinenumberEnd: 2219
    functionName: cluster_async::test_async_cluster_saves_reconnected_connection
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - MockEnv::with_client_builder
    - as_bytes
    - Arc::new
    - Err
    - RedisServer::load
    - parse_redis_value
    - "arg(\"test\")\n                    .query_async::<Option<i32>>"
    - is_connection_check
    - Self::fetch_add
    - tokio::runtime::Runtime::block_on
    - AtomicI32::new
    - RedisServer::clone
    - broken_pipe_error
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - RedisServer::fetch_add
    - respond_startup_two_nodes
    - Ok
    - redis_value
    - Cmd::arg
    linkageType: ''
    returnType: void
    signature: fn test_async_cluster_saves_reconnected_connection()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2228,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2228,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2228,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2228,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2228,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:2228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2228,1
    - Dst: pop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2228,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2228,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2240,1
    - Dst: RedisResult::as_bytes
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2240,1
    - Dst: windows
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2240,1
    - Dst: filter
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2240,1
    - Dst: count
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut impl redis::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 2245
      start: 2225
    functionDepth: 2
    functionLinenumber: 2225
    functionLinenumberEnd: 2245
    functionName: c::l::u::s::t::e::r::_::a::s::y::n::c::::::::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:
    - redis::Cmd::arg
    - '&mut Cmd::cmd'
    - windows
    - Ok
    - pop
    - RedisResult::as_bytes
    - pipe
    - Pipeline::cmd
    - filter
    - "cmd(\"GET\")\n                .arg(\"LIST\")\n                .cmd(\"CLIENT\"\
      )\n                .arg(\"LIST\")\n                .query_async::<Vec<Option<String>>>"
    - unwrap
    - count
    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:2223,1
    - Dst: retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2223,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2247,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2248,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2252,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2253,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2254,1
    - Dst: fuse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2253,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2264,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2264,1
    - Dst: fuse
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2264,1
    - Dst: futures::future::select
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2266,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2267,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2269,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2269,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2272
      start: 2222
    functionDepth: 3
    functionLinenumber: 2222
    functionLinenumberEnd: 2272
    functionName: cluster_async::kill_connection_on_drop_even_when_blocking
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::async_connection
    - Box::pin
    - cmd
    - futures_time::task::sleep
    - exec_async
    - futures::future::select
    - Cmd::arg
    - drop
    - TestClusterContext::new_with_cluster_client_builder
    - '&mut Cmd::arg'
    - unwrap
    - retries
    - futures_time::time::Duration::from_millis
    - fuse
    linkageType: ''
    returnType: void
    signature: async fn kill_connection_on_drop_even_when_blocking()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2277,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2278,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2279,1
    - Dst: AtomicU32::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2279,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2280,1
    - Dst: MockEnv::with_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2285,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2286,1
    - Dst: ClusterClientBuilder::retries
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2286,1
    - Dst: ClusterClientBuilder::max_retry_wait
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2286,1
    - Dst: ClusterClientBuilder::min_retry_wait
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2286,1
    - Dst: respond_startup
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2292,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2295,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2296,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2296,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2297,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2296,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2303,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2303,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2307,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2308,1
    - Dst: RedisResult::timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2308,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2310,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2308,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2318,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2318,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2322
      start: 2275
    functionDepth: 7
    functionLinenumber: 2275
    functionLinenumberEnd: 2322
    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
    - MockEnv::with_client_builder
    - Arc::new
    - unwrap_err
    - Err
    - AtomicU32::new
    - Cmd::get_packed_command
    - RedisResult::timeout
    - Self::fetch_add
    - respond_startup
    - tokio::runtime::Runtime::block_on
    - RedisServer::clone
    - sleep
    - Cmd::exec_async
    - ClusterClient::builder
    - ClusterClientBuilder::retries
    - into
    - ClusterClientBuilder::min_retry_wait
    - Ok
    - ClusterClientBuilder::max_retry_wait
    - Duration::from_millis
    - futures_time::time::Duration::from_millis
    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:2326,1
    - Dst: get_pending_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2328,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2330,1
    - Dst: smoke_test_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2331,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2325
    functionDepth: 8
    functionLinenumber: 2325
    functionLinenumberEnd: 2332
    functionName: cluster_async::async_cluster_connect_lazily
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new
    - get_pending_async_connection_with_config
    - smoke_test_connection
    - Default::default
    linkageType: ''
    returnType: void
    signature: async fn async_cluster_connect_lazily()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2336,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2337,1
    - Dst: redis::Pipeline::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2339,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2339,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2339,1
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2346,1
    - Dst: query_async::<String>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2346,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2335
    functionDepth: 4
    functionLinenumber: 2335
    functionLinenumberEnd: 2352
    functionName: cluster_async::fail_on_empty_command
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::new
    - unwrap_err
    - TestClusterContext::new
    - Result::async_connection
    - query_async::<String>
    - redis::Pipeline::new
    linkageType: ''
    returnType: void
    signature: async fn fail_on_empty_command()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2358,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2360,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2360,1
    - Dst: '&mut Cmd::to_owned'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2360,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2361,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2358,1
    - Dst: from_redis_value::<InfoDict>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2365,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2365,1
    - Dst: parse_version
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut ClusterConnection'
    constantsTouched: []
    func_position:
      end: 2367
      start: 2357
    functionDepth: 1
    functionLinenumber: 2357
    functionLinenumberEnd: 2367
    functionName: cluster_async::check_if_redis_6
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - RedisResult::route_command
    - Cmd::arg
    - from_redis_value::<InfoDict>
    - RoutingInfo::SingleNode
    - unwrap
    - parse_version
    - '&mut Cmd::to_owned'
    linkageType: ''
    returnType: bool
    signature: 'async fn check_if_redis_6(conn: &mut ClusterConnection) -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut ClusterConnection::subscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2374,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2374,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2375,1
    - Dst: '&mut ClusterConnection::psubscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2384,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2384,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2385,1
    - Dst: '&mut ClusterConnection::ssubscribe'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2395,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2395,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2396,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - pubsub_conn
    - rx
    - is_redis_6
    argTypes:
    - '&mut ClusterConnection'
    - '&mut UnboundedReceiver<PushInfo>'
    - bool
    constantsTouched: []
    func_position:
      end: 2405
      start: 2369
    functionDepth: 5
    functionLinenumber: 2369
    functionLinenumberEnd: 2405
    functionName: cluster_async::subscribe_to_channels
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut ClusterConnection::ssubscribe'
    - '&mut ClusterConnection::subscribe'
    - get_push
    - unwrap
    - '&mut ClusterConnection::psubscribe'
    linkageType: ''
    returnType: void
    signature: 'async fn subscribe_to_channels(pubsub_conn: &mut ClusterConnection,rx:
      &mut UnboundedReceiver<PushInfo>,is_redis_6: bool,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut UnboundedReceiver<PushInfo>::recv'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2408,1
    - Dst: Result::timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2408,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2409,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2408,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - rx
    argTypes:
    - '&mut UnboundedReceiver<PushInfo>'
    constantsTouched: []
    func_position:
      end: 2413
      start: 2407
    functionDepth: 7
    functionLinenumber: 2407
    functionLinenumberEnd: 2413
    functionName: cluster_async::get_push
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - futures_time::time::Duration::from_millis
    - '&mut UnboundedReceiver<PushInfo>::recv'
    - unwrap
    - Result::timeout
    linkageType: ''
    returnType: PushInfo
    signature: 'async fn get_push(rx: &mut UnboundedReceiver<PushInfo>) -> PushInfo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&mut ClusterConnection::publish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2420,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2420,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2424,1
    - Dst: '&mut ClusterConnection::publish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2433,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2433,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2437,1
    - Dst: '&mut ClusterConnection::spublish'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2451,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2451,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2452,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - publish_conn
    - rx
    - is_redis_6
    argTypes:
    - '&mut ClusterConnection'
    - '&mut UnboundedReceiver<PushInfo>'
    - bool
    constantsTouched: []
    func_position:
      end: 2461
      start: 2415
    functionDepth: 8
    functionLinenumber: 2415
    functionLinenumberEnd: 2461
    functionName: cluster_async::check_publishing
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - get_push
    - '&mut ClusterConnection::publish'
    - unwrap
    - '&mut ClusterConnection::spublish'
    linkageType: ''
    returnType: void
    signature: 'async fn check_publishing(publish_conn: &mut ClusterConnection,rx:
      &mut UnboundedReceiver<PushInfo>,is_redis_6: bool,)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2465,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2466,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2467,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2467,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2469,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2474,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2476,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2479
      start: 2464
    functionDepth: 8
    functionLinenumber: 2464
    functionLinenumberEnd: 2479
    functionName: cluster_async::pub_sub_subscription
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - clone
    - use_protocol
    - ProtocolVersion::push_sender
    - subscribe_to_channels
    - check_if_redis_6
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    - check_publishing
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_subscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2483,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2484,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2485,1
    - Dst: redis::cluster::ClusterConfig::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2487,1
    - Dst: Self::set_push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2487,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2487,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2493,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2495,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2482
    functionDepth: 8
    functionLinenumber: 2482
    functionLinenumberEnd: 2498
    functionName: cluster_async::pub_sub_subscription_with_config
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Self::set_push_sender
    - clone
    - use_protocol
    - subscribe_to_channels
    - check_if_redis_6
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    - check_publishing
    - redis::cluster::ClusterConfig::new
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_subscription_with_config()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2502,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2503,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2506,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2507,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2511,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2511,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2513,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2513,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2513,1
    - Dst: "arg(\"SHARDNUMSUB\")\n                .arg(\"foo\")\n                .query_async::<(String,\
        \ usize)>"
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2513,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2513,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2501
    functionDepth: 2
    functionLinenumber: 2501
    functionLinenumberEnd: 2520
    functionName: cluster_async::pub_sub_shardnumsub
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::async_connection
    - cmd
    - use_protocol
    - "arg(\"SHARDNUMSUB\")\n                .arg(\"foo\")\n                .query_async::<(String,\
      \ usize)>"
    - check_if_redis_6
    - Cmd::arg
    - TestClusterContext::new_with_cluster_client_builder
    - unwrap
    - '&mut Cmd::arg'
    - ssubscribe
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_shardnumsub()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2524,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2525,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2526,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2526,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2528,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2533,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2535,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2535,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2536,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2544,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2544,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2545,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2554,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2554,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2555,1
    - Dst: punsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2563,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2563,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2564,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2574,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2574,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2575,1
    - Dst: sunsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2583,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2583,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2584,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2594,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2594,1
    - Dst: publish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2598,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2598,1
    - Dst: spublish
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2603,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2603,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2610
      start: 2523
    functionDepth: 7
    functionLinenumber: 2523
    functionLinenumberEnd: 2610
    functionName: cluster_async::pub_sub_unsubscription
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - sunsubscribe
    - publish
    - subscribe
    - spublish
    - psubscribe
    - clone
    - use_protocol
    - get_push
    - ProtocolVersion::push_sender
    - check_if_redis_6
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    - unwrap
    - unsubscribe
    - punsubscribe
    - ssubscribe
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_unsubscription()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2614,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2615,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2616,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2616,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2618,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2621,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2622,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2624,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2626,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2635
      start: 2613
    functionDepth: 8
    functionLinenumber: 2613
    functionLinenumberEnd: 2635
    functionName: cluster_async::connection_is_still_usable_if_pubsub_receiver_is_dropped
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::async_connection
    - clone
    - use_protocol
    - ProtocolVersion::push_sender
    - subscribe_to_channels
    - check_if_redis_6
    - drop
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    linkageType: ''
    returnType: void
    signature: async fn connection_is_still_usable_if_pubsub_receiver_is_dropped()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2640,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2641,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2642,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2642,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2644,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2647,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2648,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2650,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2650,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2659,1
    - Dst: unsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2671,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2671,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2676,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2689,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2689,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2694,1
    - Dst: punsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2704,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2704,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2709,1
    - Dst: ssubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2720,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2720,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2725,1
    - Dst: sunsubscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2735,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2735,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2740,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2758
      start: 2638
    functionDepth: 7
    functionLinenumber: 2638
    functionLinenumberEnd: 2758
    functionName: cluster_async::multiple_subscribes_and_unsubscribes_work
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::async_connection
    - sunsubscribe
    - subscribe
    - psubscribe
    - clone
    - use_protocol
    - get_push
    - ProtocolVersion::push_sender
    - check_if_redis_6
    - TestClusterContext::new_with_cluster_client_builder
    - tokio::sync::mpsc::unbounded_channel
    - unwrap
    - unsubscribe
    - punsubscribe
    - ssubscribe
    linkageType: ''
    returnType: void
    signature: async fn multiple_subscribes_and_unsubscribes_work()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2765,1
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2766,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2767,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2767,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2769,1
    - Dst: TestClusterContext::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2772,1
    - Dst: check_if_redis_6
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2776,1
    - Dst: subscribe_to_channels
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2778,1
    - Dst: drop
      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:2785,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2796,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2797,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2798,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2808,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2810,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2811,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2813,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2808,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2820,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2821,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2821,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2822,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2822,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2824,1
    - Dst: get_push
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2824,1
    - Dst: check_publishing
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2844,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2845
      start: 2761
    functionDepth: 8
    functionLinenumber: 2761
    functionLinenumberEnd: 2845
    functionName: cluster_async::pub_sub_reconnect_after_disconnect
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Some
    - Vec::clone
    - cmd
    - get_push
    - TestClusterContext::get_ports
    - subscribe_to_channels
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - check_publishing
    - route_command
    - push
    - clone
    - ProtocolVersion::push_sender
    - tokio::sync::mpsc::unbounded_channel
    - Vec::new
    - check_if_redis_6
    - RoutingInfo::MultiNode
    - drop
    - unwrap
    - RedisCluster::new
    - use_protocol
    - Default::default
    linkageType: ''
    returnType: void
    signature: async fn pub_sub_reconnect_after_disconnect()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2850,1
    - Dst: TestClusterContext::new_insecure_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2851,1
    - Dst: use_protocol
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2852,1
    - Dst: ProtocolVersion::push_sender
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2852,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2854,1
    - Dst: TestClusterContext::get_ports
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2857,1
    - Dst: TestClusterContext::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2859,1
    - Dst: drop
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2861,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2863,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2863,1
    - Dst: recv
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2871,1
    - Dst: timeout
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2871,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2873,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2871,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2886,1
    - Dst: Vec::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2887,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2888,1
    - Dst: route_command
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2898,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2900,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2901,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2903,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2914
      start: 2848
    functionDepth: 6
    functionLinenumber: 2848
    functionLinenumberEnd: 2914
    functionName: cluster_async::pub_sub_should_not_reconnect_if_subscription_failed
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Some
    - Vec::clone
    - cmd
    - subscribe
    - TestClusterContext::get_ports
    - unwrap_err
    - TestClusterContext::new_insecure_with_cluster_client_builder
    - route_command
    - TestClusterContext::async_connection
    - clone
    - ProtocolVersion::push_sender
    - tokio::sync::mpsc::unbounded_channel
    - timeout
    - recv
    - RoutingInfo::MultiNode
    - drop
    - unwrap
    - RedisCluster::new
    - use_protocol
    - Default::default
    - futures_time::time::Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn 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:2925,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2927,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2927,1
    - Dst: get_async_connection
      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:2929,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2929,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2929,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2929,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2929,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2935,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2935,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2935,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2935,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2935,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2942
      start: 2924
    functionDepth: 1
    functionLinenumber: 2924
    functionLinenumberEnd: 2942
    functionName: cluster_async::async_cluster_basic_cmd_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - cmd
    - TestClusterContext::new_with_mtls
    - support::mtls_test::create_cluster_client_from_cluster
    - '&mut Cmd::clone'
    - Result::unwrap
    - Self::query_async
    - exec_async
    - Cmd::arg
    - unwrap
    - '&mut Cmd::arg'
    - get_async_connection
    linkageType: ''
    returnType: void
    signature: async fn 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:2946,1
    - Dst: support::mtls_test::create_cluster_client_from_cluster
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2948,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2948,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2949,1
    - Dst: first
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2950,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2950,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2950,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2950,1
    - Dst: bool::is_ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2959,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2945
    functionDepth: 10
    functionLinenumber: 2945
    functionLinenumberEnd: 2973
    functionName: cluster_async::async_cluster_should_not_connect_without_mtls_enabled
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::new_with_mtls
    - support::mtls_test::create_cluster_client_from_cluster
    - bool::is_ok
    - Result::unwrap
    - connection_info
    - unwrap
    - first
    - get_async_connection
    - addr
    linkageType: ''
    returnType: void
    signature: async fn 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:2985,1
    - Dst: cmd
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2987,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2987,1
    - Dst: '&mut Cmd::take'
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2987,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2988,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2985,1
    - Dst: HashMap::<String, String>::from_redis_value_ref
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2992,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:2992,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut ClusterConnection'
    constantsTouched: []
    func_position:
      end: 3000
      start: 2984
    functionDepth: 1
    functionLinenumber: 2984
    functionLinenumberEnd: 3000
    functionName: cluster_async::check_unwatched
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - '&mut ClusterConnection::route_command'
    - cmd
    - '&mut Cmd::take'
    - Result::unwrap
    - Cmd::arg
    - RoutingInfo::MultiNode
    - HashMap::<String, String>::from_redis_value_ref
    - unwrap
    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:3004,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3005,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3007,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3008,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3011,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3011,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3011,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3011,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3011,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3011,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3011,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3007,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3025,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3026
      start: 3003
    functionDepth: 3
    functionLinenumber: 3003
    functionLinenumberEnd: 3026
    functionName: cluster_async::simple_case_success
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - get
    - redis::aio::transaction_async
    - set
    - clone
    - query_async
    - TestClusterContext::new
    - Result::async_connection
    - Pipeline::set
    - unwrap
    - check_unwatched
    - ignore
    linkageType: ''
    returnType: void
    signature: async fn simple_case_success()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3030,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3031,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3032,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3034,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3034,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3035,1
    - Dst: tokio::sync::Notify::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3035,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3036,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3037,1
    - Dst: tokio::sync::Notify::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3037,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3038,1
    - Dst: futures::future::join
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3040,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3041,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3042,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3045,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3046,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3047,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3049,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3050,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3051,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3053,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3053,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3053,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3053,1
    - Dst: Self::notified
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3062,1
    - Dst: set
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3063,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3063,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3064,1
    - Dst: Self::notify_one
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3066,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3040,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3074,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3074,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3075
      start: 3029
    functionDepth: 7
    functionLinenumber: 3029
    functionLinenumberEnd: 3075
    functionName: cluster_async::transaction_should_retry_on_watch
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Self::notified
    - set
    - tokio::sync::Notify::new
    - Arc::new
    - ignore
    - redis::aio::transaction_async
    - clone
    - query_async
    - TestClusterContext::new
    - Result::async_connection
    - Self::fetch_add
    - Pipeline::set
    - get
    - AtomicUsize::new
    - RedisServer::clone
    - unwrap
    - Self::notify_one
    - futures::future::join
    - check_unwatched
    - Self::clone
    linkageType: ''
    returnType: void
    signature: async fn transaction_should_retry_on_watch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3079,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3080,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3082,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3082,1
    - Dst: redis::aio::transaction_async
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3084,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3085,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3088,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3090,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3093,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3093,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3096,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3084,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3104,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3105
      start: 3078
    functionDepth: 7
    functionLinenumber: 3078
    functionLinenumberEnd: 3105
    functionName: cluster_async::transaction_should_retry_on_none_from_closure
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - Some
    - redis::aio::transaction_async
    - AtomicUsize::new
    - Ok
    - clone
    - Arc::new
    - TestClusterContext::new
    - Result::async_connection
    - Self::fetch_add
    - unwrap
    - check_unwatched
    - Self::clone
    linkageType: ''
    returnType: void
    signature: async fn transaction_should_retry_on_none_from_closure()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3109,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3110,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3111,1
    - Dst: AtomicUsize::new
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3111,1
    - Dst: redis::aio::transaction_async::<_, _, (), _, _>
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3113,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3114,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3117,1
    - Dst: Self::fetch_add
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3119,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3122,1
    - Dst: redis::RedisError::from
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3122,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3129,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3113,1
    - Dst: check_unwatched
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3141,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_cluster_async.rs:3141,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3142
      start: 3108
    functionDepth: 7
    functionLinenumber: 3108
    functionLinenumberEnd: 3142
    functionName: cluster_async::transaction_abort_if_internal_function_returns_error
    functionSourceFile: /src/redis-rs/redis/tests/test_cluster_async.rs
    functionUses: 0
    functionsReached:
    - AtomicUsize::new
    - redis::RedisError::from
    - Ok
    - clone
    - redis::aio::transaction_async::<_, _, (), _, _>
    - Arc::new
    - unwrap_err
    - TestClusterContext::new
    - Err
    - Result::async_connection
    - Self::fetch_add
    - check_unwatched
    - Self::clone
    linkageType: ''
    returnType: void
    signature: async fn transaction_abort_if_internal_function_returns_error()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/redis-rs/redis/tests/parser.rs:22,1
    - Dst: ArbitraryValue
      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
    - ArbitraryValue
    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: ArbitraryValue
      Src: /src/redis-rs/redis/tests/parser.rs:36,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/parser.rs:36,1
    - Dst: "iter()\n                    .map(|x| ArbitraryValue(x.clone()))\n    \
        \                .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/tests/parser.rs:34,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:38,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:39,1
    - Dst: Box::map
      Src: /src/redis-rs/redis/tests/parser.rs:39,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:40,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:40,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/parser.rs:40,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:39,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:39,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:45,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:45,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:49,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:50,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/parser.rs:57,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:57,1
    - Dst: ArbitraryValue
      Src: /src/redis-rs/redis/tests/parser.rs:59,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/parser.rs:59,1
    - Dst: "iter()\n                    .map(|x| ArbitraryValue(x.clone()))\n    \
        \                .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/tests/parser.rs:57,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/parser.rs:61,1
    - Dst: ArbitraryValue
      Src: /src/redis-rs/redis/tests/parser.rs:61,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/parser.rs:61,1
    - Dst: PushKind::to_string
      Src: /src/redis-rs/redis/tests/parser.rs:61,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:62,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:63,1
    - Dst: Box::map
      Src: /src/redis-rs/redis/tests/parser.rs:63,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:64,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:64,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/parser.rs:64,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:63,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:63,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:70,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:70,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:70,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:70,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:72,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:72,1
    - Dst: Box::map
      Src: /src/redis-rs/redis/tests/parser.rs:72,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:72,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:73,1
    - Dst: shrink
      Src: /src/redis-rs/redis/tests/parser.rs:73,1
    - Dst: Box::map
      Src: /src/redis-rs/redis/tests/parser.rs:73,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/parser.rs:73,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:75,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:80,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:81,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/parser.rs:88,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/parser.rs:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 119
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 26
    functionDepth: 7
    functionLinenumber: 26
    functionLinenumberEnd: 92
    functionName: ArbitraryValue::shrink
    functionSourceFile: /src/redis-rs/redis/tests/parser.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - iter
    - insert
    - map
    - "iter()\n                    .map(|x| ArbitraryValue(x.clone()))\n         \
      \           .collect::<Vec<_>>"
    - clone
    - shrink
    - collect
    - Value::SimpleString
    - ArbitraryValue
    - Box::map
    - PushKind::to_string
    - Box::new
    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:155,1
    - Dst: std::cmp::min
      Src: /src/redis-rs/redis/tests/parser.rs:157,1
    - Dst: '&mut task::Context::remaining'
      Src: /src/redis-rs/redis/tests/parser.rs:157,1
    - Dst: '&mut task::Context::initialize_unfilled'
      Src: /src/redis-rs/redis/tests/parser.rs:158,1
    - Dst: '&mut task::Context::take'
      Src: /src/redis-rs/redis/tests/parser.rs:159,1
    - Dst: Self::filled
      Src: /src/redis-rs/redis/tests/parser.rs:161,1
    - Dst: len
      Src: /src/redis-rs/redis/tests/parser.rs:161,1
    - Dst: '&mut task::Context::advance'
      Src: /src/redis-rs/redis/tests/parser.rs:162,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/tests/parser.rs:163,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/parser.rs:163,1
    - Dst: Pin<&mut Self>::waker
      Src: /src/redis-rs/redis/tests/parser.rs:167,1
    - Dst: wake_by_ref
      Src: /src/redis-rs/redis/tests/parser.rs:167,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/parser.rs:170,1
    - Dst: io::Error::new
      Src: /src/redis-rs/redis/tests/parser.rs:170,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/parser.rs:170,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/tests/parser.rs:177,1
    - Dst: RedisServer::poll_read
      Src: /src/redis-rs/redis/tests/parser.rs:177,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: 179
      start: 150
    functionDepth: 7
    functionLinenumber: 150
    functionLinenumberEnd: 179
    functionName: PartialAsyncRead::poll_read
    functionSourceFile: /src/redis-rs/redis/tests/parser.rs
    functionUses: 0
    functionsReached:
    - '&mut task::Context::advance'
    - io::Error::new
    - into
    - std::cmp::min
    - Pin<&mut Self>::waker
    - Ok
    - Pin::new
    - '&mut task::Context::take'
    - len
    - '&mut task::Context::remaining'
    - '&mut task::Context::initialize_unfilled'
    - Err
    - wake_by_ref
    - next
    - Self::filled
    - Poll::Ready
    - RedisServer::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: TestContext::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
    - TestContext::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: TestContext::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
    - TestContext::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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:34,1
    - Dst: redis::Connection::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
    - redis::Connection::geo_dist
    - unwrap
    - TestContext::connection
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:48,1
    - Dst: redis::Connection::geo_dist
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:55,1
    - Dst: redis::Connection::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
    - redis::Connection::geo_dist
    - unwrap
    - TestContext::connection
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:68,1
    - Dst: redis::Connection::geo_hash
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:71,1
    - Dst: redis::Connection::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
    - redis::Connection::geo_hash
    - TestContext::connection
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:87,1
    - Dst: redis::Connection::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: redis::Connection::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
    - unwrap
    - redis::Connection::geo_pos
    - TestContext::connection
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:111,1
    - Dst: redis::Connection::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
    - unwrap
    - redis::Connection::geo_pos
    - TestContext::connection
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_geospatial.rs:131,1
    - Dst: redis::Connection::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: 8
    functionLinenumber: 129
    functionLinenumberEnd: 180
    functionName: test_georadius
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - geo_radius
    - limit
    - Ord::cmp
    - Self::order
    - TestContext::connection
    - RadiusOptions::default
    - Self::with_dist
    - Self::with_coord
    - unwrap
    - sort_by
    - TestContext::new
    - redis::Connection::geo_radius
    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: TestContext::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: redis::Connection::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: 8
    functionLinenumber: 183
    functionLinenumberEnd: 197
    functionName: test_georadius_by_member
    functionSourceFile: /src/redis-rs/redis/tests/test_geospatial.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - as_str
    - collect
    - redis::Connection::geo_radius_by_member
    - Self::order
    - TestContext::connection
    - RadiusOptions::default
    - unwrap
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: fn test_georadius_by_member()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:12,1
    - Dst: TestContext::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
    - TestContext::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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:20,1
    - Dst: redis::Connection::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
    - redis::Connection::acl_help
    - expect
    - TestContext::connection
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:30,1
    - Dst: redis::Connection::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:
    - expect
    - TestContext::connection
    - unwrap
    - redis::Connection::acl_getuser
    - TestContext::new
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:100,1
    - Dst: redis::Connection::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: redis::Connection::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:
    - iter
    - expect
    - redis::Connection::acl_cat
    - TestContext::connection
    - redis::Connection::acl_cat_categoryname
    - TestContext::new
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:141,1
    - Dst: redis::Connection::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: redis::Connection::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:
    - redis::Connection::acl_genpass_bits
    - expect
    - TestContext::connection
    - redis::Connection::acl_genpass
    - TestContext::new
    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: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:152,1
    - Dst: redis::Connection::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
    - expect
    - redis::Connection::acl_log
    - TestContext::connection
    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 Cmd::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::arg
    - acl_dryrun
    - run_test_if_version_supported
    - arg
    - String::from
    - '&mut Cmd::arg'
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - exec
    - connection
    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:190,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:191,1
    - Dst: RedisResult::acl_getuser
      Src: /src/redis-rs/redis/tests/test_acl.rs:222,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:222,1
    - Dst: redis::ConnectionInfo::expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 264
    functionName: test_acl_info
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - redis::ConnectionInfo::expect
    - expect
    - RedisResult::acl_getuser
    - connection
    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:268,1
    - Dst: connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:269,1
    - Dst: RedisResult::acl_setuser_rules
      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: RedisResult::acl_getuser
      Src: /src/redis-rs/redis/tests/test_acl.rs:283,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:283,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 311
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 311
    functionName: test_acl_sample_info
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - run_test_if_version_supported
    - expect
    - RedisResult::acl_setuser_rules
    - RedisResult::acl_getuser
    - connection
    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:337,1
    - Dst: env_logger::builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:338,1
    - Dst: is_test
      Src: /src/redis-rs/redis/tests/test_acl.rs:339,1
    - Dst: std::env::var
      Src: /src/redis-rs/redis/tests/test_acl.rs:340,1
    - Dst: String::is_err
      Src: /src/redis-rs/redis/tests/test_acl.rs:340,1
    - Dst: filter_level
      Src: /src/redis-rs/redis/tests/test_acl.rs:341,1
    - Dst: init
      Src: /src/redis-rs/redis/tests/test_acl.rs:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 345
      start: 336
    functionDepth: 6
    functionLinenumber: 336
    functionLinenumberEnd: 345
    functionName: token_based_authentication_acl_tests::init_logger
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - init
    - filter_level
    - is_test
    - String::is_err
    - call_once
    - env_logger::builder
    linkageType: ''
    returnType: void
    signature: fn init_logger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:628,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:629,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:631,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:631,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:633,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:633,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:633,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/tests/test_acl.rs:637,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:637,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:637,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:637,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:637,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:637,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:637,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:637,1
    - Dst: MockStreamingCredentialsProvider::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:649,1
    - Dst: RedisServer::start
      Src: /src/redis-rs/redis/tests/test_acl.rs:650,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:651,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:651,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:654,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:654,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:661,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:661,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_acl.rs:661,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:661,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:670,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:670,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:675,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:675,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:675,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:675,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:675,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:682,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:682,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 688
      start: 627
    functionDepth: 7
    functionLinenumber: 627
    functionLinenumberEnd: 688
    functionName: token_based_authentication_acl_tests::authentication_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - Self::set_credentials_provider
    - get_multiplexed_async_connection_with_config
    - '&mut Cmd::clone'
    - MockStreamingCredentialsProvider::new
    - RedisServer::start
    - redis::AsyncConnectionConfig::new
    - '&mut Cmd::query_async'
    - Self::query_async
    - query_async
    - init_logger
    - arg
    - TestContext::async_connection
    - unwrap
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    - req_packed_command
    linkageType: ''
    returnType: void
    signature: async fn authentication_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&TestContext::async_connection'
      Src: /src/redis-rs/redis/tests/test_acl.rs:692,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:692,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:693,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/tests/test_acl.rs:694,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:694,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:694,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:694,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:694,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:694,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:694,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - '&TestContext'
    constantsTouched: []
    func_position:
      end: 704
      start: 691
    functionDepth: 3
    functionLinenumber: 691
    functionLinenumberEnd: 704
    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::arg
    - iter
    - '&TestContext::async_connection'
    - arg
    - unwrap
    - redis::cmd
    - '&mut Cmd::arg'
    - req_packed_command
    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:708,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:709,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:710,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:710,1
    - Dst: '&mut Cmd::clone'
      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 Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:711,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:715,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:719,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:720,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:721,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:721,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:724,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:724,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:731,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:731,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:737,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:737,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:737,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:740,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:740,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:746,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:746,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:751,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:751,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:751,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:754,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:754,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:760,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:760,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 764
      start: 707
    functionDepth: 4
    functionLinenumber: 707
    functionLinenumberEnd: 764
    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:
    - redis::Cmd::arg
    - start
    - Self::set_credentials_provider
    - get_multiplexed_async_connection_with_config
    - '&mut Cmd::clone'
    - redis::AsyncConnectionConfig::new
    - into
    - sleep
    - Self::query_async
    - init_logger
    - MockStreamingCredentialsProvider::multiple_tokens
    - add_users_with_jwt_tokens
    - Duration::from_millis
    - unwrap
    - redis::cmd
    - TestContext::new
    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:768,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:769,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:770,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:770,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:770,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:774,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens_with_errors
      Src: /src/redis-rs/redis/tests/test_acl.rs:779,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:780,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:781,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:781,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:784,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:784,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:791,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:791,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:797,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:797,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:797,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:799,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:799,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:806,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:806,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:806,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:808,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:808,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:815,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:815,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:815,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:817,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:817,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 767
    functionDepth: 4
    functionLinenumber: 767
    functionLinenumberEnd: 823
    functionName: token_based_authentication_acl_tests::authentication_error_handling_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - start
    - Self::set_credentials_provider
    - get_multiplexed_async_connection_with_config
    - '&mut Cmd::clone'
    - redis::AsyncConnectionConfig::new
    - into
    - sleep
    - Self::query_async
    - MockStreamingCredentialsProvider::multiple_tokens_with_errors
    - init_logger
    - add_users_with_jwt_tokens
    - Duration::from_millis
    - unwrap
    - redis::cmd
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn authentication_error_handling_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:827,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:828,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:829,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:829,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:829,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:835,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:839,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:840,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:843,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:843,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:847,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:847,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:852,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:852,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:857,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:857,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:864,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:864,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:866,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:866,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:872,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:872,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:872,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:877,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:877,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:879,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:879,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 890
      start: 826
    functionDepth: 4
    functionLinenumber: 826
    functionLinenumberEnd: 890
    functionName: token_based_authentication_acl_tests::multiple_connections_from_one_client_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - start
    - Self::set_credentials_provider
    - get_multiplexed_async_connection_with_config
    - '&mut Cmd::clone'
    - redis::AsyncConnectionConfig::new
    - into_iter
    - sleep
    - into
    - Self::query_async
    - init_logger
    - MockStreamingCredentialsProvider::multiple_tokens
    - add_users_with_jwt_tokens
    - Duration::from_millis
    - enumerate
    - unwrap
    - redis::cmd
    - TestContext::new
    linkageType: ''
    returnType: void
    signature: async fn 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:894,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:895,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:896,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:896,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:896,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:902,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:906,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:907,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:910,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:910,1
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_acl.rs:913,1
    - Dst: connection_info
      Src: /src/redis-rs/redis/tests/test_acl.rs:913,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:913,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:917,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:917,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:922,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:922,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:928,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:928,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:930,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:930,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:936,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:936,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:936,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:941,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:941,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:943,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:943,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 954
      start: 893
    functionDepth: 10
    functionLinenumber: 893
    functionLinenumberEnd: 954
    functionName: token_based_authentication_acl_tests::multiple_clients_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Client::open
    - TestContext::new
    - redis::Cmd::arg
    - start
    - into_iter
    - init_logger
    - add_users_with_jwt_tokens
    - RedisResult::unwrap
    - redis::cmd
    - '&mut Cmd::clone'
    - sleep
    - connection_info
    - enumerate
    - unwrap
    - into
    - Self::set_credentials_provider
    - get_multiplexed_async_connection_with_config
    - redis::AsyncConnectionConfig::new
    - Self::query_async
    - MockStreamingCredentialsProvider::multiple_tokens
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn multiple_clients_sharing_a_single_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:965,1
    - Dst: TestContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:966,1
    - Dst: add_users_with_jwt_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:970,1
    - Dst: MockStreamingCredentialsProvider::with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:974,1
    - Dst: MockProviderConfig::valid_then_invalid_credentials
      Src: /src/redis-rs/redis/tests/test_acl.rs:975,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:977,1
    - Dst: redis::AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:980,1
    - Dst: Self::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:980,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:983,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:983,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:990,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:990,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:990,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:991,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:991,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:997,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:997,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:997,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1001,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1001,1
    - Dst: TestContext::async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1006,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1006,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/tests/test_acl.rs:1007,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1008,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1008,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1008,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1015,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 964
    functionDepth: 9
    functionLinenumber: 964
    functionLinenumberEnd: 1024
    functionName: token_based_authentication_acl_tests::server_rejects_after_user_invalidated
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - MockProviderConfig::valid_then_invalid_credentials
    - TestContext::new
    - redis::Cmd::arg
    - start
    - init_logger
    - TestContext::async_connection
    - add_users_with_jwt_tokens
    - redis::cmd
    - '&mut Cmd::clone'
    - sleep
    - unwrap
    - '&mut Cmd::arg'
    - into
    - MockStreamingCredentialsProvider::with_config
    - Self::set_credentials_provider
    - get_multiplexed_async_connection_with_config
    - redis::AsyncConnectionConfig::new
    - Self::query_async
    - Duration::from_millis
    - req_packed_command
    linkageType: ''
    returnType: void
    signature: async fn server_rejects_after_user_invalidated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Client::open
      Src: /src/redis-rs/redis/tests/test_acl.rs:1034,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_acl.rs:1034,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1034,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1035,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1035,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:1036,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 3
    argNames:
    - cluster
    - username
    - token
    argTypes:
    - '&TestClusterContext'
    - '&str'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1047
      start: 1032
    functionDepth: 10
    functionLinenumber: 1032
    functionLinenumberEnd: 1047
    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::arg
    - exec_async
    - arg
    - RedisServer::connection_info
    - get_multiplexed_async_connection
    - redis::Client::open
    - expect
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - '&mut Cmd::arg'
    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:1051,1
    - Dst: add_user_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1052,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cluster
    argTypes:
    - '&TestClusterContext'
    constantsTouched: []
    func_position:
      end: 1054
      start: 1050
    functionDepth: 11
    functionLinenumber: 1050
    functionLinenumberEnd: 1054
    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:1058,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1059,1
    - Dst: MockStreamingCredentialsProvider::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:1061,1
    - Dst: RedisServer::start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1062,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1063,1
    - Dst: add_user_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1067,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1069,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1071,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1071,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1071,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1071,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1078,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1078,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1078,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1078,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:1078,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1085,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1085,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1085,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:1085,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1057
    functionDepth: 7
    functionLinenumber: 1057
    functionLinenumberEnd: 1092
    functionName: token_based_authentication_acl_tests::cluster_authentication_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - add_user_on_all_nodes
    - redis::Cmd::arg
    - RedisServer::start
    - '&mut Cmd::query_async'
    - exec_async
    - init_logger
    - expect
    - set_credentials_provider
    - Result::async_connection
    - TestClusterContext::new_with_cluster_client_builder
    - unwrap
    - redis::cmd
    - MockStreamingCredentialsProvider::new
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: void
    signature: async fn cluster_authentication_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:1096,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1097,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:1099,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1100,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1101,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1105,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1107,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1107,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1107,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1108,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1110,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1110,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1113,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1113,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1113,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1115,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1115,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1118,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1118,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1118,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1120,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1120,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1095
    functionDepth: 12
    functionLinenumber: 1095
    functionLinenumberEnd: 1122
    functionName: token_based_authentication_acl_tests::cluster_token_rotation_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - start
    - into
    - '&mut Cmd::clone'
    - sleep
    - Self::query_async
    - init_logger
    - MockStreamingCredentialsProvider::multiple_tokens
    - set_credentials_provider
    - Duration::from_millis
    - Result::async_connection
    - TestClusterContext::new_with_cluster_client_builder
    - unwrap
    - redis::cmd
    - add_users_with_jwt_tokens_on_all_nodes
    linkageType: ''
    returnType: void
    signature: async fn cluster_token_rotation_with_mock_streaming_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:1126,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1127,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens_with_errors
      Src: /src/redis-rs/redis/tests/test_acl.rs:1130,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1131,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1132,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1136,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1138,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1138,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1138,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1139,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1141,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1141,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1145,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1145,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1145,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1146,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1146,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1150,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1150,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1150,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1151,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1151,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1155,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1155,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1155,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1156,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1156,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1125
    functionDepth: 12
    functionLinenumber: 1125
    functionLinenumberEnd: 1158
    functionName: token_based_authentication_acl_tests::cluster_authentication_error_handling_with_mock_streaming_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - start
    - into
    - '&mut Cmd::clone'
    - sleep
    - Self::query_async
    - MockStreamingCredentialsProvider::multiple_tokens_with_errors
    - init_logger
    - set_credentials_provider
    - Duration::from_millis
    - Result::async_connection
    - TestClusterContext::new_with_cluster_client_builder
    - unwrap
    - redis::cmd
    - add_users_with_jwt_tokens_on_all_nodes
    linkageType: ''
    returnType: void
    signature: async fn 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:1162,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1163,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:1165,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1166,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1167,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1171,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1173,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1173,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1173,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1174,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1174,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1175,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1175,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:1177,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:1177,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1178,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1178,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1180,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1180,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1180,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_acl.rs:1182,1
    - Dst: exec_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: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1188,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1188,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1188,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:1190,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:1190,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1191,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1191,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1193,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1193,1
    - Dst: '&mut Cmd::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
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1161
    functionDepth: 12
    functionLinenumber: 1161
    functionLinenumberEnd: 1200
    functionName: token_based_authentication_acl_tests::cluster_multiple_connections_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::query_async'
    - exec_async
    - TestClusterContext::new_with_cluster_client_builder
    - get_async_connection
    - redis::Cmd::arg
    - start
    - into_iter
    - init_logger
    - redis::cmd
    - '&mut Cmd::clone'
    - sleep
    - set_credentials_provider
    - enumerate
    - unwrap
    - '&mut Cmd::arg'
    - add_users_with_jwt_tokens_on_all_nodes
    - into
    - to_string
    - Self::query_async
    - MockStreamingCredentialsProvider::multiple_tokens
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn cluster_multiple_connections_sharing_a_single_credentials_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/tests/test_acl.rs:1204,1
    - Dst: TestClusterContext::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:1205,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1207,1
    - Dst: MockStreamingCredentialsProvider::multiple_tokens
      Src: /src/redis-rs/redis/tests/test_acl.rs:1209,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1210,1
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:1212,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_acl.rs:1212,1
    - Dst: ClusterClientBuilder::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1212,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_acl.rs:1213,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/tests/test_acl.rs:1212,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1212,1
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/test_acl.rs:1216,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/test_acl.rs:1216,1
    - Dst: ClusterClientBuilder::set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1216,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/tests/test_acl.rs:1216,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1216,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1221,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1221,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1221,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1222,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1222,1
    - Dst: get_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1223,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1223,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:1225,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:1225,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1226,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1226,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1228,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1228,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1228,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/test_acl.rs:1230,1
    - Dst: exec_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: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1236,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1236,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1236,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/tests/test_acl.rs:1238,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/tests/test_acl.rs:1238,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1239,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1239,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1241,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1241,1
    - Dst: '&mut Cmd::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
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1248
      start: 1203
    functionDepth: 12
    functionLinenumber: 1203
    functionLinenumberEnd: 1248
    functionName: token_based_authentication_acl_tests::cluster_multiple_clients_sharing_a_single_credentials_provider
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - ClusterClientBuilder::build
    - '&mut Cmd::query_async'
    - exec_async
    - get_async_connection
    - redis::Cmd::arg
    - start
    - into_iter
    - clone
    - init_logger
    - TestClusterContext::new
    - ClusterClientBuilder::set_credentials_provider
    - RedisResult::unwrap
    - redis::cmd
    - ClusterClientBuilder::new
    - '&mut Cmd::clone'
    - sleep
    - enumerate
    - unwrap
    - '&mut Cmd::arg'
    - add_users_with_jwt_tokens_on_all_nodes
    - into
    - to_string
    - Self::query_async
    - MockStreamingCredentialsProvider::multiple_tokens
    - Duration::from_millis
    linkageType: ''
    returnType: void
    signature: async fn 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:1253,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/test_acl.rs:1253,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1253,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1254,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1254,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1255,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1255,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1255,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1255,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/test_acl.rs:1255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - cluster
    - username
    argTypes:
    - '&TestClusterContext'
    - '&str'
    constantsTouched: []
    func_position:
      end: 1262
      start: 1251
    functionDepth: 10
    functionLinenumber: 1251
    functionLinenumberEnd: 1262
    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::arg
    - exec_async
    - RedisServer::connection_info
    - get_multiplexed_async_connection
    - redis::Client::open
    - expect
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - '&mut Cmd::arg'
    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:1273,1
    - Dst: TestClusterContext::new_with_cluster_client_builder
      Src: /src/redis-rs/redis/tests/test_acl.rs:1274,1
    - Dst: MockStreamingCredentialsProvider::with_config
      Src: /src/redis-rs/redis/tests/test_acl.rs:1276,1
    - Dst: MockProviderConfig::valid_then_invalid_credentials
      Src: /src/redis-rs/redis/tests/test_acl.rs:1277,1
    - Dst: start
      Src: /src/redis-rs/redis/tests/test_acl.rs:1279,1
    - Dst: set_credentials_provider
      Src: /src/redis-rs/redis/tests/test_acl.rs:1280,1
    - Dst: add_users_with_jwt_tokens_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1284,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/test_acl.rs:1286,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/test_acl.rs:1286,1
    - Dst: '&mut Cmd::clone'
      Src: /src/redis-rs/redis/tests/test_acl.rs:1286,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/tests/test_acl.rs:1287,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1290,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1290,1
    - Dst: sleep
      Src: /src/redis-rs/redis/tests/test_acl.rs:1294,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/test_acl.rs:1294,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/test_acl.rs:1294,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1297,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/test_acl.rs:1297,1
    - Dst: delete_user_on_all_nodes
      Src: /src/redis-rs/redis/tests/test_acl.rs:1301,1
    - Dst: Self::query_async
      Src: /src/redis-rs/redis/tests/test_acl.rs:1305,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1272
    functionDepth: 12
    functionLinenumber: 1272
    functionLinenumberEnd: 1310
    functionName: token_based_authentication_acl_tests::cluster_server_rejects_after_user_invalidated
    functionSourceFile: /src/redis-rs/redis/tests/test_acl.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - MockProviderConfig::valid_then_invalid_credentials
    - MockStreamingCredentialsProvider::with_config
    - start
    - '&mut Cmd::clone'
    - into
    - sleep
    - Self::query_async
    - init_logger
    - set_credentials_provider
    - Duration::from_millis
    - Result::async_connection
    - TestClusterContext::new_with_cluster_client_builder
    - unwrap
    - redis::cmd
    - add_users_with_jwt_tokens_on_all_nodes
    - delete_user_on_all_nodes
    linkageType: ''
    returnType: void
    signature: async fn cluster_server_rejects_after_user_invalidated()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/test_module_json.rs:24,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:25,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/tests/test_module_json.rs:37,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/test_module_json.rs:40,1
    - Dst: json_set::<_, _, _, bool>
      Src: /src/redis-rs/redis/tests/test_module_json.rs:42,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/tests/test_module_json.rs:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 51
      start: 23
    functionDepth: 7
    functionLinenumber: 23
    functionLinenumberEnd: 51
    functionName: test_module_json_serialize_error
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - insert
    - TestContext::connection
    - TestContext::with_modules
    - unwrap_err
    - HashMap::new
    - json_set::<_, _, _, bool>
    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:55,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:56,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:58,1
    - Dst: redis::Connection::json_arr_append
      Src: /src/redis-rs/redis/tests/test_module_json.rs:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 69
    functionName: test_module_json_arr_append
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_arr_append
    - TestContext::connection
    - redis::Connection::json_set
    - TestContext::with_modules
    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:73,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:74,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:76,1
    - Dst: redis::Connection::json_arr_index
      Src: /src/redis-rs/redis/tests/test_module_json.rs:84,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:88,1
    - Dst: redis::Connection::json_arr_index_ss
      Src: /src/redis-rs/redis/tests/test_module_json.rs:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 100
    functionName: test_module_json_arr_index
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_arr_index
    - redis::Connection::json_arr_index_ss
    - redis::Connection::json_set
    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:104,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:105,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:107,1
    - Dst: redis::Connection::json_arr_insert
      Src: /src/redis-rs/redis/tests/test_module_json.rs:115,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:119,1
    - Dst: redis::Connection::json_arr_insert
      Src: /src/redis-rs/redis/tests/test_module_json.rs:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 130
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 130
    functionName: test_module_json_arr_insert
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_arr_insert
    - TestContext::connection
    - redis::Connection::json_set
    - TestContext::with_modules
    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:134,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:135,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:137,1
    - Dst: redis::Connection::json_arr_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:145,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:149,1
    - Dst: redis::Connection::json_arr_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 160
    functionName: test_module_json_arr_len
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_arr_len
    - TestContext::connection
    - redis::Connection::json_set
    - TestContext::with_modules
    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:164,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:165,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:167,1
    - Dst: redis::Connection::json_arr_pop
      Src: /src/redis-rs/redis/tests/test_module_json.rs:175,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:186,1
    - Dst: redis::Connection::json_arr_pop
      Src: /src/redis-rs/redis/tests/test_module_json.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 204
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 204
    functionName: test_module_json_arr_pop
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_arr_pop
    - TestContext::connection
    - redis::Connection::json_set
    - TestContext::with_modules
    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:208,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:209,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:211,1
    - Dst: redis::Connection::json_arr_trim
      Src: /src/redis-rs/redis/tests/test_module_json.rs:219,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:223,1
    - Dst: redis::Connection::json_arr_trim
      Src: /src/redis-rs/redis/tests/test_module_json.rs:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 234
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 234
    functionName: test_module_json_arr_trim
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::json_arr_trim
    - redis::Connection::json_set
    - TestContext::with_modules
    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:238,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:239,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:241,1
    - Dst: redis::Connection::json_clear
      Src: /src/redis-rs/redis/tests/test_module_json.rs:245,1
    - Dst: redis::Connection::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 259
    functionName: test_module_json_clear
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_get
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_clear
    - redis::Connection::json_set
    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:263,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:264,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:266,1
    - Dst: redis::Connection::json_del
      Src: /src/redis-rs/redis/tests/test_module_json.rs:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 277
    functionName: test_module_json_del
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::json_set
    - redis::Connection::json_del
    - TestContext::with_modules
    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:281,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:282,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:284,1
    - Dst: redis::Connection::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:292,1
    - Dst: redis::Connection::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:296,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_module_json.rs:298,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_module_json.rs:298,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/test_module_json.rs:299,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/test_module_json.rs:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 303
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 303
    functionName: test_module_json_get
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - Ok
    - '&str::into'
    - redis::Connection::json_get
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    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:307,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:308,1
    - Dst: redis::Connection::json_mset
      Src: /src/redis-rs/redis/tests/test_module_json.rs:310,1
    - Dst: redis::Connection::json_mget
      Src: /src/redis-rs/redis/tests/test_module_json.rs:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 337
    functionName: test_module_json_mget
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_mget
    - TestContext::connection
    - redis::Connection::json_mset
    - TestContext::with_modules
    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:341,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:342,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:344,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_module_json.rs:352,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_module_json.rs:352,1
    - Dst: redis::Connection::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:354,1
    - Dst: redis::Connection::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:357,1
    - Dst: redis::Connection::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:363,1
    - Dst: redis::Connection::json_num_incr_by
      Src: /src/redis-rs/redis/tests/test_module_json.rs:366,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 371
    functionName: test_module_json_num_incr_by
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::get_version
    - supports_resp3
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_num_incr_by
    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:375,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:376,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:378,1
    - Dst: redis::Connection::json_obj_keys
      Src: /src/redis-rs/redis/tests/test_module_json.rs:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 398
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 398
    functionName: test_module_json_obj_keys
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::json_obj_keys
    - redis::Connection::json_set
    - TestContext::with_modules
    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:402,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:403,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:405,1
    - Dst: redis::Connection::json_obj_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 416
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 416
    functionName: test_module_json_obj_len
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::json_obj_len
    - redis::Connection::json_set
    - TestContext::with_modules
    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:420,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:421,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 426
    functionName: test_module_json_set
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::json_set
    - TestContext::with_modules
    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:430,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:431,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:433,1
    - Dst: redis::Connection::json_str_append
      Src: /src/redis-rs/redis/tests/test_module_json.rs:441,1
    - Dst: redis::Connection::json_get
      Src: /src/redis-rs/redis/tests/test_module_json.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 451
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 451
    functionName: test_module_json_str_append
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - redis::Connection::json_get
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::json_str_append
    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:455,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:456,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:458,1
    - Dst: redis::Connection::json_str_len
      Src: /src/redis-rs/redis/tests/test_module_json.rs:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: test_module_json_str_len
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::json_set
    - redis::Connection::json_str_len
    - TestContext::with_modules
    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:473,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:474,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:476,1
    - Dst: redis::Connection::json_toggle
      Src: /src/redis-rs/redis/tests/test_module_json.rs:480,1
    - Dst: redis::Connection::json_toggle
      Src: /src/redis-rs/redis/tests/test_module_json.rs:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 485
    functionName: test_module_json_toggle
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::connection
    - redis::Connection::json_set
    - redis::Connection::json_toggle
    - TestContext::with_modules
    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:489,1
    - Dst: TestContext::connection
      Src: /src/redis-rs/redis/tests/test_module_json.rs:490,1
    - Dst: redis::Connection::json_set
      Src: /src/redis-rs/redis/tests/test_module_json.rs:492,1
    - Dst: redis::Connection::json_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:500,1
    - Dst: redis::Connection::json_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:501,1
    - Dst: redis::Connection::json_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:502,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/tests/test_module_json.rs:504,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/test_module_json.rs:504,1
    - Dst: redis::Connection::key_type
      Src: /src/redis-rs/redis/tests/test_module_json.rs:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 540
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 540
    functionName: test_module_json_type
    functionSourceFile: /src/redis-rs/redis/tests/test_module_json.rs
    functionUses: 0
    functionsReached:
    - TestContext::get_version
    - redis::Connection::json_type
    - supports_resp3
    - TestContext::connection
    - TestContext::with_modules
    - redis::Connection::json_set
    - redis::Connection::key_type
    linkageType: ''
    returnType: void
    signature: fn test_module_json_type()
  - 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: 6
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: init_logger
    functionSourceFile: /src/redis-rs/redis/tests/test_credentials_provider_failures.rs
    functionUses: 13
    functionsReached:
    - std::env::var
    - init
    - filter_level
    - is_test
    - String::is_err
    - call_once
    - env_logger::builder
    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: 7
    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
    - get_multiplexed_async_connection_with_config
    - redis::AsyncConnectionConfig::new
    - init_logger
    - unwrap_err
    - TestContext::new
    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: 7
    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
    - get_multiplexed_async_connection_with_config
    - redis::AsyncConnectionConfig::new
    - init_logger
    - unwrap_err
    - TestContext::new
    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: 7
    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:
    - err
    - init_logger
    - set_credentials_provider
    - TestClusterContext::new_with_cluster_client_builder
    - unwrap
    - get_async_connection
    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: 7
    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:
    - err
    - init_logger
    - set_credentials_provider
    - TestClusterContext::new_with_cluster_client_builder
    - unwrap
    - get_async_connection
    linkageType: ''
    returnType: void
    signature: async fn test_cluster_connection_fails_when_credentials_stream_is_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::ConnectionInfo::into_connection_info
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:42,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:42,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:44,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:48,1
    - Dst: future::ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:48,1
    - Dst: read
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:49,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:49,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:49,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:49,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - info
    - _config
    argTypes:
    - T
    - redis::AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 57
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 57
    functionName: MockConnection::connect_with_config
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - get
    - Box::pin
    - future::ok
    - clone
    - read
    - RedisResult::unwrap
    - unwrap
    - unwrap_or_else
    - redis::ConnectionInfo::into_connection_info
    - redis::ConnectionInfo::addr
    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:65,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:65,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:67,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:71,1
    - Dst: read
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:72,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:72,1
    - Dst: get
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:72,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:72,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 2
    argNames:
    - info
    - _timeout
    argTypes:
    - T
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: MockConnection::connect
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - get
    - Ok
    - clone
    - read
    - RedisResult::unwrap
    - unwrap
    - unwrap_or_else
    - redis::ConnectionInfo::into_connection_info
    - redis::ConnectionInfo::addr
    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:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    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:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _dur
    argTypes:
    - Option<std::time::Duration>
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - _dur
    argTypes:
    - Option<std::time::Duration>
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    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:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    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:100,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - xs
    - ys
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 106
      start: 99
    functionDepth: 3
    functionLinenumber: 99
    functionLinenumberEnd: 106
    functionName: contains_slice
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 9
    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:109,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 4
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: is_connection_check
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 11
    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:113,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:114,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:114,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:114,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:114,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:115,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:115,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:116,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:116,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:116,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 127
      start: 112
    functionDepth: 5
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: respond_startup
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 12
    functionsReached:
    - Ok
    - '&str::into'
    - Value::SimpleString
    - Err
    - is_connection_check
    - contains_slice
    - Value::Array
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: respond_startup_with_replica
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 3
    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:141,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - cmd
    argTypes:
    - '&str'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 157
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 157
    functionName: respond_startup_two_nodes
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 10
    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
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:164,1
    - Dst: is_connection_check
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:176,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:177,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:177,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:177,1
    - Dst: '&str::into'
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:177,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:178,1
    - Dst: contains_slice
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:178,1
    - Dst: Option<Vec<MockSlotRange>>::into_iter
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:179,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:179,1
    - Dst: push
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:191,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:191,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:196,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:179,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:199,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:199,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:199,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - name
    - cmd
    - slots_config
    argTypes:
    - '&str'
    - '&[u8]'
    - Option<Vec<MockSlotRange>>
    constantsTouched: []
    func_position:
      end: 203
      start: 159
    functionDepth: 5
    functionLinenumber: 159
    functionLinenumberEnd: 203
    functionName: respond_startup_with_replica_using_config
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 23
    functionsReached:
    - push
    - Ok
    - '&str::into'
    - collect
    - Value::SimpleString
    - Option<Vec<MockSlotRange>>::unwrap_or
    - Err
    - is_connection_check
    - contains_slice
    - std::iter::Chain::map
    - Value::Array
    - Option<Vec<MockSlotRange>>::into_iter
    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: expect_err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: MockConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - expect_err
    linkageType: ''
    returnType: RedisResult
    signature: 'fn req_packed_command(&mut self, cmd: &[u8]) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expect_err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:247,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:249,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:252,1
    - Dst: std::iter::Chain::nth
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:252,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:253,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:254,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:255,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:255,1
    - Dst: Err
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:259,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:260,1
    - Dst: String::from_redis_value
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:262,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:262,1
    - Dst: into
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 3
    argNames:
    - cmd
    - offset
    - _count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 268
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 268
    functionName: MockConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - into
    - Ok
    - Result::unwrap
    - Err
    - String::from_redis_value
    - expect_err
    - std::iter::Chain::nth
    - RedisResult::into_iter
    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: 272
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 272
    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: 276
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 276
    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: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    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:299,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:299,1
    - Dst: remove
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 301
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 301
    functionName: RemoveHandler::drop
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 0
    functionsReached:
    - write
    - remove
    - unwrap
    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:309,1
    - Dst: ClusterClient::builder
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:310,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: 314
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 314
    functionName: MockEnv::new
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 12
    functionsReached:
    - Self::with_client_builder
    - ClusterClient::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:322,1
    - Dst: enable_io
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:322,1
    - Dst: enable_time
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:322,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:322,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:322,1
    - Dst: to_string
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:328,1
    - Dst: write
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:329,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:329,1
    - Dst: insert
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:329,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:332,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:332,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:334,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:334,1
    - Dst: get_generic_connection
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:335,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:335,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:337,1
    - Dst: get_async_generic_connection
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:338,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:337,1
    - Dst: RemoveHandler
      Src: /src/redis-rs/redis/tests/support/mock_cluster.rs:347,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: 349
      start: 316
    functionDepth: 7
    functionLinenumber: 316
    functionLinenumberEnd: 349
    functionName: MockEnv::with_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/mock_cluster.rs
    functionUses: 38
    functionsReached:
    - enable_io
    - to_string
    - insert
    - enable_time
    - write
    - tokio::runtime::Builder::new_current_thread
    - clone
    - get_generic_connection
    - Arc::new
    - RemoveHandler
    - build
    - unwrap
    - RedisResult::unwrap
    - tokio::runtime::Runtime::block_on
    - get_async_generic_connection
    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:23,1
    - Dst: enable_io
      Src: /src/redis-rs/redis/tests/support/mod.rs:26,1
    - Dst: enable_time
      Src: /src/redis-rs/redis/tests/support/mod.rs:28,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mod.rs:30,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 31
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 31
    functionName: current_thread_runtime
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - enable_io
    - enable_time
    - tokio::runtime::Builder::new_current_thread
    - 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:56,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:56,1
    - Dst: store
      Src: /src/redis-rs/redis/tests/support/mod.rs:58,1
    - Dst: futures_util::FutureExt::fuse
      Src: /src/redis-rs/redis/tests/support/mod.rs:62,1
    - Dst: load
      Src: /src/redis-rs/redis/tests/support/mod.rs:64,1
    - Dst: futures_time::task::sleep
      Src: /src/redis-rs/redis/tests/support/mod.rs:67,1
    - Dst: futures_time::time::Duration::from_millis
      Src: /src/redis-rs/redis/tests/support/mod.rs:67,1
    - Dst: futures_util::FutureExt::fuse
      Src: /src/redis-rs/redis/tests/support/mod.rs:70,1
    - Dst: block_on_all_using_tokio
      Src: /src/redis-rs/redis/tests/support/mod.rs:79,1
    - Dst: block_on_all_using_smol
      Src: /src/redis-rs/redis/tests/support/mod.rs:81,1
    - Dst: panic::take_hook
      Src: /src/redis-rs/redis/tests/support/mod.rs:84,1
    - Dst: swap
      Src: /src/redis-rs/redis/tests/support/mod.rs:85,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - f
    - runtime
    argTypes:
    - F
    - RuntimeType
    constantsTouched: []
    func_position:
      end: 90
      start: 44
    functionDepth: 7
    functionLinenumber: 44
    functionLinenumberEnd: 90
    functionName: block_on_all
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 3
    functionsReached:
    - swap
    - block_on_all_using_tokio
    - futures_time::task::sleep
    - block_on_all_using_smol
    - panic::take_hook
    - futures_util::FutureExt::fuse
    - panic::set_hook
    - load
    - unwrap
    - futures_time::time::Duration::from_millis
    - store
    - Box::new
    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:98,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:98,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/tests/support/mod.rs:99,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/tests/support/mod.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 100
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 100
    functionName: block_on_all_using_tokio
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - Result::unwrap
    - tokio::runtime::Runtime::block_on
    - current_thread_runtime
    - redis::aio::prefer_tokio
    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:108,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:108,1
    - Dst: smol::block_on
      Src: /src/redis-rs/redis/tests/support/mod.rs:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    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:143,1
    - Dst: is_none
      Src: /src/redis-rs/redis/tests/support/mod.rs:143,1
    - Dst: rustls::crypto::ring::default_provider
      Src: /src/redis-rs/redis/tests/support/mod.rs:145,1
    - Dst: install_default
      Src: /src/redis-rs/redis/tests/support/mod.rs:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: start_tls_crypto_provider
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - is_none
    - install_default
    - rustls::crypto::ring::default_provider
    - rustls::crypto::CryptoProvider::get_default
    linkageType: ''
    returnType: void
    signature: pub(crate) fn start_tls_crypto_provider()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestContext::with_modules
      Src: /src/redis-rs/redis/tests/support/mod.rs:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: TestContext::new
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 167
    functionsReached:
    - TestContext::with_modules
    linkageType: ''
    returnType: TestContext
    signature: pub fn new() -> TestContext
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: TestContext::new_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - Self::with_modules_and_tls
    linkageType: ''
    returnType: TestContext
    signature: pub fn new_with_mtls() -> TestContext
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:160,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - tls_files
    - mtls_enabled
    argTypes:
    - TlsFilePaths
    - bool
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: TestContext::with_tls
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - Some
    - Self::with_modules_and_tls
    linkageType: ''
    returnType: TestContext
    signature: 'pub fn with_tls(tls_files: TlsFilePaths, mtls_enabled: bool) -> TestContext'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - modules
    argTypes:
    - '&[Module]'
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: TestContext::with_modules
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 23
    functionsReached:
    - Self::with_modules_and_tls
    linkageType: ''
    returnType: TestContext
    signature: 'pub fn with_modules(modules: &[Module]) -> TestContext'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::with_modules_addr_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - ConnectionAddr
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: TestContext::new_with_addr
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 4
    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:176,1
    - Dst: redis_test::utils::get_random_available_port
      Src: /src/redis-rs/redis/tests/support/mod.rs:177,1
    - Dst: RedisServer::get_addr
      Src: /src/redis-rs/redis/tests/support/mod.rs:178,1
    - Dst: Self::with_modules_addr_and_tls
      Src: /src/redis-rs/redis/tests/support/mod.rs:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - modules
    - mtls_enabled
    - tls_files
    argTypes:
    - '&[Module]'
    - bool
    - Option<TlsFilePaths>
    constantsTouched: []
    func_position:
      end: 180
      start: 171
    functionDepth: 5
    functionLinenumber: 171
    functionLinenumberEnd: 180
    functionName: TestContext::with_modules_and_tls
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - redis_test::utils::get_random_available_port
    - start_tls_crypto_provider
    - RedisServer::get_addr
    - Self::with_modules_addr_and_tls
    linkageType: ''
    returnType: Self
    signature: 'fn with_modules_and_tls(modules: &[Module],mtls_enabled: bool,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:188,1
    - Dst: Cmd::spawn
      Src: /src/redis-rs/redis/tests/support/mod.rs:195,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/tests/support/mod.rs:195,1
    - Dst: build_single_client
      Src: /src/redis-rs/redis/tests/support/mod.rs:201,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/support/mod.rs:201,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:201,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/support/mod.rs:205,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:208,1
    - Dst: is_connection_refusal
      Src: /src/redis-rs/redis/tests/support/mod.rs:210,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/support/mod.rs:211,1
    - Dst: flushdb::<()>
      Src: /src/redis-rs/redis/tests/support/mod.rs:232,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:232,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/support/mod.rs:237,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 44
    argCount: 4
    argNames:
    - modules
    - mtls_enabled
    - addr
    - tls_files
    argTypes:
    - '&[Module]'
    - bool
    - ConnectionAddr
    - Option<TlsFilePaths>
    constantsTouched: []
    func_position:
      end: 239
      start: 182
    functionDepth: 10
    functionLinenumber: 182
    functionLinenumberEnd: 239
    functionName: TestContext::with_modules_addr_and_tls
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - build_single_client
    - RedisServer::connection_info
    - redis_test::server::use_protocol
    - Duration::from_millis
    - RedisServer::new_with_addr_tls_modules_and_spawner
    - is_connection_refusal
    - RedisResult::unwrap
    - unwrap
    - unwrap_or_else
    - Cmd::spawn
    - flushdb::<()>
    - std::thread::sleep
    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: get_connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:242,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: TestContext::connection
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 127
    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:247,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: TestContext::async_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 25
    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:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: TestContext::async_pubsub
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 10
    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:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: TestContext::stop_server
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    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:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 264
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 264
    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:270,1
    - Dst: CacheConfig::default
      Src: /src/redis-rs/redis/tests/support/mod.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: TestContext::async_connection_with_cache
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 3
    functionsReached:
    - TestContext::async_connection_with_cache_config
    - CacheConfig::default
    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:280,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/tests/support/mod.rs:282,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:284,1
    - Dst: Self::set_cache_config
      Src: /src/redis-rs/redis/tests/support/mod.rs:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 288
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 288
    functionName: TestContext::async_connection_with_cache_config
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 10
    functionsReached:
    - clone
    - AsyncConnectionConfig::new
    - 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:291,1
    - Dst: get_version
      Src: /src/redis-rs/redis/tests/support/mod.rs:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 2
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: TestContext::get_version
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 5
    functionsReached:
    - get_version
    - TestContext::connection
    linkageType: ''
    returnType: Version
    signature: pub fn get_version(&self) -> Version
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:300,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:301,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:302,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:302,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 3
    argNames:
    - values
    - writer
    - prefix
    argTypes:
    - '&[Value]'
    - '&mut W'
    - '&str'
    constantsTouched: []
    func_position:
      end: 305
      start: 296
    functionDepth: 13
    functionLinenumber: 296
    functionLinenumberEnd: 305
    functionName: encode_iter
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - io::Result::unwrap
    - unwrap
    - Self::iter
    - encode_value
    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:310,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:311,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:312,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:312,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:313,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:313,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:315,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - values
    - writer
    - prefix
    argTypes:
    - '&[(Value, Value)]'
    - '&mut W'
    - '&str'
    constantsTouched: []
    func_position:
      end: 316
      start: 306
    functionDepth: 13
    functionLinenumber: 306
    functionLinenumberEnd: 316
    functionName: encode_map
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - io::Result::unwrap
    - unwrap
    - Self::iter
    - encode_value
    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:326,1
    - Dst: '&mut W::write_all'
      Src: /src/redis-rs/redis/tests/support/mod.rs:327,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:327,1
    - Dst: '&mut W::write_all'
      Src: /src/redis-rs/redis/tests/support/mod.rs:328,1
    - Dst: encode_iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:330,1
    - Dst: encode_map
      Src: /src/redis-rs/redis/tests/support/mod.rs:333,1
    - Dst: encode_map
      Src: /src/redis-rs/redis/tests/support/mod.rs:338,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:338,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:339,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:339,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:340,1
    - Dst: encode_iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:342,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:363,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:365,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:371,1
    - Dst: iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:372,1
    - Dst: encode_value
      Src: /src/redis-rs/redis/tests/support/mod.rs:373,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:373,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:375,1
    - Dst: details
      Src: /src/redis-rs/redis/tests/support/mod.rs:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 2
    argNames:
    - value
    - writer
    argTypes:
    - '&Value'
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 383
      start: 317
    functionDepth: 14
    functionLinenumber: 317
    functionLinenumberEnd: 383
    functionName: encode_value
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 7
    functionsReached:
    - iter
    - Ok
    - io::Result::unwrap
    - '&mut W::write_all'
    - unwrap
    - details
    - encode_iter
    - encode_value
    - encode_map
    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: redis::ConnectionInfo::get
      Src: /src/redis-rs/redis/tests/support/mod.rs:388,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:388,1
    - Dst: u8::split
      Src: /src/redis-rs/redis/tests/support/mod.rs:389,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/support/mod.rs:389,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/tests/support/mod.rs:391,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:391,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/mod.rs:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - info
    argTypes:
    - InfoDict
    constantsTouched: []
    func_position:
      end: 395
      start: 387
    functionDepth: 13
    functionLinenumber: 387
    functionLinenumberEnd: 395
    functionName: parse_version
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 1
    functionsReached:
    - map
    - redis::ConnectionInfo::get
    - collect
    - unwrap
    - u8::split
    - parse::<u16>
    linkageType: ''
    returnType: Version
    signature: 'pub fn parse_version(info: InfoDict) -> Version'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: redis::Cmd::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:398,1
    - Dst: Self::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:398,1
    - Dst: query
      Src: /src/redis-rs/redis/tests/support/mod.rs:398,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:398,1
    - Dst: parse_version
      Src: /src/redis-rs/redis/tests/support/mod.rs:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut impl redis::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 400
      start: 397
    functionDepth: 13
    functionLinenumber: 397
    functionLinenumberEnd: 400
    functionName: get_version
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 6
    functionsReached:
    - Self::arg
    - redis::Cmd::new
    - query
    - unwrap
    - parse_version
    linkageType: ''
    returnType: Version
    signature: 'fn get_version(conn: &mut impl redis::ConnectionLike) -> Version'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected_version
    - version
    argTypes:
    - u16
    - Version
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: is_major_version
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_major_version(expected_version: u16, version: Version) ->
      bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - expected_major_minor
    - version
    argTypes:
    - (u16, u16)
    - Version
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: is_version
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: 'pub fn is_version(expected_major_minor: (u16, u16), version: Version)
      -> bool'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: $crate::support::TestContext::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:2,1
    - Dst: TestContext::get_version
      Src: /src/redis-rs/redis/tests/support/mod.rs:3,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 435
      start: 422
    functionDepth: 15
    functionLinenumber: 422
    functionLinenumberEnd: 435
    functionName: run_test_if_version_supported
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 44
    functionsReached:
    - TestContext::get_version
    - $crate::support::TestContext::new
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:439,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:439,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:440,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:441,1
    - Dst: RedisServer::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:441,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:441,1
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:445,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:445,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:446,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:447,1
    - Dst: RedisServer::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:447,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:447,1
    - Dst: File::open
      Src: /src/redis-rs/redis/tests/support/mod.rs:451,1
    - Dst: bool::expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:451,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:452,1
    - Dst: BufReader::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:453,1
    - Dst: RedisServer::read_to_end
      Src: /src/redis-rs/redis/tests/support/mod.rs:453,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:453,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:458,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/mod.rs:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - tls_file_paths
    argTypes:
    - '&TlsFilePaths'
    constantsTouched: []
    func_position:
      end: 464
      start: 438
    functionDepth: 7
    functionLinenumber: 438
    functionLinenumberEnd: 464
    functionName: load_certs_from_file
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - BufReader::new
    - Some
    - Vec::new
    - File::open
    - expect
    - RedisServer::read_to_end
    - bool::expect
    linkageType: ''
    returnType: TlsCertificates
    signature: '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:492,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: 493
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 493
    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: iter
      Src: /src/redis-rs/redis/tests/support/mod.rs:501,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/support/mod.rs:501,1
    - Dst: addr
      Src: /src/redis-rs/redis/tests/support/mod.rs:503,1
    - Dst: '&str::to_owned'
      Src: /src/redis-rs/redis/tests/support/mod.rs:505,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/tests/support/mod.rs:504,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:504,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/mod.rs:512,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/mod.rs:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - nodes
    argTypes:
    - '&[ConnectionInfo]'
    constantsTouched: []
    func_position:
      end: 515
      start: 500
    functionDepth: 13
    functionLinenumber: 500
    functionLinenumberEnd: 515
    functionName: mtls_test::clean_node_info
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 0
    functionsReached:
    - iter
    - '&str::to_owned'
    - into_connection_info
    - map
    - clone
    - collect
    - unwrap
    - addr
    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:521,1
    - Dst: expect
      Src: /src/redis-rs/redis/tests/support/mod.rs:521,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/tests/support/mod.rs:526,1
    - Dst: clean_node_info
      Src: /src/redis-rs/redis/tests/support/mod.rs:527,1
    - Dst: redis::cluster::ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/support/mod.rs:528,1
    - Dst: certs
      Src: /src/redis-rs/redis/tests/support/mod.rs:532,1
    - Dst: load_certs_from_file
      Src: /src/redis-rs/redis/tests/support/mod.rs:532,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/mod.rs:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 2
    argNames:
    - cluster
    - mtls_enabled
    argTypes:
    - '&TestClusterContext'
    - bool
    constantsTouched: []
    func_position:
      end: 541
      start: 517
    functionDepth: 14
    functionLinenumber: 517
    functionLinenumberEnd: 541
    functionName: mtls_test::create_cluster_client_from_cluster
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 4
    functionsReached:
    - redis::cluster::ClusterClientBuilder::new
    - certs
    - expect
    - load_certs_from_file
    - as_ref
    - build
    - first
    - clean_node_info
    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:545,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:546,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:546,1
    - Dst: '&mut Cmd::ignore'
      Src: /src/redis-rs/redis/tests/support/mod.rs:546,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:546,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:546,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:546,1
    - Dst: ignore
      Src: /src/redis-rs/redis/tests/support/mod.rs:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 554
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 554
    functionName: build_simple_pipeline_for_invalidation
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - arg
    - Pipeline::cmd
    - redis::cmd
    - '&mut Cmd::ignore'
    - redis::pipe
    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:561,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:561,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/tests/support/mod.rs:561,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:561,1
    - Dst: redis::ConnectionInfo::split_once
      Src: /src/redis-rs/redis/tests/support/mod.rs:566,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:566,1
    - Dst: split_once
      Src: /src/redis-rs/redis/tests/support/mod.rs:568,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:568,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/tests/support/mod.rs:570,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:570,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/mod.rs:571,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:571,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/support/mod.rs:571,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/mod.rs:571,1
    - Dst: query_async
      Src: /src/redis-rs/redis/tests/support/mod.rs:571,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/mod.rs:571,1
    - Dst: Ok
      Src: /src/redis-rs/redis/tests/support/mod.rs:579,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: 580
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 580
    functionName: kill_client_async
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 2
    functionsReached:
    - redis::ConnectionInfo::split_once
    - Ok
    - '&mut Cmd::query_async'
    - query_async
    - arg
    - get_multiplexed_async_connection
    - Cmd::arg
    - split_once
    - unwrap
    - redis::cmd
    - '&mut Cmd::arg'
    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:586,1
    - Dst: spawn
      Src: /src/redis-rs/redis/tests/support/mod.rs:588,1
    - Dst: smol::spawn
      Src: /src/redis-rs/redis/tests/support/mod.rs:592,1
    - Dst: detach
      Src: /src/redis-rs/redis/tests/support/mod.rs:592,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: 597
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 597
    functionName: spawn
    functionSourceFile: /src/redis-rs/redis/tests/support/mod.rs
    functionUses: 17
    functionsReached:
    - tokio::runtime::Handle::try_current
    - smol::spawn
    - spawn
    - detach
    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: 13
    functionLinenumber: 2
    functionLinenumberEnd: 10
    functionName: assert_args
    functionSourceFile: /src/redis-rs/redis/tests/support/util.rs
    functionUses: 5
    functionsReached:
    - Result::as_ref
    - iter
    - map
    - std::str::from_utf8
    - collect
    - to_redis_args
    - unwrap
    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: 27
    functionsReached:
    - Self::new_with_cluster_client_builder
    linkageType: ''
    returnType: TestSentinelContext
    signature: 'pub fn new(nodes: u16, replicas: u16, sentinels: u16) -> TestSentinelContext'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: support::start_tls_crypto_provider
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:29,1
    - Dst: RedisSentinelCluster::new
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:30,1
    - Dst: Result::iter_sentinel_servers
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:31,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:31,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:31,1
    - Dst: redis::sentinel::Sentinel::build
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:35,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:35,1
    - Dst: '&redis::sentinel::Sentinel::unwrap'
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:36,1
    - Dst: wait_for_cluster_up
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 3
    argNames:
    - nodes
    - replicas
    - sentinels
    argTypes:
    - u16
    - u16
    - u16
    constantsTouched: []
    func_position:
      end: 46
      start: 24
    functionDepth: 15
    functionLinenumber: 24
    functionLinenumberEnd: 46
    functionName: TestSentinelContext::new_with_cluster_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 0
    functionsReached:
    - wait_for_cluster_up
    - impl Iterator::map
    - clone
    - collect
    - support::start_tls_crypto_provider
    - Result::iter_sentinel_servers
    - '&redis::sentinel::Sentinel::unwrap'
    - redis::sentinel::Sentinel::build
    - RedisSentinelCluster::new
    linkageType: ''
    returnType: TestSentinelContext
    signature: 'pub fn new_with_cluster_client_builder(nodes: u16,replicas: u16,sentinels:
      u16,) -> TestSentinelContext'
  - 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
    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: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: TestSentinelContext::sentinel_mut
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 17
    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: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: TestSentinelContext::sentinels_connection_info
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 13
    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:61,1
    - Dst: SentinelNodeConnectionInfo::default
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:62,1
    - Dst: Self::set_tls_mode
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:62,1
    - Dst: SentinelNodeConnectionInfo::default
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: TestSentinelContext::sentinel_node_connection_info
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 21
    functionsReached:
    - Self::set_tls_mode
    - TestSentinelContext::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:69,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:71,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 78
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 78
    functionName: TestSentinelContext::tls_mode
    functionSourceFile: /src/redis-rs/redis/tests/support/sentinel.rs
    functionUses: 2
    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:81,1
    - Dst: TestSentinelContext::sentinel_mut
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:82,1
    - Dst: redis_test::sentinel::wait_for_master_server
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:84,1
    - Dst: '&mut redis::sentinel::Sentinel::master_for'
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:84,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:84,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:85,1
    - Dst: redis_test::sentinel::wait_for_replica
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:89,1
    - Dst: '&mut redis::sentinel::Sentinel::replica_for'
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:89,1
    - Dst: Some
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:89,1
    - Dst: ConnectionAddr::is_err
      Src: /src/redis-rs/redis/tests/support/sentinel.rs:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 93
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 93
    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
    - Some
    - TestSentinelContext::sentinel_node_connection_info
    - '&mut redis::sentinel::Sentinel::master_for'
    - redis_test::sentinel::wait_for_replica
    - '&mut redis::sentinel::Sentinel::replica_for'
    - ConnectionAddr::is_err
    - 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:34,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 9
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: TestClusterContext::new
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 29
    functionsReached:
    - Default::default
    - Self::new_with_config
    linkageType: ''
    returnType: TestClusterContext
    signature: pub fn new() -> TestClusterContext
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:41,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 9
    functionLinenumber: 40
    functionLinenumberEnd: 49
    functionName: TestClusterContext::new_with_mtls
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 4
    functionsReached:
    - Default::default
    - Self::new_with_config_and_builder
    linkageType: ''
    returnType: TestClusterContext
    signature: pub fn new_with_mtls() -> TestClusterContext
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:52,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 9
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: TestClusterContext::new_without_ip_alts
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Self::new_with_config_and_builder
    linkageType: ''
    returnType: TestClusterContext
    signature: pub fn new_without_ip_alts() -> TestClusterContext
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cluster_config
    argTypes:
    - RedisClusterConfiguration
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: TestClusterContext::new_with_config
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 4
    functionsReached:
    - Self::new_with_config_and_builder
    linkageType: ''
    returnType: TestClusterContext
    signature: 'pub fn new_with_config(cluster_config: RedisClusterConfiguration)
      -> TestClusterContext'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_with_config_and_builder
      Src: /src/redis-rs/redis/tests/support/cluster.rs:70,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - initializer
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 9
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: TestClusterContext::new_with_cluster_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 22
    functionsReached:
    - Default::default
    - Self::new_with_config_and_builder
    linkageType: ''
    returnType: TestClusterContext
    signature: 'pub fn new_with_cluster_client_builder<F>(initializer: F) -> TestClusterContextwhereF:
      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:83,1
    - Dst: RedisClusterConfiguration::default
      Src: /src/redis-rs/redis/tests/support/cluster.rs:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - initializer
    argTypes:
    - F
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: TestClusterContext::new_insecure_with_cluster_client_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 7
    functionsReached:
    - Self::new_with_config_and_builder
    - RedisClusterConfiguration::default
    linkageType: ''
    returnType: TestClusterContext
    signature: 'pub fn new_insecure_with_cluster_client_builder<F>(initializer: F)
      -> TestClusterContextwhereF: 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:93,1
    - Dst: RedisCluster::new
      Src: /src/redis-rs/redis/tests/support/cluster.rs:97,1
    - Dst: Result::iter_servers
      Src: /src/redis-rs/redis/tests/support/cluster.rs:98,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/tests/support/cluster.rs:98,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/cluster.rs:98,1
    - Dst: redis::cluster::ClusterClientBuilder::new
      Src: /src/redis-rs/redis/tests/support/cluster.rs:102,1
    - Dst: clone
      Src: /src/redis-rs/redis/tests/support/cluster.rs:102,1
    - Dst: ClusterClientBuilder::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:102,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:103,1
    - Dst: ClusterType::get_intended
      Src: /src/redis-rs/redis/tests/support/cluster.rs:106,1
    - Dst: certs
      Src: /src/redis-rs/redis/tests/support/cluster.rs:108,1
    - Dst: super::load_certs_from_file
      Src: /src/redis-rs/redis/tests/support/cluster.rs:108,1
    - Dst: initializer
      Src: /src/redis-rs/redis/tests/support/cluster.rs:112,1
    - Dst: build
      Src: /src/redis-rs/redis/tests/support/cluster.rs:114,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:114,1
    - Dst: redis_test::server::use_protocol
      Src: /src/redis-rs/redis/tests/support/cluster.rs:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - cluster_config
    - initializer
    argTypes:
    - RedisClusterConfiguration
    - F
    constantsTouched: []
    func_position:
      end: 123
      start: 86
    functionDepth: 14
    functionLinenumber: 86
    functionLinenumberEnd: 123
    functionName: TestClusterContext::new_with_config_and_builder
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 3
    functionsReached:
    - redis::cluster::ClusterClientBuilder::new
    - ClusterType::get_intended
    - certs
    - impl Iterator::map
    - super::load_certs_from_file
    - RedisCluster::new
    - clone
    - collect
    - initializer
    - Result::iter_servers
    - redis_test::server::use_protocol
    - build
    - support::start_tls_crypto_provider
    - RedisResult::unwrap
    - ClusterClientBuilder::use_protocol
    linkageType: ''
    returnType: TestClusterContext
    signature: 'pub fn new_with_config_and_builder<F>(cluster_config: RedisClusterConfiguration,initializer:
      F,) -> TestClusterContextwhereF: FnOnce(redis::cluster::ClusterClientBuilder)
      -> redis::cluster::ClusterClientBuilder,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:126,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: TestClusterContext::connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 1
    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:131,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 132
    functionName: TestClusterContext::async_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 10
    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:138,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - config
    argTypes:
    - redis::cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 142
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 142
    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:149,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: TestClusterContext::async_generic_connection
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - unwrap
    - "client\n            .get_async_generic_connection::<C>"
    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:156,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/cluster.rs:157,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/cluster.rs:158,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/tests/support/cluster.rs:161,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:161,1
    - Dst: ConnectionAddr::starts_with
      Src: /src/redis-rs/redis/tests/support/cluster.rs:162,1
    - Dst: std::thread::sleep
      Src: /src/redis-rs/redis/tests/support/cluster.rs:166,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/tests/support/cluster.rs:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 170
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 170
    functionName: TestClusterContext::wait_for_cluster_up
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - query::<String>
    - TestClusterContext::connection
    - arg
    - Duration::from_millis
    - unwrap
    - redis::cmd
    - ConnectionAddr::starts_with
    - std::thread::sleep
    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:174,1
    - Dst: RedisServer::connection_info
      Src: /src/redis-rs/redis/tests/support/cluster.rs:175,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:174,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:181,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:181,1
    - Dst: redis::cmd
      Src: /src/redis-rs/redis/tests/support/cluster.rs:182,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/tests/support/cluster.rs:182,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/tests/support/cluster.rs:182,1
    - Dst: arg
      Src: /src/redis-rs/redis/tests/support/cluster.rs:182,1
    - Dst: exec
      Src: /src/redis-rs/redis/tests/support/cluster.rs:182,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/tests/support/cluster.rs:182,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 172
    functionDepth: 11
    functionLinenumber: 172
    functionLinenumberEnd: 194
    functionName: TestClusterContext::disable_default_user
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - get_connection
    - arg
    - RedisServer::connection_info
    - RedisResult::unwrap
    - redis::cmd
    - '&mut Cmd::arg'
    - exec
    - support::build_single_client
    linkageType: ''
    returnType: void
    signature: pub fn disable_default_user(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: TestClusterContext::connection
      Src: /src/redis-rs/redis/tests/support/cluster.rs:197,1
    - Dst: super::get_version
      Src: /src/redis-rs/redis/tests/support/cluster.rs:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 15
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: TestClusterContext::get_version
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 0
    functionsReached:
    - TestClusterContext::connection
    - super::get_version
    linkageType: ''
    returnType: super::Version
    signature: pub fn get_version(&self) -> super::Version
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/tests/support/cluster.rs:202,1
    - Dst: map
      Src: /src/redis-rs/redis/tests/support/cluster.rs:202,1
    - Dst: redis::ConnectionInfo::addr
      Src: /src/redis-rs/redis/tests/support/cluster.rs:204,1
    - Dst: collect
      Src: /src/redis-rs/redis/tests/support/cluster.rs:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 201
    functionDepth: 13
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: TestClusterContext::get_ports
    functionSourceFile: /src/redis-rs/redis/tests/support/cluster.rs
    functionUses: 2
    functionsReached:
    - iter
    - collect
    - map
    - redis::ConnectionInfo::addr
    linkageType: ''
    returnType: Vec
    signature: pub fn get_ports(&self) -> Vec<u16>
  - 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:
    - Some
    - Ok
    - Err
    - RedisError::from
    - retrieve_tls_certificates
    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:
    - Some
    - into
    - CertificateDer::pem_slice_iter
    - collect::<Result<Vec<_>, _>>
    - PrivateKeyDer::from_pem_slice
    - Ok
    - map_err
    - is_err
    - bool::add
    - RootCertStore::empty
    - Err
    - Error::other
    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:
    - to_vec
    - Pkcs1
    - into
    - clone
    - secret_pkcs8_der
    - secret_sec1_der
    - Pkcs8
    - Sec1
    - secret_pkcs1_der
    linkageType: ''
    returnType: Self
    signature: fn clone(&self) -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:57,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:58,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:58,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:61,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:62,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:62,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:65,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:66,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:66,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:69,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:70,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:70,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: SetExpiry::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.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: write_arg
      Src: /src/redis-rs/redis/src/types.rs:96,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 102
    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:121,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 124
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 124
    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: ValueComparison::IFEQ
      Src: /src/redis-rs/redis/src/types.rs:233,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: ValueComparison::ifeq
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - ValueComparison::IFEQ
    - Self::arg_to_string
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifeq(value: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueComparison::IFNE
      Src: /src/redis-rs/redis/src/types.rs:243,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 244
    functionName: ValueComparison::ifne
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - ValueComparison::IFNE
    - Self::arg_to_string
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifne(value: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueComparison::IFDEQ
      Src: /src/redis-rs/redis/src/types.rs:255,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digest
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 256
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 256
    functionName: ValueComparison::ifdeq
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - ValueComparison::IFDEQ
    - Self::arg_to_string
    linkageType: ''
    returnType: Self
    signature: 'pub fn ifdeq(digest: impl ToSingleRedisArg) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ValueComparison::IFDNE
      Src: /src/redis-rs/redis/src/types.rs:267,1
    - Dst: Self::arg_to_string
      Src: /src/redis-rs/redis/src/types.rs:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - digest
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: ValueComparison::ifdne
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 3
    functionsReached:
    - ValueComparison::IFDNE
    - Self::arg_to_string
    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:271,1
    - Dst: String::from_utf8_lossy
      Src: /src/redis-rs/redis/src/types.rs:272,1
    - Dst: into_owned
      Src: /src/redis-rs/redis/src/types.rs:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - impl ToSingleRedisArg
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 273
    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:283,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:284,1
    - Dst: impl combine::Parser::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:284,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:287,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:288,1
    - Dst: impl combine::Parser::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:288,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:291,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:292,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:292,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:295,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:296,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 299
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 299
    functionName: ValueComparison::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - String::as_bytes
    - impl combine::Parser::as_bytes
    - 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: 356
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 356
    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: 366
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 366
    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: 385
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 385
    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:399,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:399,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:399,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:401,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:402,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 405
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 405
    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:409,1
    - Dst: size_hint
      Src: /src/redis-rs/redis/src/types.rs:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 412
    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:426,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:426,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:426,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:427,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 429
      start: 424
    functionDepth: 2
    functionLinenumber: 424
    functionLinenumberEnd: 429
    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:434,1
    - Dst: map
      Src: /src/redis-rs/redis/src/types.rs:435,1
    - Dst: size_hint
      Src: /src/redis-rs/redis/src/types.rs:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 431
    functionDepth: 3
    functionLinenumber: 431
    functionLinenumberEnd: 439
    functionName: OwnedMapIter::size_hint
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - size_hint
    - map
    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:457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 464
      start: 454
    functionDepth: 3
    functionLinenumber: 454
    functionLinenumberEnd: 464
    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:469,1
    - 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: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 474
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    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<&[Value]>
  - 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: Ok
      Src: /src/redis-rs/redis/src/types.rs:482,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 485
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 485
    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<Value>, Value>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:491,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:492,1
    - Dst: MapIter::Array
      Src: /src/redis-rs/redis/src/types.rs:492,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/types.rs:492,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:497,1
    - Dst: MapIter::Map
      Src: /src/redis-rs/redis/src/types.rs:497,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/types.rs:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 488
    functionDepth: 13
    functionLinenumber: 488
    functionLinenumberEnd: 500
    functionName: Value::as_map_iter
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Some
    - iter
    - len
    - MapIter::Array
    - 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:507,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:508,1
    - Dst: OwnedMapIter::Array
      Src: /src/redis-rs/redis/src/types.rs:508,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/types.rs:508,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:510,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/types.rs:510,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:513,1
    - Dst: OwnedMapIter::Map
      Src: /src/redis-rs/redis/src/types.rs:513,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/types.rs:513,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:514,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 516
      start: 504
    functionDepth: 3
    functionLinenumber: 504
    functionLinenumberEnd: 516
    functionName: Value::into_map_iter
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - into_iter
    - OwnedMapIter::Array
    - Ok
    - len
    - Err
    - Value::Array
    - OwnedMapIter::Map
    linkageType: ''
    returnType: Result
    signature: pub fn into_map_iter(self) -> Result<OwnedMapIter, Value>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:521,1
    - Dst: Self::Array
      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::Map
      Src: /src/redis-rs/redis/src/types.rs:522,1
    - Dst: Self::extract_error_map
      Src: /src/redis-rs/redis/src/types.rs:522,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/types.rs:524,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/types.rs:524,1
    - Dst: Self::extract_error_map
      Src: /src/redis-rs/redis/src/types.rs:525,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:526,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:528,1
    - Dst: Self::Set
      Src: /src/redis-rs/redis/src/types.rs:528,1
    - Dst: Self::extract_error_vec
      Src: /src/redis-rs/redis/src/types.rs:528,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:529,1
    - Dst: Self::extract_error_vec
      Src: /src/redis-rs/redis/src/types.rs:531,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:533,1
    - Dst: into
      Src: /src/redis-rs/redis/src/types.rs:533,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:534,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 536
      start: 519
    functionDepth: 9
    functionLinenumber: 519
    functionLinenumberEnd: 536
    functionName: Value::extract_error
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - into
    - Ok
    - Self::Map
    - Self::extract_error_map
    - extract_error
    - Self::Array
    - Self::extract_error_vec
    - Self::Set
    - Err
    - Box::new
    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:539,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/types.rs:539,1
    - Dst: "into_iter()\n            .map(Self::extract_error)\n            .collect::<RedisResult<Vec<_>>>"
      Src: /src/redis-rs/redis/src/types.rs:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vec<Self>
    constantsTouched: []
    func_position:
      end: 542
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 542
    functionName: Value::extract_error_vec
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - std::iter::Chain::map
    - "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:545,1
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:545,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/types.rs:546,1
    - Dst: push
      Src: /src/redis-rs/redis/src/types.rs:547,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/types.rs:547,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/types.rs:547,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:549,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - map
    argTypes:
    - Vec<(Self, Self)>
    constantsTouched: []
    func_position:
      end: 550
      start: 544
    functionDepth: 13
    functionLinenumber: 544
    functionLinenumberEnd: 550
    functionName: Value::extract_error_map
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - Ok
    - len
    - extract_error
    - Vec::with_capacity
    - impl combine::Parser::extract_error
    - push
    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:554,1
    - Dst: len
      Src: /src/redis-rs/redis/src/types.rs:555,1
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/types.rs:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - len
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 559
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 559
    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: 564
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 564
    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:572,1
    - Dst: details
      Src: /src/redis-rs/redis/src/types.rs:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 600
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 600
    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, fmt: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/types.rs:609,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:610,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:610,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:610,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 612
      start: 607
    functionDepth: 5
    functionLinenumber: 607
    functionLinenumberEnd: 612
    functionName: RedisResult::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Result::map
    - Self::into
    - Ok
    - clone
    - Err
    - from_redis_value_ref
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(value: &Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:616,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/types.rs:616,1
    - Dst: into
      Src: /src/redis-rs/redis/src/types.rs:616,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:617,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:617,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:617,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 619
      start: 614
    functionDepth: 5
    functionLinenumber: 614
    functionLinenumberEnd: 619
    functionName: RedisResult::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - into
    - Result::map
    - Ok
    - Err
    - from_redis_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(value: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/src/types.rs:654,1
    - Dst: '&str::lines'
      Src: /src/redis-rs/redis/src/types.rs:655,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/types.rs:656,1
    - Dst: starts_with
      Src: /src/redis-rs/redis/src/types.rs:656,1
    - Dst: splitn
      Src: /src/redis-rs/redis/src/types.rs:659,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:660,1
    - Dst: next
      Src: /src/redis-rs/redis/src/types.rs:660,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:661,1
    - Dst: Result::to_string
      Src: /src/redis-rs/redis/src/types.rs:661,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/types.rs:664,1
    - Dst: Value::SimpleString
      Src: /src/redis-rs/redis/src/types.rs:664,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - kvpairs
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 667
      start: 653
    functionDepth: 9
    functionLinenumber: 653
    functionLinenumberEnd: 667
    functionName: InfoDict::new
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - to_string
    - Result::to_string
    - insert
    - is_empty
    - '&str::lines'
    - splitn
    - Value::SimpleString
    - HashMap::new
    - next
    - starts_with
    linkageType: ''
    returnType: InfoDict
    signature: 'pub fn new(kvpairs: &str) -> InfoDict'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InfoDict::find
      Src: /src/redis-rs/redis/src/types.rs:672,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:673,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/types.rs:673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 676
      start: 671
    functionDepth: 1
    functionLinenumber: 671
    functionLinenumberEnd: 676
    functionName: InfoDict::get
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - InfoDict::find
    - from_redis_value_ref
    - Result::ok
    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:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&&str'
    constantsTouched: []
    func_position:
      end: 681
      start: 679
    functionDepth: 13
    functionLinenumber: 679
    functionLinenumberEnd: 681
    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:685,1
    - Dst: Option::is_some
      Src: /src/redis-rs/redis/src/types.rs:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&&str'
    constantsTouched: []
    func_position:
      end: 686
      start: 684
    functionDepth: 14
    functionLinenumber: 684
    functionLinenumberEnd: 686
    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:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 689
    functionDepth: 3
    functionLinenumber: 689
    functionLinenumberEnd: 691
    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:695,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 696
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 696
    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: 704
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 704
    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:753,1
    - Dst: Result::clone
      Src: /src/redis-rs/redis/src/types.rs:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 754
      start: 752
    functionDepth: 6
    functionLinenumber: 752
    functionLinenumberEnd: 754
    functionName: ReplicaInfo::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Result::clone
    - Self::from_redis_value
    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:757,1
    - Dst: Value::into_sequence
      Src: /src/redis-rs/redis/src/types.rs:757,1
    - Dst: Result::len
      Src: /src/redis-rs/redis/src/types.rs:761,1
    - Dst: Result::into_iter
      Src: /src/redis-rs/redis/src/types.rs:764,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:765,1
    - Dst: Result::next
      Src: /src/redis-rs/redis/src/types.rs:765,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:765,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:766,1
    - Dst: Result::next
      Src: /src/redis-rs/redis/src/types.rs:766,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:766,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:767,1
    - Dst: Result::next
      Src: /src/redis-rs/redis/src/types.rs:767,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:767,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:768,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 773
      start: 756
    functionDepth: 3
    functionLinenumber: 756
    functionLinenumberEnd: 773
    functionName: ReplicaInfo::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - Ok
    - Value::into_sequence
    - Result::next
    - Option::expect
    - from_redis_value
    - Result::len
    - Result::into_iter
    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:778,1
    - Dst: Result::clone
      Src: /src/redis-rs/redis/src/types.rs:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 779
      start: 777
    functionDepth: 6
    functionLinenumber: 777
    functionLinenumberEnd: 779
    functionName: Role::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Result::clone
    - Self::from_redis_value
    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:782,1
    - Dst: Value::into_sequence
      Src: /src/redis-rs/redis/src/types.rs:782,1
    - Dst: Result::len
      Src: /src/redis-rs/redis/src/types.rs:786,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/src/types.rs:793,1
    - Dst: Role::new_primary
      Src: /src/redis-rs/redis/src/types.rs:794,1
    - Dst: Role::new_replica
      Src: /src/redis-rs/redis/src/types.rs:795,1
    - Dst: Role::new_sentinel
      Src: /src/redis-rs/redis/src/types.rs:796,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 804
      start: 781
    functionDepth: 3
    functionLinenumber: 781
    functionLinenumberEnd: 804
    functionName: Role::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - Role::new_replica
    - Value::into_sequence
    - as_slice
    - Role::new_primary
    - Role::new_sentinel
    - Result::len
    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:809,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/types.rs:816,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:817,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:819,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:819,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:819,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:820,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:820,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:820,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:822,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 826
      start: 808
    functionDepth: 3
    functionLinenumber: 808
    functionLinenumberEnd: 826
    functionName: Role::new_primary
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - from_redis_value
    - Ok
    - Self::len
    - Self::into_iter
    - Option::expect
    - Self::next
    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:829,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/types.rs:836,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:837,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:839,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:839,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:839,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:840,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:840,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:840,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:841,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:841,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:841,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:842,1
    - Dst: Self::next
      Src: /src/redis-rs/redis/src/types.rs:842,1
    - Dst: Option::expect
      Src: /src/redis-rs/redis/src/types.rs:842,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:844,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 850
      start: 828
    functionDepth: 3
    functionLinenumber: 828
    functionLinenumberEnd: 850
    functionName: Role::new_replica
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - from_redis_value
    - Ok
    - Self::len
    - Self::into_iter
    - Option::expect
    - Self::next
    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:853,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/types.rs:859,1
    - Dst: std::iter::Chain::nth
      Src: /src/redis-rs/redis/src/types.rs:859,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/types.rs:859,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:860,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:861,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 862
      start: 852
    functionDepth: 3
    functionLinenumber: 852
    functionLinenumberEnd: 862
    functionName: Role::new_sentinel
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - Ok
    - expect
    - Self::len
    - Self::into_iter
    - from_redis_value
    - std::iter::Chain::nth
    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:872,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:872,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:872,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - impl fmt::Display
    constantsTouched: []
    func_position:
      end: 873
      start: 871
    functionDepth: 1
    functionLinenumber: 871
    functionLinenumberEnd: 873
    functionName: RedisWrite::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - String::as_bytes
    - to_string
    - RedisWrite::write_arg
    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: 920
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 920
    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:987,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/types.rs:988,1
    - Dst: RedisWrite::writer_for_next_arg
      Src: /src/redis-rs/redis/src/types.rs:988,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 35
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 990
      start: 935
    functionDepth: 9
    functionLinenumber: 935
    functionLinenumberEnd: 990
    functionName: RedisWrite::bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - RedisWrite::writer_for_next_arg
    - Vec::with_capacity
    - Box::new
    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:995,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/types.rs:995,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - arg
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 996
      start: 994
    functionDepth: 13
    functionLinenumber: 994
    functionLinenumberEnd: 996
    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:999,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:999,1
    - Dst: String::into_bytes
      Src: /src/redis-rs/redis/src/types.rs:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - arg
    argTypes:
    - impl fmt::Display
    constantsTouched: []
    func_position:
      end: 1000
      start: 998
    functionDepth: 13
    functionLinenumber: 998
    functionLinenumberEnd: 1000
    functionName: Vec::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::push
    - String::into_bytes
    - to_string
    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:1003,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/types.rs:1003,1
    - Dst: Vec::last_mut
      Src: /src/redis-rs/redis/src/types.rs:1004,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/types.rs:1004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1002
    functionDepth: 13
    functionLinenumber: 1002
    functionLinenumberEnd: 1005
    functionName: Vec::writer_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::last_mut
    - Vec::new
    - Vec::push
    - unwrap
    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:1012,1
    - Dst: impl IntoIterator<Item = usize>::into_iter
      Src: /src/redis-rs/redis/src/types.rs:1012,1
    - Dst: std::iter::Chain::count
      Src: /src/redis-rs/redis/src/types.rs:1012,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - additional
    argTypes:
    - impl IntoIterator<Item = usize>
    constantsTouched: []
    func_position:
      end: 1013
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1013
    functionName: Vec::reserve_space_for_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - impl IntoIterator<Item = usize>::into_iter
    - Vec::reserve
    - std::iter::Chain::count
    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:1017,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/types.rs:1017,1
    - Dst: Vec::last_mut
      Src: /src/redis-rs/redis/src/types.rs:1018,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/types.rs:1018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1019
      start: 1016
    functionDepth: 13
    functionLinenumber: 1016
    functionLinenumberEnd: 1019
    functionName: Vec::bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::last_mut
    - Vec::push
    - Vec::with_capacity
    - unwrap
    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:1038,1
    - Dst: ToRedisArgs::write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1037
    functionDepth: 11
    functionLinenumber: 1037
    functionLinenumberEnd: 1041
    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: 1057
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1057
    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: 1067
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1067
    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:1076,1
    - Dst: '&[Self]::iter'
      Src: /src/redis-rs/redis/src/types.rs:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - items
    - out
    argTypes:
    - '&[Self]'
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1077
      start: 1072
    functionDepth: 13
    functionLinenumber: 1072
    functionLinenumberEnd: 1077
    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:1089,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - items
    - out
    argTypes:
    - I
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1091
      start: 1082
    functionDepth: 1
    functionLinenumber: 1082
    functionLinenumberEnd: 1091
    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:1095,1
    - Dst: num_of_args
      Src: /src/redis-rs/redis/src/types.rs:1095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - items
    argTypes:
    - '&[Self]'
    constantsTouched: []
    func_position:
      end: 1096
      start: 1094
    functionDepth: 3
    functionLinenumber: 1094
    functionLinenumberEnd: 1096
    functionName: ToRedisArgs::is_single_vec_arg
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - num_of_args
    - '&[Self]::len'
    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: RedisServer::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: 1118
      start: 1099
    functionDepth: 14
    functionLinenumber: 1099
    functionLinenumberEnd: 1118
    functionName: itoa_based_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::as_bytes
    - RedisServer::format
    - ::itoa::Buffer::new
    - write_arg
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: RedisServer::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: 1139
      start: 1120
    functionDepth: 13
    functionLinenumber: 1120
    functionLinenumberEnd: 1139
    functionName: non_zero_itoa_based_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - ::itoa::Buffer::new
    - non_zero_itoa_based_to_redis_impl::get
    - write_arg
    - RedisServer::format
    - TlsFilePaths::as_bytes
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::ryu::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:7,1
    - Dst: RedisServer::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: 1160
      start: 1141
    functionDepth: 14
    functionLinenumber: 1141
    functionLinenumberEnd: 1160
    functionName: ryu_based_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::as_bytes
    - RedisServer::format
    - write_arg
    - ::ryu::Buffer::new
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::itoa::Buffer::new
      Src: /src/redis-rs/redis/src/types.rs:1167,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/types.rs:1168,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:1169,1
    - Dst: TlsFilePaths::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1170
      start: 1163
    functionDepth: 14
    functionLinenumber: 1163
    functionLinenumberEnd: 1170
    functionName: u8::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::as_bytes
    - RedisServer::format
    - ::itoa::Buffer::new
    - 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:1176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - items
    - out
    argTypes:
    - '&[u8]'
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1177
      start: 1172
    functionDepth: 14
    functionLinenumber: 1172
    functionLinenumberEnd: 1177
    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: &[u8], out: &mut W)whereW: ?Sized
      + RedisWrite,'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - _items
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1181
      start: 1179
    functionDepth: 0
    functionLinenumber: 1179
    functionLinenumberEnd: 1181
    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: &[u8]) -> 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: 1232
      start: 1219
    functionDepth: 14
    functionLinenumber: 1219
    functionLinenumberEnd: 1232
    functionName: bignum_to_redis_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - bignum_to_redis_impl::to_string
    - String::into_bytes
    - write_arg
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:1248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1249
      start: 1244
    functionDepth: 14
    functionLinenumber: 1244
    functionLinenumberEnd: 1249
    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:1259,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:1259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1260
      start: 1255
    functionDepth: 14
    functionLinenumber: 1255
    functionLinenumberEnd: 1260
    functionName: String::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - String::as_bytes
    - 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:1269,1
    - Dst: '&str::as_bytes'
      Src: /src/redis-rs/redis/src/types.rs:1269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1270
      start: 1265
    functionDepth: 14
    functionLinenumber: 1265
    functionLinenumberEnd: 1270
    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:1286,1
    - Dst: RedisResult::write_redis_args
      Src: /src/redis-rs/redis/src/types.rs:1287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1289
      start: 1281
    functionDepth: 15
    functionLinenumber: 1281
    functionLinenumberEnd: 1289
    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:1306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1308
      start: 1301
    functionDepth: 15
    functionLinenumber: 1301
    functionLinenumberEnd: 1308
    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:1312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1315
      start: 1310
    functionDepth: 1
    functionLinenumber: 1310
    functionLinenumberEnd: 1315
    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:1319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1317
    functionDepth: 1
    functionLinenumber: 1317
    functionLinenumberEnd: 1322
    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: 1355
      start: 1325
    functionDepth: 18
    functionLinenumber: 1325
    functionLinenumberEnd: 1355
    functionName: impl_write_redis_args_for_collection
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - num_of_args
    - ToRedisArgs::is_single_vec_arg
    - ToRedisArgs::write_args_from_slice
    - 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: 1382
      start: 1357
    functionDepth: 15
    functionLinenumber: 1357
    functionLinenumberEnd: 1382
    functionName: deref_to_write_redis_args_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - num_of_args
    - write_redis_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: 1423
      start: 1405
    functionDepth: 0
    functionLinenumber: 1405
    functionLinenumberEnd: 1423
    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: 1478
      start: 1450
    functionDepth: 15
    functionLinenumber: 1450
    functionLinenumberEnd: 1478
    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: 1524
      start: 1503
    functionDepth: 0
    functionLinenumber: 1503
    functionLinenumberEnd: 1524
    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:1544,1
    - Dst: '&[T; N]::as_slice'
      Src: /src/redis-rs/redis/src/types.rs:1544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 1545
      start: 1540
    functionDepth: 18
    functionLinenumber: 1540
    functionLinenumberEnd: 1545
    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:1548,1
    - Dst: '&[T; N]::len'
      Src: /src/redis-rs/redis/src/types.rs:1551,1
    - Dst: num_of_args
      Src: /src/redis-rs/redis/src/types.rs:1552,1
    - Dst: '&[T; N]::len'
      Src: /src/redis-rs/redis/src/types.rs:1554,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1556
      start: 1547
    functionDepth: 4
    functionLinenumber: 1547
    functionLinenumberEnd: 1556
    functionName: '&[T; N]::num_of_args'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - num_of_args
    - ToRedisArgs::is_single_vec_arg
    - '&[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:1564,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - items
    - original_value
    argTypes:
    - Vec<T>
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1574
      start: 1560
    functionDepth: 0
    functionLinenumber: 1560
    functionLinenumberEnd: 1574
    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:1579,1
    - Dst: vec_to_array
      Src: /src/redis-rs/redis/src/types.rs:1580,1
    - Dst: FromRedisValue::from_redis_value_refs
      Src: /src/redis-rs/redis/src/types.rs:1590,1
    - Dst: vec_to_array
      Src: /src/redis-rs/redis/src/types.rs:1591,1
    - Dst: vec_to_array
      Src: /src/redis-rs/redis/src/types.rs:1593,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1596
      start: 1577
    functionDepth: 1
    functionLinenumber: 1577
    functionLinenumberEnd: 1596
    functionName: '[T; N]::from_redis_value_ref'
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - vec_to_array
    - FromRedisValue::from_byte_slice
    - FromRedisValue::from_redis_value_refs
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(value: &Value) -> Result<[T; N], ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:1599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1600
      start: 1598
    functionDepth: 6
    functionLinenumber: 1598
    functionLinenumberEnd: 1600
    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:1624,1
    - Dst: Result::clone
      Src: /src/redis-rs/redis/src/types.rs:1624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1625
      start: 1620
    functionDepth: 6
    functionLinenumber: 1620
    functionLinenumberEnd: 1625
    functionName: FromRedisValue::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 7
    functionsReached:
    - Result::clone
    - Self::from_redis_value
    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:1636,1
    - Dst: map
      Src: /src/redis-rs/redis/src/types.rs:1636,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:1636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - '&[Value]'
    constantsTouched: []
    func_position:
      end: 1640
      start: 1635
    functionDepth: 13
    functionLinenumber: 1635
    functionLinenumberEnd: 1640
    functionName: FromRedisValue::from_redis_value_refs
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - collect
    - map
    - '&[Value]::iter'
    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:1645,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/types.rs:1645,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:1645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 1649
      start: 1644
    functionDepth: 1
    functionLinenumber: 1644
    functionLinenumberEnd: 1649
    functionName: FromRedisValue::from_redis_values
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - collect
    - std::iter::Chain::map
    - Vec<Value>::into_iter
    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:1654,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/types.rs:1654,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/types.rs:1654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - items
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 1658
      start: 1653
    functionDepth: 1
    functionLinenumber: 1653
    functionLinenumberEnd: 1658
    functionName: FromRedisValue::from_each_redis_values
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - collect
    - std::iter::Chain::map
    - Vec<Value>::into_iter
    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:1662,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/types.rs:1662,1
    - Dst: into
      Src: /src/redis-rs/redis/src/types.rs:1662,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:1662,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/types.rs:1662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - _vec
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1665
      start: 1661
    functionDepth: 6
    functionLinenumber: 1661
    functionLinenumberEnd: 1665
    functionName: FromRedisValue::from_byte_slice
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - into
    - Result::map
    - ok
    - Value::BulkString
    - Self::from_redis_value
    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:1669,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/types.rs:1669,1
    - Dst: Result::map
      Src: /src/redis-rs/redis/src/types.rs:1669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - _vec
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 1670
      start: 1668
    functionDepth: 6
    functionLinenumber: 1668
    functionLinenumberEnd: 1670
    functionName: FromRedisValue::from_byte_vec
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Value::BulkString
    - Result::map
    - Self::from_redis_value
    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:1679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1683
      start: 1673
    functionDepth: 0
    functionLinenumber: 1673
    functionLinenumberEnd: 1683
    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: 1695
      start: 1685
    functionDepth: 0
    functionLinenumber: 1685
    functionLinenumberEnd: 1695
    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: 1722
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1722
    functionName: from_redis_value_for_num_internal
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - std::str::from_utf8
    - parse::<$t>
    - 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: 1736
      start: 1724
    functionDepth: 6
    functionLinenumber: 1724
    functionLinenumberEnd: 1736
    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: 1741
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1741
    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<u8, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:1744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1745
      start: 1743
    functionDepth: 6
    functionLinenumber: 1743
    functionLinenumberEnd: 1745
    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:1749,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/types.rs:1749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - vec
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1750
      start: 1748
    functionDepth: 1
    functionLinenumber: 1748
    functionLinenumberEnd: 1750
    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<u8>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - vec
    argTypes:
    - Vec<u8>
    constantsTouched: []
    func_position:
      end: 1753
      start: 1751
    functionDepth: 0
    functionLinenumber: 1751
    functionLinenumberEnd: 1753
    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<u8>, 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: 1793
      start: 1775
    functionDepth: 1
    functionLinenumber: 1775
    functionLinenumberEnd: 1793
    functionName: from_redis_value_for_bignum_internal
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - parse::<$t>
    - Ok
    - std::str::from_utf8
    - Result::map_err
    - <$t>::try_from
    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: 1812
      start: 1800
    functionDepth: 6
    functionLinenumber: 1800
    functionLinenumberEnd: 1812
    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:1825,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1827,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1828,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1831,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1833,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1840,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1842,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1847,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1848,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1851
      start: 1824
    functionDepth: 1
    functionLinenumber: 1824
    functionLinenumberEnd: 1851
    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<bool, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:1854,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1855
      start: 1853
    functionDepth: 6
    functionLinenumber: 1853
    functionLinenumberEnd: 1855
    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:1860,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1862,1
    - Dst: CString::new
      Src: /src/redis-rs/redis/src/types.rs:1862,1
    - Dst: Vec::as_slice
      Src: /src/redis-rs/redis/src/types.rs:1862,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1863,1
    - Dst: CString::new
      Src: /src/redis-rs/redis/src/types.rs:1863,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1864,1
    - Dst: CString::new
      Src: /src/redis-rs/redis/src/types.rs:1864,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/types.rs:1864,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1867
      start: 1859
    functionDepth: 9
    functionLinenumber: 1859
    functionLinenumberEnd: 1867
    functionName: CString::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_inner_value
    - Ok
    - as_bytes
    - CString::new
    - Vec::as_slice
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<CString, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1869,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1871,1
    - Dst: CString::new
      Src: /src/redis-rs/redis/src/types.rs:1871,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1872,1
    - Dst: CString::new
      Src: /src/redis-rs/redis/src/types.rs:1872,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1873,1
    - Dst: CString::new
      Src: /src/redis-rs/redis/src/types.rs:1873,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1876
      start: 1868
    functionDepth: 9
    functionLinenumber: 1868
    functionLinenumberEnd: 1876
    functionName: CString::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - Ok
    - CString::new
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<CString, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:1881,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1883,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:1883,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1883,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1884,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:1884,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1885,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1885,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:1890,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1890,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1891,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1891,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1894
      start: 1880
    functionDepth: 1
    functionLinenumber: 1880
    functionLinenumberEnd: 1894
    functionName: String::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 2
    functionsReached:
    - to_string
    - get_inner_value
    - Ok
    - std::str::from_utf8
    - '&str::to_string'
    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:1897,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1899,1
    - Dst: Self::from_utf8
      Src: /src/redis-rs/redis/src/types.rs:1899,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1900,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:1900,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1901,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1902,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1903,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1903,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:1904,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:1904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1907
      start: 1896
    functionDepth: 1
    functionLinenumber: 1896
    functionLinenumberEnd: 1907
    functionName: String::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 1
    functionsReached:
    - get_owned_inner_value
    - to_string
    - Ok
    - Self::from_utf8
    - '&str::to_string'
    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: 1927
      start: 1910
    functionDepth: 7
    functionLinenumber: 1910
    functionLinenumberEnd: 1927
    functionName: pointer_from_redis_value_impl
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Result::map
    - FromRedisValue::from_redis_value
    - FromRedisValue::from_redis_value_ref
    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: u8::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: u8::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: 2003
      start: 1937
    functionDepth: 14
    functionLinenumber: 1937
    functionLinenumberEnd: 2003
    functionName: from_vec_from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - Result::map
    - FromRedisValue::from_byte_vec
    - FromRedisValue::from_redis_value_refs
    - Ok
    - FromRedisValue::from_redis_value_ref
    - FromRedisValue::from_redis_values
    - FromRedisValue::from_byte_slice
    - Err
    - Value::Map
    - u8::push
    - FromRedisValue::from_redis_value
    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: Result::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: Result::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: 2044
      start: 2009
    functionDepth: 10
    functionLinenumber: 2009
    functionLinenumberEnd: 2044
    functionName: impl_from_redis_value_for_map
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - Result::as_map_iter
    - map
    - Ok
    - Default::default
    - collect
    - Result::map_err
    - Result::into_map_iter
    - Option::ok_or_else
    - from_redis_value
    - from_redis_value_ref
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Result::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: Result::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: 2095
      start: 2069
    functionDepth: 13
    functionLinenumber: 2069
    functionLinenumberEnd: 2095
    functionName: impl_from_redis_value_for_set
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - iter
    - Result::into_sequence
    - into_iter
    - map
    - collect
    - Result::map_err
    - Option::ok_or_else
    - from_redis_value
    - Result::as_sequence
    - from_redis_value_ref
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2122,1
    - Dst: Result::clone
      Src: /src/redis-rs/redis/src/types.rs:2122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2123
      start: 2121
    functionDepth: 2
    functionLinenumber: 2121
    functionLinenumberEnd: 2123
    functionName: Value::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 9
    functionsReached:
    - Result::clone
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Value, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2127
      start: 2125
    functionDepth: 0
    functionLinenumber: 2125
    functionLinenumberEnd: 2127
    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:2133,1
    - Dst: ParsingError::from
      Src: /src/redis-rs/redis/src/types.rs:2133,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/types.rs:2133,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2136
      start: 2131
    functionDepth: 1
    functionLinenumber: 2131
    functionLinenumberEnd: 2136
    functionName: ()::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Err
    - to_string
    - Ok
    - ParsingError::from
    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:2139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2140
      start: 2138
    functionDepth: 6
    functionLinenumber: 2138
    functionLinenumberEnd: 2140
    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: 2335
      start: 2143
    functionDepth: 0
    functionLinenumber: 2143
    functionLinenumberEnd: 2335
    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:2352,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2353,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2354,1
    - Dst: InfoDict::new
      Src: /src/redis-rs/redis/src/types.rs:2354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2355
      start: 2351
    functionDepth: 10
    functionLinenumber: 2351
    functionLinenumberEnd: 2355
    functionName: InfoDict::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - InfoDict::new
    - from_redis_value_ref
    - get_inner_value
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<InfoDict, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2357,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:2358,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2359,1
    - Dst: InfoDict::new
      Src: /src/redis-rs/redis/src/types.rs:2359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2360
      start: 2356
    functionDepth: 10
    functionLinenumber: 2356
    functionLinenumberEnd: 2360
    functionName: InfoDict::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - from_redis_value
    - InfoDict::new
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<InfoDict, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2365,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2367,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2369,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:2369,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/types.rs:2369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2370
      start: 2364
    functionDepth: 1
    functionLinenumber: 2364
    functionLinenumberEnd: 2370
    functionName: Option::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - Some
    - from_redis_value_ref
    - get_inner_value
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value_ref(v: &Value) -> Result<Option<T>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_owned_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2372,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2374,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2376,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/types.rs:2376,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/types.rs:2376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2377
      start: 2371
    functionDepth: 1
    functionLinenumber: 2371
    functionLinenumberEnd: 2377
    functionName: Option::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - from_redis_value
    - Some
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Option<T>, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_inner_value
      Src: /src/redis-rs/redis/src/types.rs:2383,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2385,1
    - Dst: bytes::Bytes::copy_from_slice
      Src: /src/redis-rs/redis/src/types.rs:2385,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/types.rs:2385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2388
      start: 2382
    functionDepth: 1
    functionLinenumber: 2382
    functionLinenumberEnd: 2388
    functionName: bytes::Bytes::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - bytes::Bytes::copy_from_slice
    - as_ref
    - get_inner_value
    - 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:2390,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2392,1
    - Dst: into
      Src: /src/redis-rs/redis/src/types.rs:2392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2395
      start: 2389
    functionDepth: 1
    functionLinenumber: 2389
    functionLinenumberEnd: 2395
    functionName: bytes::Bytes::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - get_owned_inner_value
    - into
    - Ok
    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:2402,1
    - Dst: uuid::Uuid::from_slice
      Src: /src/redis-rs/redis/src/types.rs:2402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2405
      start: 2400
    functionDepth: 0
    functionLinenumber: 2400
    functionLinenumberEnd: 2405
    functionName: uuid::Uuid::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - uuid::Uuid::from_slice
    - 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:2408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2409
      start: 2407
    functionDepth: 6
    functionLinenumber: 2407
    functionLinenumberEnd: 2409
    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:2418,1
    - Dst: uuid::Uuid::as_bytes
      Src: /src/redis-rs/redis/src/types.rs:2418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 2419
      start: 2414
    functionDepth: 14
    functionLinenumber: 2414
    functionLinenumberEnd: 2419
    functionName: uuid::Uuid::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - uuid::Uuid::as_bytes
    - write_arg
    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:2428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2429
      start: 2427
    functionDepth: 7
    functionLinenumber: 2427
    functionLinenumberEnd: 2429
    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:2434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2435
      start: 2433
    functionDepth: 6
    functionLinenumber: 2433
    functionLinenumberEnd: 2435
    functionName: from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 19
    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:2456,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/types.rs:2460,1
    - Dst: RedisServer::extend_from_slice
      Src: /src/redis-rs/redis/src/types.rs:2462,1
    - Dst: xxh3_64
      Src: /src/redis-rs/redis/src/types.rs:2466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 2468
      start: 2452
    functionDepth: 9
    functionLinenumber: 2452
    functionLinenumberEnd: 2468
    functionName: calculate_value_digest
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 5
    functionsReached:
    - xxh3_64
    - Vec::new
    - impl combine::Parser::to_redis_args
    - RedisServer::extend_from_slice
    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:2472,1
    - Dst: TlsFilePaths::chars
      Src: /src/redis-rs/redis/src/types.rs:2472,1
    - Dst: all
      Src: /src/redis-rs/redis/src/types.rs:2472,1
    - Dst: is_ascii_hexdigit
      Src: /src/redis-rs/redis/src/types.rs:2472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 2473
      start: 2471
    functionDepth: 10
    functionLinenumber: 2471
    functionLinenumberEnd: 2473
    functionName: is_valid_16_bytes_hex_digest
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - TlsFilePaths::chars
    - TlsFilePaths::len
    - is_ascii_hexdigit
    - all
    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: 2493
      start: 2491
    functionDepth: 0
    functionLinenumber: 2491
    functionLinenumberEnd: 2493
    functionName: ProtocolVersion::supports_resp3
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 4
    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:2518,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:2519,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:2520,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/types.rs:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 2524
      start: 2513
    functionDepth: 14
    functionLinenumber: 2513
    functionLinenumberEnd: 2524
    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: 2542
      start: 2537
    functionDepth: 0
    functionLinenumber: 2537
    functionLinenumberEnd: 2542
    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:2591,1
    - Dst: ValueType::Unknown
      Src: /src/redis-rs/redis/src/types.rs:2615,1
    - Dst: TlsFilePaths::to_string
      Src: /src/redis-rs/redis/src/types.rs:2615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 2617
      start: 2590
    functionDepth: 1
    functionLinenumber: 2590
    functionLinenumberEnd: 2617
    functionName: ValueType::from
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - ValueType::Unknown
    - TlsFilePaths::to_string
    - TlsFilePaths::as_ref
    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:2623,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2624,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2625,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/types.rs:2626,1
    - 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:2632,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:2635,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:2637,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:2640,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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 1
    argNames:
    - v
    argTypes:
    - ValueType
    constantsTouched: []
    func_position:
      end: 2648
      start: 2621
    functionDepth: 1
    functionLinenumber: 2621
    functionLinenumberEnd: 2648
    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:2654,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/types.rs:2654,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2657
      start: 2652
    functionDepth: 0
    functionLinenumber: 2652
    functionLinenumberEnd: 2657
    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:2661,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/types.rs:2661,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2664
      start: 2659
    functionDepth: 0
    functionLinenumber: 2659
    functionLinenumberEnd: 2664
    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: 2687
      start: 2681
    functionDepth: 0
    functionLinenumber: 2681
    functionLinenumberEnd: 2687
    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:2694,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2695,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2696,1
    - Dst: IntegerReplyOrNoOp::IntegerReply
      Src: /src/redis-rs/redis/src/types.rs:2696,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - v
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2700
      start: 2691
    functionDepth: 0
    functionLinenumber: 2691
    functionLinenumberEnd: 2700
    functionName: IntegerReplyOrNoOp::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - IntegerReplyOrNoOp::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:2705,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2706,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/types.rs:2707,1
    - Dst: IntegerReplyOrNoOp::IntegerReply
      Src: /src/redis-rs/redis/src/types.rs:2707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2711
      start: 2702
    functionDepth: 0
    functionLinenumber: 2702
    functionLinenumberEnd: 2711
    functionName: IntegerReplyOrNoOp::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/types.rs
    functionUses: 0
    functionsReached:
    - IntegerReplyOrNoOp::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: 2749
      start: 2744
    functionDepth: 0
    functionLinenumber: 2744
    functionLinenumberEnd: 2749
    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: 35
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 35
    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:42,1
    - Dst: impl Clone + ExactSizeIterator::next
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:43,1
    - Dst: str::from_utf8
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:49,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:49,1
    - Dst: impl Clone + ExactSizeIterator::filter_map
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:51,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:52,1
    - Dst: to_vec
      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: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: eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:64,1
    - Dst: eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:66,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 72
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 72
    functionName: SubscriptionTracker::to_request
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - Some
    - to_vec
    - str::from_utf8
    - ok
    - Cmd::args_iter
    - impl Clone + ExactSizeIterator::next
    - eq_ignore_ascii_case
    - impl Clone + ExactSizeIterator::filter_map
    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:91,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:93,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:97,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - action
    - args
    argTypes:
    - SubscriptionAction
    - impl Iterator<Item = Vec<u8>>
    constantsTouched: []
    func_position:
      end: 100
      start: 74
    functionDepth: 12
    functionLinenumber: 74
    functionLinenumberEnd: 100
    functionName: SubscriptionTracker::update_with_request
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - remove
    - insert
    - additive
    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:104,1
    - Dst: SubscriptionTracker::update_with_request
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 13
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: SubscriptionTracker::update_with_cmd
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - Self::to_request
    - SubscriptionTracker::update_with_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:110,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:111,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:112,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:113,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:114,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:117,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:118,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:119,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:120,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:123,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:124,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:125,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 109
    functionDepth: 13
    functionLinenumber: 109
    functionLinenumberEnd: 131
    functionName: SubscriptionTracker::get_subscription_pipeline
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - iter
    - cmd
    - is_empty
    - Cmd::arg
    - crate::pipe
    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:142,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: '&mut 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 Cmd::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:146,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:146,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:146,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:146,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: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:148,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:148,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:148,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:149,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:149,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:149,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:149,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:151,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:151,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:151,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:153,1
    - Dst: pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:154,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:155,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:155,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:155,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:155,1
    - Dst: '&mut Cmd::cmd'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:155,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 141
    functionDepth: 10
    functionLinenumber: 141
    functionLinenumberEnd: 168
    functionName: tests::test_add_and_remove_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::cmd'
    - cmd
    - get_subscription_pipeline
    - pipe
    - Cmd::arg
    - Pipeline::cmd
    - '&mut Cmd::arg'
    - SubscriptionTracker::default
    - update_with_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:172,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:174,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:174,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:174,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:174,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:175,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:175,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:175,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:175,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:176,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:176,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:176,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:176,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:177,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:177,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:177,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:179,1
    - Dst: pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:180,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:181,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 188
      start: 171
    functionDepth: 10
    functionLinenumber: 171
    functionLinenumberEnd: 188
    functionName: tests::test_skip_empty_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - cmd
    - get_subscription_pipeline
    - pipe
    - Cmd::arg
    - Pipeline::cmd
    - '&mut Cmd::arg'
    - SubscriptionTracker::default
    - update_with_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:192,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:194,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:194,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:194,1
    - Dst: update_with_cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:195,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:195,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:195,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:197,1
    - Dst: pipe
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:198,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:199,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/subscription_tracker.rs:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 191
    functionDepth: 10
    functionLinenumber: 191
    functionLinenumberEnd: 206
    functionName: tests::test_only_unsubscribe_from_existing_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/subscription_tracker.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - cmd
    - get_subscription_pipeline
    - pipe
    - Cmd::arg
    - Pipeline::cmd
    - SubscriptionTracker::default
    - update_with_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: RedisResult::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: RedisResult::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:
    - Ok
    - RedisResult::check_connection
    - RedisResult::is_open
    - Err
    - errors::closed_connection_error
    - impl_manage_connection::get_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: 0
    functionLinenumber: 92
    functionLinenumberEnd: 104
    functionName: Cmd::fmt
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - String::from_utf8_lossy
    - debug_struct
    - as_ref
    - finish
    - field
    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:
    - Some
    - into
    - and_then
    - impl combine::Parser::map_err
    - Ok
    - get_packed_command
    - T::from_each_redis_values
    - from_redis_value::<(u64, _)>
    - Err
    - next
    - req_packed_command
    - RedisResult::into_iter
    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: Result::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:
    - Some
    - into
    - and_then
    - Ok
    - T::from_each_redis_values
    - from_redis_value::<(u64, _)>
    - Result::map_err
    - Err
    - next
    - req_packed_command
    - RedisResult::into_iter
    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: RedisServer::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:
    - Box::pin
    - IterOrFuture::Iter
    - Poll::Ready
    - Pin::new
    - AsyncIter::get_mut
    - std::mem::replace
    - RedisServer::poll_next
    - as_mut
    - next_item
    - poll
    - IterOrFuture::Future
    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
    - len
    - bulklen
    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:
    - args_len
    - Cmd::args_iter
    - unwrap_or
    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:
    - Vec::new
    - write_command_to_vec
    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
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    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:
    - clone
    - io::Result::unwrap
    - args_len
    - Cmd::reserve
    - write_command
    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::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:342,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/cmd.rs:343,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:343,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:344,1
    - Dst: TlsFilePaths::as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:344,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:345,1
    - Dst: itoa::Buffer::new
      Src: /src/redis-rs/redis/src/cmd.rs:347,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/cmd.rs:350,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:350,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:354,1
    - Dst: RedisServer::format
      Src: /src/redis-rs/redis/src/cmd.rs:355,1
    - Dst: Vec::len
      Src: /src/redis-rs/redis/src/cmd.rs:355,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:356,1
    - Dst: TlsFilePaths::as_bytes
      Src: /src/redis-rs/redis/src/cmd.rs:356,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:357,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:359,1
    - Dst: Cmd::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:360,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:362,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 55
    argCount: 3
    argNames:
    - cmd
    - args
    - cursor
    argTypes:
    - '&mut (impl ?Sized + Write)'
    - I
    - u64
    constantsTouched: []
    func_position:
      end: 363
      start: 336
    functionDepth: 3
    functionLinenumber: 336
    functionLinenumberEnd: 363
    functionName: write_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - ::itoa::Buffer::new
    - Ok
    - as_bytes
    - len
    - itoa::Buffer::new
    - Cmd::write_all
    - RedisServer::format
    - TlsFilePaths::as_bytes
    - Vec::len
    linkageType: ''
    returnType: io::Result
    signature: 'fn write_command<''a, I>(cmd: &mut (impl ?Sized + Write), args: I,
      cursor: u64) -> io::Result<()>whereI: IntoIterator<Item = Arg<&''a [u8]>> +
      Clone + ExactSizeIterator,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/cmd.rs:367,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:368,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:368,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - arg
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 369
      start: 366
    functionDepth: 13
    functionLinenumber: 366
    functionLinenumberEnd: 369
    functionName: Cmd::write_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - len
    - Arg::Simple
    - extend_from_slice
    - 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:372,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:373,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:373,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cmd.rs:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - arg
    argTypes:
    - impl fmt::Display
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 13
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: Cmd::write_arg_fmt
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - len
    - Arg::Simple
    - 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:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 395
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 395
    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:404,1
    - Dst: reserve
      Src: /src/redis-rs/redis/src/cmd.rs:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - additional
    argTypes:
    - impl IntoIterator<Item = usize>
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 406
    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:410,1
    - Dst: CmdBufferedArgGuard
      Src: /src/redis-rs/redis/src/cmd.rs:449,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 1
    argNames:
    - capacity
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 450
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 450
    functionName: Cmd::bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - reserve
    - CmdBufferedArgGuard
    linkageType: ''
    returnType: impl bytes::BufMut + '_
    signature: 'fn bufmut_for_next_arg(&mut self, capacity: usize) -> impl bytes::BufMut
      + ''_'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 456
    functionName: Cmd::default
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    linkageType: ''
    returnType: Cmd
    signature: fn default() -> Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 498
    functionName: Cmd::new
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: Cmd
    signature: pub fn new() -> Cmd
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/cmd.rs:503,1
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/cmd.rs:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arg_count
    - size_of_data
    argTypes:
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 511
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 511
    functionName: Cmd::with_capacity
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Vec::with_capacity
    linkageType: ''
    returnType: Cmd
    signature: 'pub fn with_capacity(arg_count: usize, size_of_data: usize) -> Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: capacity
      Src: /src/redis-rs/redis/src/cmd.rs:517,1
    - Dst: capacity
      Src: /src/redis-rs/redis/src/cmd.rs:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 516
    functionDepth: 2
    functionLinenumber: 516
    functionLinenumberEnd: 518
    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:539,1
    - Dst: clear
      Src: /src/redis-rs/redis/src/cmd.rs:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 548
      start: 538
    functionDepth: 13
    functionLinenumber: 538
    functionLinenumberEnd: 548
    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:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - arg
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 567
      start: 564
    functionDepth: 15
    functionLinenumber: 564
    functionLinenumberEnd: 567
    functionName: Cmd::arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 183
    functionsReached:
    - write_redis_args
    linkageType: ''
    returnType: '&mut Cmd'
    signature: 'pub fn arg<T: ToRedisArgs>(&mut self, arg: T) -> &mut Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cmd.rs:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 574
      start: 572
    functionDepth: 0
    functionLinenumber: 572
    functionLinenumberEnd: 574
    functionName: Cmd::take
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 2
    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:595,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cmd.rs:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cursor
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 598
      start: 594
    functionDepth: 13
    functionLinenumber: 594
    functionLinenumberEnd: 598
    functionName: Cmd::cursor_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 4
    functionsReached:
    - Some
    - push
    linkageType: ''
    returnType: '&mut Cmd'
    signature: 'pub fn cursor_arg(&mut self, cursor: u64) -> &mut Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cmd.rs:607,1
    - Dst: Cmd::is_empty
      Src: /src/redis-rs/redis/src/cmd.rs:608,1
    - Dst: Cmd::write_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:611,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 613
      start: 606
    functionDepth: 11
    functionLinenumber: 606
    functionLinenumberEnd: 613
    functionName: Cmd::get_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 11
    functionsReached:
    - Cmd::is_empty
    - Vec::new
    - Cmd::write_packed_command
    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:624,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:624,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:624,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 625
      start: 623
    functionDepth: 5
    functionLinenumber: 623
    functionLinenumberEnd: 625
    functionName: Cmd::write_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 1
    functionsReached:
    - Cmd::args_iter
    - write_command_to_vec
    - unwrap_or
    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:628,1
    - Dst: Cmd::args_iter
      Src: /src/redis-rs/redis/src/cmd.rs:628,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cmd.rs:628,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&mut Vec<u8>'
    constantsTouched: []
    func_position:
      end: 629
      start: 627
    functionDepth: 4
    functionLinenumber: 627
    functionLinenumberEnd: 629
    functionName: Cmd::write_packed_command_preallocated
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - io::Result::unwrap
    - Cmd::args_iter
    - write_command
    - unwrap_or
    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:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 635
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 635
    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:642,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:643,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:643,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cmd.rs:643,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cmd.rs:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 646
      start: 641
    functionDepth: 15
    functionLinenumber: 641
    functionLinenumberEnd: 646
    functionName: Cmd::query
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 22
    functionsReached:
    - types::from_redis_value
    - Ok
    - extract_error
    - Err
    - '&mut dyn ConnectionLike::req_command'
    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:655,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:656,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:656,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cmd.rs:656,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 657
      start: 651
    functionDepth: 15
    functionLinenumber: 651
    functionLinenumberEnd: 657
    functionName: Cmd::query_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 32
    functionsReached:
    - '&mut impl crate::aio::ConnectionLike::req_packed_command'
    - extract_error
    - types::from_redis_value
    - Ok
    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:665,1
    - Dst: from_redis_value::<(u64, _)>
      Src: /src/redis-rs/redis/src/cmd.rs:666,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/cmd.rs:669,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cmd.rs:672,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:674,1
    - Dst: T::from_each_redis_values
      Src: /src/redis-rs/redis/src/cmd.rs:674,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - value
    argTypes:
    - crate::Value
    constantsTouched: []
    func_position:
      end: 675
      start: 661
    functionDepth: 8
    functionLinenumber: 661
    functionLinenumberEnd: 675
    functionName: Cmd::set_cursor_and_get_batch
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Some
    - types::from_redis_value
    - impl combine::Parser::looks_like_cursor
    - Ok
    - T::from_each_redis_values
    - from_redis_value::<(u64, _)>
    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:696,1
    - Dst: Cmd::set_cursor_and_get_batch
      Src: /src/redis-rs/redis/src/cmd.rs:698,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:700,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 707
      start: 692
    functionDepth: 9
    functionLinenumber: 692
    functionLinenumberEnd: 707
    functionName: Cmd::iter
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::set_cursor_and_get_batch
    - Ok
    - RedisResult::into_iter
    - '&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:730,1
    - Dst: Cmd::set_cursor_and_get_batch
      Src: /src/redis-rs/redis/src/cmd.rs:732,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cmd.rs:734,1
    - Dst: IterOrFuture::Iter
      Src: /src/redis-rs/redis/src/cmd.rs:735,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:736,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&''a mut (dyn AsyncConnection + Send)'
    constantsTouched: []
    func_position:
      end: 741
      start: 726
    functionDepth: 13
    functionLinenumber: 726
    functionLinenumberEnd: 741
    functionName: Cmd::iter_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - IterOrFuture::Iter
    - Ok
    - Cmd::set_cursor_and_get_batch
    - RedisResult::into_iter
    - '&''a mut (dyn AsyncConnection + Send)::req_packed_command'
    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:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut dyn ConnectionLike'
    constantsTouched: []
    func_position:
      end: 750
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 750
    functionName: Cmd::exec
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 9
    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:758,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - con
    argTypes:
    - '&mut impl crate::aio::ConnectionLike'
    constantsTouched: []
    func_position:
      end: 759
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 759
    functionName: Cmd::exec_async
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 6
    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:764,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:764,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:766,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 773
      start: 762
    functionDepth: 13
    functionLinenumber: 762
    functionLinenumberEnd: 773
    functionName: Cmd::args_iter
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 4
    functionsReached:
    - iter
    - Arg::Simple
    - map
    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:907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 908
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 908
    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: 808
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 808
    functionName: Cmd::set_no_response
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&mut Cmd'
    signature: 'pub fn set_no_response(&mut self, nr: bool) -> &mut Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 814
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 814
    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:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - command_cache_config
    argTypes:
    - CommandCacheConfig
    constantsTouched: []
    func_position:
      end: 822
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 822
    functionName: Cmd::set_cache_config
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 3
    functionsReached:
    - Some
    linkageType: ''
    returnType: '&mut Cmd'
    signature: 'pub fn set_cache_config(&mut self, command_cache_config: CommandCacheConfig)
      -> &mut Cmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 828
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 828
    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:831,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 2
    functionLinenumber: 830
    functionLinenumberEnd: 832
    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:845,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 848
      start: 844
    functionDepth: 16
    functionLinenumber: 844
    functionLinenumberEnd: 848
    functionName: cmd
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 205
    functionsReached:
    - Cmd::arg
    - Cmd::new
    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:869,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cmd.rs:869,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:869,1
    - Dst: Arg::Simple
      Src: /src/redis-rs/redis/src/cmd.rs:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - args
    argTypes:
    - '&[Vec<u8>]'
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 25
    functionLinenumber: 868
    functionLinenumberEnd: 870
    functionName: pack_command
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - iter
    - Arg::Simple
    - encode_command
    - map
    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:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 875
      start: 873
    functionDepth: 1
    functionLinenumber: 873
    functionLinenumberEnd: 875
    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:884,1
    - Dst: impl Clone + ExactSizeIterator::map
      Src: /src/redis-rs/redis/src/cmd.rs:884,1
    - Dst: String::from_utf8
      Src: /src/redis-rs/redis/src/cmd.rs:886,1
    - Dst: Vec::to_vec
      Src: /src/redis-rs/redis/src/cmd.rs:886,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:886,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cmd.rs:887,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 890
      start: 883
    functionDepth: 28
    functionLinenumber: 883
    functionLinenumberEnd: 890
    functionName: tests::args_iter_to_str
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - impl Clone + ExactSizeIterator::map
    - Vec::to_vec
    - collect
    - Cmd::args_iter
    - String::from_utf8
    - '&str::to_string'
    - unwrap
    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:893,1
    - Dst: args_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cmd.rs:893,1
    - Dst: '&Cmd::args_iter'
      Src: /src/redis-rs/redis/src/cmd.rs:894,1
    - Dst: args_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/cmd.rs:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - '&Cmd'
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 902
      start: 892
    functionDepth: 28
    functionLinenumber: 892
    functionLinenumberEnd: 902
    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:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - c1
    - c2
    argTypes:
    - Cmd
    - Cmd
    constantsTouched: []
    func_position:
      end: 907
      start: 904
    functionDepth: 29
    functionLinenumber: 904
    functionLinenumberEnd: 907
    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:912,1
    - Dst: Cmd::write_arg_fmt
      Src: /src/redis-rs/redis/src/cmd.rs:913,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:914,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cmd.rs:914,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:916,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:925,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:925,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 910
    functionDepth: 17
    functionLinenumber: 910
    functionLinenumberEnd: 927
    functionName: tests::test_cmd_packed_command_simple_args
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - cmd
    - map
    - collect
    - Cmd::write_arg_fmt
    - Cmd::arg
    - '&mut Cmd::arg'
    - Cmd::get_packed_command
    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:932,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:933,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cmd.rs:933,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:933,1
    - Dst: cursor_arg
      Src: /src/redis-rs/redis/src/cmd.rs:933,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cmd.rs:935,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cmd.rs:944,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cmd.rs:944,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/cmd.rs:944,1
    - Dst: std::iter::once
      Src: /src/redis-rs/redis/src/cmd.rs:947,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cmd.rs:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 950
      start: 930
    functionDepth: 17
    functionLinenumber: 930
    functionLinenumberEnd: 950
    functionName: tests::test_cmd_packed_command_with_cursor
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - cmd
    - map
    - collect
    - arg
    - Cmd::arg
    - cursor_arg
    - chain
    - '&mut Cmd::arg'
    - Cmd::get_packed_command
    - std::iter::once
    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:954,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:955,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/src/cmd.rs:955,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/cmd.rs:955,1
    - Dst: '&mut Cmd::clear'
      Src: /src/redis-rs/redis/src/cmd.rs:955,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:967,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:967,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 968
      start: 953
    functionDepth: 17
    functionLinenumber: 953
    functionLinenumberEnd: 968
    functionName: tests::test_cmd_clean
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::clear'
    - assert_practical_equivalent
    - cmd
    - '&mut Cmd::cursor_arg'
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    - Cmd::new
    linkageType: ''
    returnType: void
    signature: fn test_cmd_clean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cmd.rs:973,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cmd.rs:974,1
    - Dst: '&mut Cmd::cursor_arg'
      Src: /src/redis-rs/redis/src/cmd.rs:974,1
    - Dst: '&mut Cmd::set_cache_config'
      Src: /src/redis-rs/redis/src/cmd.rs:974,1
    - Dst: crate::CommandCacheConfig::default
      Src: /src/redis-rs/redis/src/cmd.rs:976,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/cmd.rs:974,1
    - Dst: '&mut Cmd::clear'
      Src: /src/redis-rs/redis/src/cmd.rs:974,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 972
    functionDepth: 17
    functionLinenumber: 972
    functionLinenumberEnd: 988
    functionName: tests::test_cmd_clean_cache_aio
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - '&mut Cmd::clear'
    - cmd
    - '&mut Cmd::set_cache_config'
    - '&mut Cmd::cursor_arg'
    - crate::CommandCacheConfig::default
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    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:994,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:996,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:997,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:997,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:998,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:998,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:999,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:999,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1002,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1003,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 991
    functionDepth: 17
    functionLinenumber: 991
    functionLinenumberEnd: 1006
    functionName: tests::test_cmd_writer_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::write_arg
    - assert_practical_equivalent
    - Poll::unwrap
    - Cmd::writer_for_next_arg
    - impl Write + '_::flush
    - unwrap
    - impl Write + '_::write_all
    - Cmd::new
    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:1012,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1014,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1015,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1015,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1016,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1016,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1017,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1017,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1020,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1021,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1021,1
    - Dst: impl Write + '_::write_all
      Src: /src/redis-rs/redis/src/cmd.rs:1022,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1022,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1023,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1023,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1026,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1027,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1028,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1011
    functionDepth: 17
    functionLinenumber: 1011
    functionLinenumberEnd: 1031
    functionName: tests::test_cmd_writer_for_next_arg_multiple
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::write_arg
    - assert_practical_equivalent
    - Poll::unwrap
    - Cmd::writer_for_next_arg
    - impl Write + '_::flush
    - unwrap
    - impl Write + '_::write_all
    - Cmd::new
    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:1036,1
    - Dst: Cmd::writer_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1038,1
    - Dst: impl Write + '_::flush
      Src: /src/redis-rs/redis/src/cmd.rs:1039,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/cmd.rs:1039,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1042,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1043,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1035
    functionDepth: 17
    functionLinenumber: 1035
    functionLinenumberEnd: 1046
    functionName: tests::test_cmd_writer_for_next_arg_empty
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::write_arg
    - assert_practical_equivalent
    - Poll::unwrap
    - Cmd::writer_for_next_arg
    - impl Write + '_::flush
    - Cmd::new
    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:1053,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1055,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1056,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1057,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1060,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1061,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1052
    functionDepth: 17
    functionLinenumber: 1052
    functionLinenumberEnd: 1064
    functionName: tests::test_cmd_bufmut_for_next_arg
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::write_arg
    - assert_practical_equivalent
    - impl bytes::BufMut + '_::put_slice
    - Cmd::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:1071,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1073,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1074,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1075,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1078,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1079,1
    - Dst: impl bytes::BufMut + '_::put_slice
      Src: /src/redis-rs/redis/src/cmd.rs:1080,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1083,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1084,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1085,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1087,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1070
    functionDepth: 17
    functionLinenumber: 1070
    functionLinenumberEnd: 1088
    functionName: tests::test_cmd_bufmut_for_next_arg_multiple
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::write_arg
    - assert_practical_equivalent
    - impl bytes::BufMut + '_::put_slice
    - Cmd::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:1094,1
    - Dst: Cmd::bufmut_for_next_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1096,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/cmd.rs:1099,1
    - Dst: Cmd::write_arg
      Src: /src/redis-rs/redis/src/cmd.rs:1100,1
    - Dst: assert_practical_equivalent
      Src: /src/redis-rs/redis/src/cmd.rs:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1093
    functionDepth: 17
    functionLinenumber: 1093
    functionLinenumberEnd: 1103
    functionName: tests::test_cmd_bufmut_for_next_arg_empty
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::write_arg
    - Cmd::bufmut_for_next_arg
    - Cmd::new
    - assert_practical_equivalent
    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:1108,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1111,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1115,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cmd.rs:1115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1120
    functionName: tests::test_cmd_arg_idx
    functionSourceFile: /src/redis-rs/redis/src/cmd.rs
    functionUses: 0
    functionsReached:
    - Cmd::new
    - arg
    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:
    - ::std::convert::From::from
    - Err
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: mpsc::channel
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:413,1
    - Dst: PipelineSink::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:415,1
    - Dst: stream::poll_fn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:421,1
    - Dst: "(\n        PendingRequest::poll_recv"
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:421,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:421,1
    - Dst: forward
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:421,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:421,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: 426
      start: 402
    functionDepth: 22
    functionLinenumber: 402
    functionLinenumberEnd: 426
    functionName: Pipeline::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 4
    functionsReached:
    - PipelineSink::new
    - map
    - "(\n        PendingRequest::poll_recv"
    - forward
    - 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: 24
    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: Pipeline
    signature: 'pub fn with_capacity(capacity: usize) -> Pipeline'
  - 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 Pipeline'
    signature: pub fn atomic(&mut self) -> &mut Pipeline
  - 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 Pipeline'
    signature: pub fn ignore_errors(&mut self) -> &mut Pipeline
  - 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: 18
    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: 23
    functionLinenumber: 177
    functionLinenumberEnd: 200
    functionName: Pipeline::query
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 1
    functionsReached:
    - Pipeline::complete_request
    - encode_pipeline
    - len
    - fail
    - '&mut dyn ConnectionLike::req_packed_commands'
    - '&mut dyn ConnectionLike::supports_pipelining'
    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: 18
    functionLinenumber: 205
    functionLinenumberEnd: 218
    functionName: Pipeline::query_async
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 5
    functionsReached:
    - Pipeline::complete_request
    - len
    - '&mut impl crate::aio::ConnectionLike::req_packed_commands'
    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: 26
    functionLinenumber: 238
    functionLinenumberEnd: 258
    functionName: Pipeline::complete_request
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 2
    functionsReached:
    - Pipeline::is_transaction
    - into
    - types::from_redis_value
    - Ok
    - pop
    - Err
    - Pipeline::compose_response
    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: 27
    functionLinenumber: 267
    functionLinenumberEnd: 287
    functionName: write_pipeline
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 1
    functionsReached:
    - RedisResult::iter
    - map
    - cmd::cmd
    - RedisResult::write_packed_command_preallocated
    - cmd::cmd_len
    - sum
    - Cmd::write_packed_command_preallocated
    - '&mut Vec<u8>::reserve'
    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: into_iter
      Src: /src/redis-rs/redis/src/pipeline.rs:71,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/pipeline.rs:71,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/pipeline.rs:71,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/pipeline.rs:74,1
    - Dst: then
      Src: /src/redis-rs/redis/src/pipeline.rs:74,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/pipeline.rs:71,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/pipeline.rs:81,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/pipeline.rs:81,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/pipeline.rs:81,1
    - Dst: implement_pipeline_commands::filter_ignored_results
      Src: /src/redis-rs/redis/src/pipeline.rs:82,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/pipeline.rs:86,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/pipeline.rs:86,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/pipeline.rs:86,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/pipeline.rs:90,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/pipeline.rs:90,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/pipeline.rs:86,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/pipeline.rs:95,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/pipeline.rs:96,1
    - Dst: types::from_redis_value
      Src: /src/redis-rs/redis/src/pipeline.rs:96,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/pipeline.rs:97,1
    - Dst: implement_pipeline_commands::filter_ignored_results
      Src: /src/redis-rs/redis/src/pipeline.rs:97,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/pipeline.rs:97,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/pipeline.rs:100,1
    - Dst: crate::RedisError::pipeline
      Src: /src/redis-rs/redis/src/pipeline.rs:100,1
    - Dst: Self::new
      Src: /src/redis-rs/redis/src/pipeline.rs:107,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 401
      start: 290
    functionDepth: 16
    functionLinenumber: 290
    functionLinenumberEnd: 401
    functionName: implement_pipeline_commands
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - Some
    - clear
    - extract_error
    - implement_pipeline_commands::add_command
    - Err
    - filter_map
    - Value::Array
    - push
    - Self::new
    - into_iter
    - clone
    - contains
    - crate::RedisError::pipeline
    - iter
    - insert
    - types::from_redis_value
    - cmd::cmd
    - implement_pipeline_commands::filter_ignored_results
    - enumerate
    - Ok
    - len
    - collect
    - is_empty
    - Cmd::arg
    - then
    - implement_pipeline_commands::get_last_command
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pipeline::get_last_command
      Src: /src/redis-rs/redis/src/pipeline.rs:411,1
    - Dst: Cmd::set_cache_config
      Src: /src/redis-rs/redis/src/pipeline.rs:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - command_cache_config
    argTypes:
    - CommandCacheConfig
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: Pipeline::set_cache_config
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - Cmd::set_cache_config
    - Pipeline::get_last_command
    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:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 419
    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:433,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:434,1
    - Dst: Cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:434,1
    - Dst: redis::Cmd::ignore
      Src: /src/redis-rs/redis/src/pipeline.rs:434,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:434,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/pipeline.rs:434,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/pipeline.rs:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 442
      start: 432
    functionDepth: 24
    functionLinenumber: 432
    functionLinenumberEnd: 442
    functionName: tests::test_pipe
    functionSourceFile: /src/redis-rs/redis/src/pipeline.rs
    functionUses: 0
    functionsReached:
    - cmd::cmd
    - pipe
    - redis::Cmd::ignore
    - ignore
    - 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:445,1
    - Dst: ServerError
      Src: /src/redis-rs/redis/src/pipeline.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 449
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 449
    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:453,1
    - Dst: complete_request
      Src: /src/redis-rs/redis/src/pipeline.rs:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 459
      start: 452
    functionDepth: 25
    functionLinenumber: 452
    functionLinenumberEnd: 459
    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:463,1
    - Dst: compose_response::<Vec<Value>>
      Src: /src/redis-rs/redis/src/pipeline.rs:465,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/pipeline.rs:465,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/pipeline.rs:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 470
      start: 462
    functionDepth: 25
    functionLinenumber: 462
    functionLinenumberEnd: 470
    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:474,1
    - Dst: ignore_errors
      Src: /src/redis-rs/redis/src/pipeline.rs:476,1
    - Dst: "ignore_errors()\n            .compose_response::<Vec<RedisResult<Value>>>"
      Src: /src/redis-rs/redis/src/pipeline.rs:476,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/pipeline.rs:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 473
    functionDepth: 25
    functionLinenumber: 473
    functionLinenumberEnd: 487
    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: 25
    functionsReached:
    - Ok
    - T::into_connection_info
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn open<T: IntoConnectionInfo>(params: T) -> RedisResult<Client>'
  - 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: 0
    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<Client>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:209,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:211,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/client.rs:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 205
    functionDepth: 25
    functionLinenumber: 205
    functionLinenumberEnd: 218
    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:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 25
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: AsyncConnectionConfig::new
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 18
    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: 234
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 234
    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: 242
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 242
    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:270,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 271
    functionName: AsyncConnectionConfig::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::set_push_sender_internal
    - std::sync::Arc::new
    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:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sender
    argTypes:
    - std::sync::Arc<dyn AsyncPushSender>
    constantsTouched: []
    func_position:
      end: 279
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 279
    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:284,1
    - Dst: Cache::Config
      Src: /src/redis-rs/redis/src/client.rs:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: AsyncConnectionConfig::set_cache_config
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - Cache::Config
    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:293,1
    - Dst: Cache::Manager
      Src: /src/redis-rs/redis/src/client.rs:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_manager
    argTypes:
    - CacheManager
    constantsTouched: []
    func_position:
      end: 295
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 295
    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:301,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - impl AsyncDNSResolver
    constantsTouched: []
    func_position:
      end: 302
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 302
    functionName: AsyncConnectionConfig::set_dns_resolver
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::set_dns_resolver_internal
    - std::sync::Arc::new
    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:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - std::sync::Arc<dyn AsyncDNSResolver>
    constantsTouched: []
    func_position:
      end: 310
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 310
    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:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 329
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 329
    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:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 352
    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: AsyncConnectionConfig::set_credentials_provider_internal
      Src: /src/redis-rs/redis/src/client.rs:381,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/client.rs:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - provider
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 382
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 382
    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:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::sync::Arc<dyn StreamingCredentialsProvider>
    constantsTouched: []
    func_position:
      end: 391
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 391
    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:405,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/client.rs:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 407
      start: 402
    functionDepth: 26
    functionLinenumber: 402
    functionLinenumberEnd: 407
    functionName: Client::get_multiplexed_async_connection
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::new
    - Client::get_multiplexed_async_connection_with_config
    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:416,1
    - Dst: get_multiplexed_async_connection_inner_with_timeout::<crate::aio::tokio::Tokio>
      Src: /src/redis-rs/redis/src/client.rs:418,1
    - Dst: get_multiplexed_async_connection_inner_with_timeout::<crate::aio::smol::Smol>
      Src: /src/redis-rs/redis/src/client.rs:426,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 432
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 432
    functionName: Client::get_multiplexed_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 1
    functionsReached:
    - Runtime::locate
    - get_multiplexed_async_connection_inner_with_timeout::<crate::aio::tokio::Tokio>
    - get_multiplexed_async_connection_inner_with_timeout::<crate::aio::smol::Smol>
    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:454,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:454,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 21
    functionLinenumber: 453
    functionLinenumberEnd: 455
    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:468,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - config
    argTypes:
    - crate::aio::ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 469
      start: 464
    functionDepth: 21
    functionLinenumber: 464
    functionLinenumberEnd: 469
    functionName: Client::get_connection_manager_lazy
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::clone
    - crate::aio::ConnectionManager::new_lazy_with_config
    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:494,1
    - Dst: Client::clone
      Src: /src/redis-rs/redis/src/client.rs:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - crate::aio::ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 495
      start: 490
    functionDepth: 21
    functionLinenumber: 490
    functionLinenumberEnd: 495
    functionName: Client::get_connection_manager_with_config
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::clone
    - crate::aio::ConnectionManager::new_with_config
    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:506,1
    - Dst: get_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:508,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:512,1
    - Dst: get_multiplexed_async_connection_inner::<T>
      Src: /src/redis-rs/redis/src/client.rs:512,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:518,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/client.rs:519,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/client.rs:520,1
    - Dst: into
      Src: /src/redis-rs/redis/src/client.rs:520,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - config
    - rt
    argTypes:
    - '&AsyncConnectionConfig'
    - Runtime
    constantsTouched: []
    func_position:
      end: 522
      start: 497
    functionDepth: 21
    functionLinenumber: 497
    functionLinenumberEnd: 522
    functionName: Client::get_multiplexed_async_connection_inner_with_timeout
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - into
    - Ok
    - get_multiplexed_async_connection_inner::<T>
    - TcpListener::timeout
    - Err
    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:531,1
    - Dst: T::spawn
      Src: /src/redis-rs/redis/src/client.rs:534,1
    - Dst: bool::set_task_handle
      Src: /src/redis-rs/redis/src/client.rs:535,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/client.rs:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 537
      start: 524
    functionDepth: 2
    functionLinenumber: 524
    functionLinenumberEnd: 537
    functionName: Client::get_multiplexed_async_connection_inner
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - bool::set_task_handle
    - T::spawn
    - create_multiplexed_async_connection_inner::<T>
    - Ok
    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:549,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/client.rs:549,1
    - Dst: get_simple_async_connection::<T>
      Src: /src/redis-rs/redis/src/client.rs:553,1
    - Dst: crate::aio::MultiplexedConnection::new_with_config
      Src: /src/redis-rs/redis/src/client.rs:554,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/client.rs:557,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 560
      start: 539
    functionDepth: 21
    functionLinenumber: 539
    functionLinenumberEnd: 560
    functionName: Client::create_multiplexed_async_connection_inner
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - as_deref
    - get_simple_async_connection::<T>
    - Self::clone
    - crate::aio::MultiplexedConnection::new_with_config
    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:566,1
    - Dst: get_simple_async_connection::<crate::aio::tokio::Tokio>
      Src: /src/redis-rs/redis/src/client.rs:569,1
    - Dst: get_simple_async_connection::<crate::aio::smol::Smol>
      Src: /src/redis-rs/redis/src/client.rs:575,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 579
      start: 562
    functionDepth: 1
    functionLinenumber: 562
    functionLinenumberEnd: 579
    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>
    - get_simple_async_connection::<crate::aio::tokio::Tokio>
    - Runtime::locate
    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:588,1
    - Dst: crate::aio::connect_simple::<T>
      Src: /src/redis-rs/redis/src/client.rs:589,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/client.rs:589,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - dns_resolver
    argTypes:
    - '&dyn AsyncDNSResolver'
    constantsTouched: []
    func_position:
      end: 593
      start: 581
    functionDepth: 22
    functionLinenumber: 581
    functionLinenumberEnd: 593
    functionName: Client::get_simple_async_connection
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - crate::aio::connect_simple::<T>
    - boxed
    - Ok
    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: 598
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 598
    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:604,1
    - Dst: crate::aio::PubSub::new
      Src: /src/redis-rs/redis/src/client.rs:608,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 609
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 609
    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:614,1
    - Dst: crate::aio::Monitor::new
      Src: /src/redis-rs/redis/src/client.rs:617,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 618
      start: 613
    functionDepth: 2
    functionLinenumber: 613
    functionLinenumberEnd: 618
    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:626,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/client.rs:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 627
      start: 625
    functionDepth: 26
    functionLinenumber: 625
    functionLinenumberEnd: 627
    functionName: Client::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::get_connection
    - req_packed_command
    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:635,1
    - Dst: req_packed_commands
      Src: /src/redis-rs/redis/src/client.rs:635,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 637
      start: 629
    functionDepth: 33
    functionLinenumber: 629
    functionLinenumberEnd: 637
    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: 641
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 641
    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:644,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/client.rs:645,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 649
      start: 643
    functionDepth: 2
    functionLinenumber: 643
    functionLinenumberEnd: 649
    functionName: Client::check_connection
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - Client::get_connection
    - RedisResult::check_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:652,1
    - Dst: RedisResult::is_open
      Src: /src/redis-rs/redis/src/client.rs:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 657
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 657
    functionName: Client::is_open
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - RedisResult::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: 668
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 668
    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:673,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 675
      start: 672
    functionDepth: 26
    functionLinenumber: 672
    functionLinenumberEnd: 675
    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:680,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/src/client.rs:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 26
    functionLinenumber: 679
    functionLinenumberEnd: 682
    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:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 689
      start: 686
    functionDepth: 26
    functionLinenumber: 686
    functionLinenumberEnd: 689
    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:694,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/client.rs:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 696
      start: 693
    functionDepth: 26
    functionLinenumber: 693
    functionLinenumberEnd: 696
    functionName: test::test_async_connection_config_concurrency_limit_custom
    functionSourceFile: /src/redis-rs/redis/src/client.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::new
    - Self::set_concurrency_limit
    linkageType: ''
    returnType: void
    signature: fn test_async_connection_config_concurrency_limit_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&''static Vec::is_empty'
      Src: /src/redis-rs/redis/src/entra_id.rs:292,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/entra_id.rs:293,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/entra_id.rs:293,1
    - Dst: trim
      Src: /src/redis-rs/redis/src/entra_id.rs:300,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/entra_id.rs:300,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/entra_id.rs:301,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/entra_id.rs:301,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - scopes
    argTypes:
    - '&[String]'
    constantsTouched: []
    func_position:
      end: 309
      start: 291
    functionDepth: 29
    functionLinenumber: 291
    functionLinenumberEnd: 309
    functionName: EntraIdCredentialsProvider::validate_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Ok
    - is_empty
    - '&''static Vec::is_empty'
    - Err
    - RedisError::from
    - trim
    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:315,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/entra_id.rs:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - username
    - access_token
    argTypes:
    - String
    - '&AccessToken'
    constantsTouched: []
    func_position:
      end: 317
      start: 312
    functionDepth: 31
    functionLinenumber: 312
    functionLinenumberEnd: 317
    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:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - azure_core::Error
    constantsTouched: []
    func_position:
      end: 326
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 326
    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: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_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:342,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:342,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/entra_id.rs:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - credential
    argTypes:
    - std::sync::Arc<T>
    constantsTouched: []
    func_position:
      end: 348
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 348
    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:356,1
    - Dst: Self::expect
      Src: /src/redis-rs/redis/src/entra_id.rs:356,1
    - Dst: retain
      Src: /src/redis-rs/redis/src/entra_id.rs:359,1
    - Dst: Self::is_closed
      Src: /src/redis-rs/redis/src/entra_id.rs:359,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:360,1
    - Dst: futures_util::future::join_all
      Src: /src/redis-rs/redis/src/entra_id.rs:363,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/entra_id.rs:363,1
    - Dst: map
      Src: /src/redis-rs/redis/src/entra_id.rs:363,1
    - Dst: Result<AccessToken, azure_core::Error>::as_ref
      Src: /src/redis-rs/redis/src/entra_id.rs:364,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:367,1
    - Dst: Self::convert_credentials
      Src: /src/redis-rs/redis/src/entra_id.rs:367,1
    - Dst: '&''static str::to_owned'
      Src: /src/redis-rs/redis/src/entra_id.rs:367,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/entra_id.rs:369,1
    - Dst: Self::convert_error_ref
      Src: /src/redis-rs/redis/src/entra_id.rs:369,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/entra_id.rs:372,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: 375
      start: 350
    functionDepth: 21
    functionLinenumber: 350
    functionLinenumberEnd: 375
    functionName: EntraIdCredentialsProvider::notify_subscribers
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - iter
    - Self::expect
    - map
    - clone
    - Ok
    - Self::send
    - futures_util::future::join_all
    - retain
    - Self::is_closed
    - Self::convert_credentials
    - Err
    - Result<AccessToken, azure_core::Error>::as_ref
    - Self::convert_error_ref
    - '&SharedSubscriptions::lock'
    - '&''static str::to_owned'
    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:386,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:386,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/entra_id.rs:386,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/src/entra_id.rs:390,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/src/entra_id.rs:391,1
    - Dst: Arc::clone
      Src: /src/redis-rs/redis/src/entra_id.rs:393,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:394,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/entra_id.rs:396,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:396,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:396,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/entra_id.rs:396,1
    - Dst: '&''static Vec::iter'
      Src: /src/redis-rs/redis/src/entra_id.rs:397,1
    - Dst: map
      Src: /src/redis-rs/redis/src/entra_id.rs:397,1
    - Dst: TlsFilePaths::as_str
      Src: /src/redis-rs/redis/src/entra_id.rs:397,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/entra_id.rs:397,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/entra_id.rs:399,1
    - Dst: ExponentialBuilder::default
      Src: /src/redis-rs/redis/src/entra_id.rs:406,1
    - Dst: Self::with_factor
      Src: /src/redis-rs/redis/src/entra_id.rs:406,1
    - Dst: with_min_delay
      Src: /src/redis-rs/redis/src/entra_id.rs:406,1
    - Dst: with_max_times
      Src: /src/redis-rs/redis/src/entra_id.rs:406,1
    - Dst: with_jitter
      Src: /src/redis-rs/redis/src/entra_id.rs:406,1
    - Dst: ClusterClientBuilder::with_max_delay
      Src: /src/redis-rs/redis/src/entra_id.rs:413,1
    - Dst: Self::get_token
      Src: /src/redis-rs/redis/src/entra_id.rs:418,1
    - Dst: retry
      Src: /src/redis-rs/redis/src/entra_id.rs:420,1
    - Dst: sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:420,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:422,1
    - Dst: notify
      Src: /src/redis-rs/redis/src/entra_id.rs:420,1
    - Dst: credentials_management_utils::extract_oid_from_jwt
      Src: /src/redis-rs/redis/src/entra_id.rs:427,1
    - Dst: secret
      Src: /src/redis-rs/redis/src/entra_id.rs:428,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/entra_id.rs:433,1
    - Dst: Self::write
      Src: /src/redis-rs/redis/src/entra_id.rs:437,1
    - Dst: Poll::unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:437,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:438,1
    - Dst: Self::convert_credentials
      Src: /src/redis-rs/redis/src/entra_id.rs:438,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/entra_id.rs:438,1
    - Dst: compute_sleep_duration_on_success
      Src: /src/redis-rs/redis/src/entra_id.rs:440,1
    - Dst: Self::notify_subscribers
      Src: /src/redis-rs/redis/src/entra_id.rs:443,1
    - Dst: Self::notify_subscribers
      Src: /src/redis-rs/redis/src/entra_id.rs:447,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:449,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:449,1
    - Dst: as_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:450,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 124
    argCount: 2
    argNames:
    - retry_config
    - compute_sleep_duration_on_success
    argTypes:
    - RetryConfig
    - F
    constantsTouched: []
    func_position:
      end: 455
      start: 378
    functionDepth: 21
    functionLinenumber: 378
    functionLinenumberEnd: 455
    functionName: EntraIdCredentialsProvider::start_refresh_service
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Some
    - ExponentialBuilder::default
    - std::time::Duration::from_millis
    - as_millis
    - '&''static Vec::iter'
    - Self::convert_credentials
    - Self::get_token
    - Self::with_factor
    - is_some
    - Self::notify_subscribers
    - credentials_management_utils::extract_oid_from_jwt
    - with_min_delay
    - map
    - clone
    - Arc::clone
    - with_jitter
    - notify
    - '&str::to_string'
    - retry
    - tokio::time::sleep
    - ClusterClientBuilder::with_max_delay
    - compute_sleep_duration_on_success
    - with_max_times
    - Self::write
    - sleep
    - Poll::unwrap
    - unwrap
    - TlsFilePaths::as_str
    - lock
    - secret
    - collect
    - tokio::spawn
    - '&''static str::clone'
    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: lock
      Src: /src/redis-rs/redis/src/entra_id.rs:459,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:459,1
    - Dst: take
      Src: /src/redis-rs/redis/src/entra_id.rs:459,1
    - Dst: abort
      Src: /src/redis-rs/redis/src/entra_id.rs:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: EntraIdCredentialsProvider::stop
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - take
    - lock
    - abort
    - unwrap
    linkageType: ''
    returnType: void
    signature: fn stop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::new_developer_tools_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 468
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 468
    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:475,1
    - Dst: DeveloperToolsCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:477,1
    - Dst: RedisServer::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:477,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:478,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:479,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:479,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:481,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:482,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:483,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - scopes
    - options
    argTypes:
    - Vec<String>
    - Option<DeveloperToolsCredentialOptions>
    constantsTouched: []
    func_position:
      end: 485
      start: 471
    functionDepth: 30
    functionLinenumber: 471
    functionLinenumberEnd: 485
    functionName: EntraIdCredentialsProvider::new_developer_tools_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Default::default
    - Arc::new
    - Self::validate_scopes
    - DeveloperToolsCredential::new
    - Self::unwrap_credential
    - RedisServer::map_err
    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:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - tenant_id
    - client_id
    - client_secret
    argTypes:
    - String
    - String
    - String
    constantsTouched: []
    func_position:
      end: 500
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 500
    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:510,1
    - Dst: ClientSecretCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:512,1
    - Dst: into
      Src: /src/redis-rs/redis/src/entra_id.rs:512,1
    - Dst: RedisServer::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:512,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:514,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:515,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:515,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:517,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:518,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:519,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: 521
      start: 503
    functionDepth: 30
    functionLinenumber: 503
    functionLinenumberEnd: 521
    functionName: EntraIdCredentialsProvider::new_client_secret_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 1
    functionsReached:
    - into
    - Ok
    - Default::default
    - Arc::new
    - Self::validate_scopes
    - ClientSecretCredential::new
    - Self::unwrap_credential
    - RedisServer::map_err
    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:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - tenant_id
    - client_id
    - client_certificate
    argTypes:
    - String
    - String
    - ClientCertificate
    constantsTouched: []
    func_position:
      end: 536
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 536
    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:546,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:549,1
    - Dst: Secret::new
      Src: /src/redis-rs/redis/src/entra_id.rs:549,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:551,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/entra_id.rs:552,1
    - Dst: Secret::new
      Src: /src/redis-rs/redis/src/entra_id.rs:552,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:553,1
    - Dst: ClientCertificateCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:557,1
    - Dst: into
      Src: /src/redis-rs/redis/src/entra_id.rs:560,1
    - Dst: RedisServer::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:557,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:564,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:565,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:565,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:567,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:568,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:569,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: 571
      start: 539
    functionDepth: 30
    functionLinenumber: 539
    functionLinenumberEnd: 571
    functionName: EntraIdCredentialsProvider::new_client_certificate_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 1
    functionsReached:
    - Some
    - into
    - Secret::new
    - ClientCertificateCredential::new
    - Ok
    - Default::default
    - Arc::new
    - Self::validate_scopes
    - Self::unwrap_credential
    - RedisServer::map_err
    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:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 579
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 579
    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:586,1
    - Dst: ManagedIdentityCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:588,1
    - Dst: RedisServer::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:588,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:589,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:590,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:590,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:592,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:593,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - scopes
    - options
    argTypes:
    - Vec<String>
    - Option<ManagedIdentityCredentialOptions>
    constantsTouched: []
    func_position:
      end: 596
      start: 582
    functionDepth: 30
    functionLinenumber: 582
    functionLinenumberEnd: 596
    functionName: EntraIdCredentialsProvider::new_system_assigned_managed_identity_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 1
    functionsReached:
    - ManagedIdentityCredential::new
    - Ok
    - Default::default
    - Arc::new
    - Self::validate_scopes
    - Self::unwrap_credential
    - RedisServer::map_err
    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:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 604
    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:611,1
    - Dst: ManagedIdentityCredential::new
      Src: /src/redis-rs/redis/src/entra_id.rs:613,1
    - Dst: RedisServer::map_err
      Src: /src/redis-rs/redis/src/entra_id.rs:613,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:614,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:615,1
    - Dst: Self::unwrap_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:615,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:617,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:618,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:619,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - scopes
    - options
    argTypes:
    - Vec<String>
    - Option<ManagedIdentityCredentialOptions>
    constantsTouched: []
    func_position:
      end: 621
      start: 607
    functionDepth: 30
    functionLinenumber: 607
    functionLinenumberEnd: 621
    functionName: EntraIdCredentialsProvider::new_user_assigned_managed_identity_with_scopes
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 1
    functionsReached:
    - ManagedIdentityCredential::new
    - Ok
    - Default::default
    - Arc::new
    - Self::validate_scopes
    - Self::unwrap_credential
    - RedisServer::map_err
    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:628,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:629,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:632,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:633,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/entra_id.rs:634,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: 636
      start: 624
    functionDepth: 30
    functionLinenumber: 624
    functionLinenumberEnd: 636
    functionName: EntraIdCredentialsProvider::new_with_credential
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Self::validate_scopes
    - Ok
    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:640,1
    - Dst: OffsetDateTime::now_utc
      Src: /src/redis-rs/redis/src/entra_id.rs:641,1
    - Dst: try_into
      Src: /src/redis-rs/redis/src/entra_id.rs:642,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/src/entra_id.rs:644,1
    - Dst: checked_sub
      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:647,1
    - Dst: unwrap_or_else
      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:650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - retry_config
    argTypes:
    - RetryConfig
    constantsTouched: []
    func_position:
      end: 653
      start: 639
    functionDepth: 22
    functionLinenumber: 639
    functionLinenumberEnd: 653
    functionName: EntraIdCredentialsProvider::start
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - EntraIdCredentialsProvider::start_refresh_service
    - checked_sub
    - std::time::Duration::from_secs
    - unwrap_or_else
    - try_into
    - OffsetDateTime::now_utc
    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:658,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/entra_id.rs:660,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/entra_id.rs:660,1
    - Dst: push
      Src: /src/redis-rs/redis/src/entra_id.rs:660,1
    - Dst: futures_util::stream::unfold
      Src: /src/redis-rs/redis/src/entra_id.rs:665,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/entra_id.rs:666,1
    - Dst: map
      Src: /src/redis-rs/redis/src/entra_id.rs:666,1
    - Dst: read
      Src: /src/redis-rs/redis/src/entra_id.rs:669,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:669,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:669,1
    - Dst: futures_util::stream::once
      Src: /src/redis-rs/redis/src/entra_id.rs:670,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/entra_id.rs:670,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/entra_id.rs:670,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/entra_id.rs:670,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/entra_id.rs:674,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 676
      start: 657
    functionDepth: 16
    functionLinenumber: 657
    functionLinenumberEnd: 676
    functionName: EntraIdCredentialsProvider::subscribe
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - lock
    - recv
    - map
    - futures_util::stream::unfold
    - clone
    - Ok
    - expect
    - futures_util::stream::once
    - chain
    - boxed
    - tokio::sync::mpsc::channel::<RedisResult<BasicAuth>>
    - read
    - unwrap
    - push
    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:681,1
    - Dst: field
      Src: /src/redis-rs/redis/src/entra_id.rs:681,1
    - Dst: field
      Src: /src/redis-rs/redis/src/entra_id.rs:681,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/entra_id.rs:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 685
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 685
    functionName: EntraIdCredentialsProvider::fmt
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - finish
    - field
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::stop
      Src: /src/redis-rs/redis/src/entra_id.rs:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 691
      start: 689
    functionDepth: 2
    functionLinenumber: 689
    functionLinenumberEnd: 691
    functionName: EntraIdCredentialsProvider::drop
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - EntraIdCredentialsProvider::stop
    linkageType: ''
    returnType: void
    signature: fn drop(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_developer_tools
      Src: /src/redis-rs/redis/src/entra_id.rs:701,1
    - Dst: EntraIdCredentialsProvider::new_client_secret
      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: '&str::to_string'
      Src: /src/redis-rs/redis/src/entra_id.rs:706,1
    - Dst: '&str::to_string'
      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:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 714
      start: 699
    functionDepth: 32
    functionLinenumber: 699
    functionLinenumberEnd: 714
    functionName: tests::test_entra_id_provider_creation
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - '&str::to_string'
    - EntraIdCredentialsProvider::new_client_secret
    - EntraIdCredentialsProvider::new_system_assigned_managed_identity
    - EntraIdCredentialsProvider::new_developer_tools
    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:719,1
    - Dst: EntraIdCredentialsProvider::new_developer_tools_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:730,1
    - Dst: EntraIdCredentialsProvider::new_developer_tools_with_scopes
      Src: /src/redis-rs/redis/src/entra_id.rs:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 751
      start: 717
    functionDepth: 31
    functionLinenumber: 717
    functionLinenumberEnd: 751
    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:756,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:757,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 762
      start: 754
    functionDepth: 31
    functionLinenumber: 754
    functionLinenumberEnd: 762
    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:784,1
    - Dst: env_logger::builder
      Src: /src/redis-rs/redis/src/entra_id.rs:785,1
    - Dst: is_test
      Src: /src/redis-rs/redis/src/entra_id.rs:786,1
    - Dst: std::env::var
      Src: /src/redis-rs/redis/src/entra_id.rs:787,1
    - Dst: String::is_err
      Src: /src/redis-rs/redis/src/entra_id.rs:787,1
    - Dst: filter_level
      Src: /src/redis-rs/redis/src/entra_id.rs:788,1
    - Dst: init
      Src: /src/redis-rs/redis/src/entra_id.rs:790,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 792
      start: 783
    functionDepth: 21
    functionLinenumber: 783
    functionLinenumberEnd: 792
    functionName: entra_id_mock_tests::init_logger
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - std::env::var
    - init
    - filter_level
    - is_test
    - String::is_err
    - call_once
    - env_logger::builder
    linkageType: ''
    returnType: void
    signature: fn init_logger()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: EntraIdCredentialsProvider::new_with_credential
      Src: /src/redis-rs/redis/src/entra_id.rs:924,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/entra_id.rs:924,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:924,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - mock_credential
    - scopes
    argTypes:
    - MockTokenCredential
    - Vec<String>
    constantsTouched: []
    func_position:
      end: 925
      start: 920
    functionDepth: 31
    functionLinenumber: 920
    functionLinenumberEnd: 925
    functionName: entra_id_mock_tests::create_mock_entra_id_credentials_provider
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - Arc::new
    - EntraIdCredentialsProvider::new_with_credential
    linkageType: ''
    returnType: EntraIdCredentialsProvider
    signature: 'fn create_mock_entra_id_credentials_provider(mock_credential: MockTokenCredential,scopes:
      Vec<String>,) -> EntraIdCredentialsProvider'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: init_logger
      Src: /src/redis-rs/redis/src/entra_id.rs:929,1
    - Dst: MockTokenCredential::success
      Src: /src/redis-rs/redis/src/entra_id.rs:930,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:931,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:933,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:937,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:937,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:940,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:940,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:946,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:947,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:947,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 953
      start: 928
    functionDepth: 22
    functionLinenumber: 928
    functionLinenumberEnd: 953
    functionName: entra_id_mock_tests::test_mock_successful_authentication
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - start
    - MockTokenCredential::success
    - subscribe
    - clone
    - std::time::Duration::from_millis
    - init_logger
    - RetryConfig::default
    - next
    - unwrap
    - tokio::time::sleep
    - create_mock_entra_id_credentials_provider
    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:957,1
    - Dst: MockTokenCredential::failure
      Src: /src/redis-rs/redis/src/entra_id.rs:958,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:959,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:961,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:965,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:966,1
    - Dst: Self::set_number_of_retries
      Src: /src/redis-rs/redis/src/entra_id.rs:966,1
    - Dst: Self::set_min_delay
      Src: /src/redis-rs/redis/src/entra_id.rs:966,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:968,1
    - Dst: Self::set_max_delay
      Src: /src/redis-rs/redis/src/entra_id.rs:966,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:969,1
    - Dst: Self::set_exponent_base
      Src: /src/redis-rs/redis/src/entra_id.rs:966,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:974,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:975,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 956
    functionDepth: 22
    functionLinenumber: 956
    functionLinenumberEnd: 985
    functionName: entra_id_mock_tests::test_mock_authentication_failure
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - start
    - Self::set_number_of_retries
    - subscribe
    - Self::set_exponent_base
    - clone
    - std::time::Duration::from_millis
    - init_logger
    - RetryConfig::default
    - next
    - MockTokenCredential::failure
    - Self::set_max_delay
    - Self::set_min_delay
    - create_mock_entra_id_credentials_provider
    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:989,1
    - Dst: MockTokenCredential::alternating_fail_success
      Src: /src/redis-rs/redis/src/entra_id.rs:990,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:991,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:993,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:997,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:997,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1000,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:1000,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1006,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1007,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1007,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 988
    functionDepth: 22
    functionLinenumber: 988
    functionLinenumberEnd: 1010
    functionName: entra_id_mock_tests::test_mock_retry_mechanism
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - start
    - MockTokenCredential::alternating_fail_success
    - subscribe
    - clone
    - std::time::Duration::from_millis
    - init_logger
    - RetryConfig::default
    - next
    - unwrap
    - tokio::time::sleep
    - create_mock_entra_id_credentials_provider
    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:1014,1
    - Dst: MockTokenCredential::multiple_tokens
      Src: /src/redis-rs/redis/src/entra_id.rs:1015,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:1016,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1018,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:1022,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:1022,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1025,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1026,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1027,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1030,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1030,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1030,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1031,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1031,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1031,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1032,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1032,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1032,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1013
    functionDepth: 22
    functionLinenumber: 1013
    functionLinenumberEnd: 1041
    functionName: entra_id_mock_tests::test_mock_multiple_subscribers
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - start
    - subscribe
    - MockTokenCredential::multiple_tokens
    - clone
    - init_logger
    - RetryConfig::default
    - next
    - unwrap
    - create_mock_entra_id_credentials_provider
    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:1045,1
    - Dst: MockTokenCredential::multiple_tokens
      Src: /src/redis-rs/redis/src/entra_id.rs:1046,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/entra_id.rs:1047,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1048,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:1052,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:1052,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1054,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1056,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1056,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1056,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1062,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/src/entra_id.rs:1062,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1063,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1063,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1063,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1069,1
    - Dst: std::time::Duration::from_secs
      Src: /src/redis-rs/redis/src/entra_id.rs:1069,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1070,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1070,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1070,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1044
    functionDepth: 22
    functionLinenumber: 1044
    functionLinenumberEnd: 1074
    functionName: entra_id_mock_tests::test_mock_multiple_tokens_over_time
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - start
    - subscribe
    - MockTokenCredential::multiple_tokens
    - clone
    - std::time::Duration::from_secs
    - init_logger
    - RetryConfig::default
    - next
    - unwrap
    - tokio::time::sleep
    - create_mock_entra_id_credentials_provider
    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:1080,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1081,1
    - Dst: MockTokenCredential::success
      Src: /src/redis-rs/redis/src/entra_id.rs:1081,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/entra_id.rs:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1077
    functionDepth: 32
    functionLinenumber: 1077
    functionLinenumberEnd: 1095
    functionName: entra_id_mock_tests::test_mock_scope_validation
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - panic::catch_unwind
    - MockTokenCredential::success
    - create_mock_entra_id_credentials_provider
    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:1099,1
    - Dst: MockTokenCredential::multiple_tokens
      Src: /src/redis-rs/redis/src/entra_id.rs:1100,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1102,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:1106,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:1106,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1108,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1109,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/entra_id.rs:1110,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1114,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1114,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1114,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1115,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1115,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1115,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1116,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1116,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1116,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/entra_id.rs:1123,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1125,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1125,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1125,1
    - Dst: next
      Src: /src/redis-rs/redis/src/entra_id.rs:1126,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1126,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/entra_id.rs:1126,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/entra_id.rs:1137,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1149
      start: 1098
    functionDepth: 22
    functionLinenumber: 1098
    functionLinenumberEnd: 1149
    functionName: entra_id_mock_tests::test_mock_subscriber_cleanup
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - start
    - subscribe
    - MockTokenCredential::multiple_tokens
    - RetryConfig::default
    - init_logger
    - drop
    - next
    - unwrap
    - create_mock_entra_id_credentials_provider
    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:1153,1
    - Dst: MockTokenCredential::success
      Src: /src/redis-rs/redis/src/entra_id.rs:1154,1
    - Dst: create_mock_entra_id_credentials_provider
      Src: /src/redis-rs/redis/src/entra_id.rs:1156,1
    - Dst: start
      Src: /src/redis-rs/redis/src/entra_id.rs:1161,1
    - Dst: RetryConfig::default
      Src: /src/redis-rs/redis/src/entra_id.rs:1161,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1163,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:1163,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/entra_id.rs:1164,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/entra_id.rs:1166,1
    - Dst: std::time::Duration::from_millis
      Src: /src/redis-rs/redis/src/entra_id.rs:1166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1152
    functionDepth: 22
    functionLinenumber: 1152
    functionLinenumberEnd: 1168
    functionName: entra_id_mock_tests::test_mock_provider_cleanup
    functionSourceFile: /src/redis-rs/redis/src/entra_id.rs
    functionUses: 0
    functionsReached:
    - start
    - MockTokenCredential::success
    - std::time::Duration::from_millis
    - RetryConfig::default
    - init_logger
    - drop
    - tokio::time::sleep
    - create_mock_entra_id_credentials_provider
    linkageType: ''
    returnType: void
    signature: async fn test_mock_provider_cleanup()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: splitn
      Src: /src/redis-rs/redis/src/parser.rs:28,1
    - Dst: next
      Src: /src/redis-rs/redis/src/parser.rs:29,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:29,1
    - Dst: errors::ServerError
      Src: /src/redis-rs/redis/src/parser.rs:45,1
    - Dst: Option::into
      Src: /src/redis-rs/redis/src/parser.rs:46,1
    - Dst: next
      Src: /src/redis-rs/redis/src/parser.rs:47,1
    - Dst: map
      Src: /src/redis-rs/redis/src/parser.rs:47,1
    - Dst: into
      Src: /src/redis-rs/redis/src/parser.rs:47,1
    - Dst: next
      Src: /src/redis-rs/redis/src/parser.rs:51,1
    - Dst: map
      Src: /src/redis-rs/redis/src/parser.rs:51,1
    - Dst: into
      Src: /src/redis-rs/redis/src/parser.rs:51,1
    - Dst: errors::ServerError
      Src: /src/redis-rs/redis/src/parser.rs:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - line
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 53
      start: 27
    functionDepth: 22
    functionLinenumber: 27
    functionLinenumberEnd: 53
    functionName: err_parser
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - into
    - errors::ServerError
    - map
    - Option::into
    - splitn
    - next
    - unwrap
    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:56,1
    - Dst: PushKind::Other
      Src: /src/redis-rs/redis/src/parser.rs:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - kind
    argTypes:
    - String
    constantsTouched: []
    func_position:
      end: 69
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 69
    functionName: get_push_kind
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - PushKind::as_str
    - PushKind::Other
    linkageType: ''
    returnType: PushKind
    signature: 'pub fn get_push_kind(kind: String) -> PushKind'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::unwrap_or
      Src: /src/redis-rs/redis/src/parser.rs:78,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 2
    argCount: 1
    argNames:
    - count
    argTypes:
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 325
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 325
    functionName: value
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 138
    functionsReached:
    - Self::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: 345
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 345
    functionName: to_redis_err
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - into
    - is_unexpected_end_of_input
    - to_string
    - ParsingError::from
    - translate_position
    - map_position
    - buffer
    - RedisError::from
    - map_range
    - io::Error::from
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/parser.rs:419,1
    - Dst: to_redis_err
      Src: /src/redis-rs/redis/src/parser.rs:419,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/parser.rs:420,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: 422
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 422
    functionName: aio_support::parse_redis_value_async
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - to_redis_err
    - Err
    - Ok
    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: Parser::new
      Src: /src/redis-rs/redis/src/parser.rs:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 437
    functionName: Parser::default
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::new
    linkageType: ''
    returnType: Self
    signature: fn default() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Decoder::new
      Src: /src/redis-rs/redis/src/parser.rs:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 453
      start: 449
    functionDepth: 24
    functionLinenumber: 449
    functionLinenumberEnd: 453
    functionName: Parser::new
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 1
    functionsReached:
    - Decoder::new
    linkageType: ''
    returnType: Parser
    signature: pub fn new() -> Parser
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Err
      Src: /src/redis-rs/redis/src/parser.rs:464,1
    - Dst: to_redis_err
      Src: /src/redis-rs/redis/src/parser.rs:464,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/parser.rs:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - reader
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 467
      start: 458
    functionDepth: 2
    functionLinenumber: 458
    functionLinenumberEnd: 467
    functionName: Parser::parse_value
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - to_redis_err
    - Err
    - Ok
    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:475,1
    - Dst: ServerError::parse_value
      Src: /src/redis-rs/redis/src/parser.rs:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 477
      start: 474
    functionDepth: 25
    functionLinenumber: 474
    functionLinenumberEnd: 477
    functionName: parse_redis_value
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 42
    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:489,1
    - Dst: bytes::BytesMut::from
      Src: /src/redis-rs/redis/src/parser.rs:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 498
      start: 487
    functionDepth: 25
    functionLinenumber: 487
    functionLinenumberEnd: 498
    functionName: tests::decode_eof_returns_none_at_eof
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - ValueCodec::default
    - bytes::BytesMut::from
    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:504,1
    - Dst: bytes::BytesMut::from
      Src: /src/redis-rs/redis/src/parser.rs:507,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/parser.rs:507,1
    - Dst: Self::decode_eof
      Src: /src/redis-rs/redis/src/parser.rs:508,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:508,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:508,1
    - Dst: bytes::BytesMut::from
      Src: /src/redis-rs/redis/src/parser.rs:522,1
    - Dst: '&str::as_slice'
      Src: /src/redis-rs/redis/src/parser.rs:522,1
    - Dst: Self::decode_eof
      Src: /src/redis-rs/redis/src/parser.rs:523,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:523,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 526
      start: 502
    functionDepth: 25
    functionLinenumber: 502
    functionLinenumberEnd: 526
    functionName: tests::decode_eof_returns_error_inside_array_and_can_parse_more_inputs
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - ValueCodec::default
    - bytes::BytesMut::from
    - unwrap
    - Self::decode_eof
    - '&str::as_slice'
    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:534,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:548,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 551
      start: 529
    functionDepth: 26
    functionLinenumber: 529
    functionLinenumberEnd: 551
    functionName: tests::parse_nested_error_and_handle_more_inputs
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - parse_redis_value
    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:555,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:555,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:557,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:557,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:575,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:575,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:577,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:577,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:579,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:579,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:582,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:582,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:584,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 586
      start: 554
    functionDepth: 26
    functionLinenumber: 554
    functionLinenumberEnd: 586
    functionName: tests::decode_resp3_double
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_double()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - 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: as_map_iter
      Src: /src/redis-rs/redis/src/parser.rs:591,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 600
      start: 589
    functionDepth: 26
    functionLinenumber: 589
    functionLinenumberEnd: 600
    functionName: tests::decode_resp3_map
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - as_map_iter
    - parse_redis_value
    - Option::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:604,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:604,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:606,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:606,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:608,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 612
      start: 603
    functionDepth: 26
    functionLinenumber: 603
    functionLinenumberEnd: 612
    functionName: tests::decode_resp3_boolean
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_boolean()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 624
      start: 615
    functionDepth: 26
    functionLinenumber: 615
    functionLinenumberEnd: 624
    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:628,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:628,1
    - Dst: Value::BigNumber
      Src: /src/redis-rs/redis/src/parser.rs:630,1
    - Dst: num_bigint::BigInt::parse_bytes
      Src: /src/redis-rs/redis/src/parser.rs:631,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/parser.rs:631,1
    - Dst: Value::BigNumber
      Src: /src/redis-rs/redis/src/parser.rs:635,1
    - Dst: '&str::to_vec'
      Src: /src/redis-rs/redis/src/parser.rs:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 637
      start: 627
    functionDepth: 26
    functionLinenumber: 627
    functionLinenumberEnd: 637
    functionName: tests::decode_resp3_big_number
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - Value::BigNumber
    - RedisResult::unwrap
    - unwrap
    - '&str::to_vec'
    - num_bigint::BigInt::parse_bytes
    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:641,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:641,1
    - Dst: as_sequence
      Src: /src/redis-rs/redis/src/parser.rs:642,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 648
      start: 640
    functionDepth: 26
    functionLinenumber: 640
    functionLinenumberEnd: 648
    functionName: tests::decode_resp3_set
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - as_sequence
    - parse_redis_value
    - Option::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:652,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/parser.rs:652,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 651
    functionDepth: 26
    functionLinenumber: 651
    functionLinenumberEnd: 664
    functionName: tests::decode_resp3_push
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - parse_redis_value
    linkageType: ''
    returnType: void
    signature: fn decode_resp3_push()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/parser.rs:669,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:669,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/parser.rs:670,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:670,1
    - Dst: repeat
      Src: /src/redis-rs/redis/src/parser.rs:672,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:672,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:673,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/parser.rs:673,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:674,1
    - Dst: repeat
      Src: /src/redis-rs/redis/src/parser.rs:680,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:680,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:681,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 687
      start: 667
    functionDepth: 20
    functionLinenumber: 667
    functionLinenumberEnd: 687
    functionName: tests::test_max_recursion_depth_set_and_array
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - to_vec
    - parse_redis_value
    - as_bytes
    - clone
    - repeat
    - extend
    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:694,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:694,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:695,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:696,1
    - Dst: repeat
      Src: /src/redis-rs/redis/src/parser.rs:702,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/parser.rs:702,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/parser.rs:703,1
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/parser.rs:704,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 708
      start: 690
    functionDepth: 20
    functionLinenumber: 690
    functionLinenumberEnd: 708
    functionName: tests::test_max_recursion_depth_map
    functionSourceFile: /src/redis-rs/redis/src/parser.rs
    functionUses: 0
    functionsReached:
    - to_vec
    - repeat
    - parse_redis_value
    - extend
    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: 30
      start: 7
    functionDepth: 29
    functionLinenumber: 7
    functionLinenumberEnd: 30
    functionName: impl_bb8_manage_connection
    functionSourceFile: /src/redis-rs/redis/src/bb8.rs
    functionUses: 0
    functionsReached:
    - into
    - Ok
    - as_str
    - query_async
    - Err
    - Cmd::ping
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 184
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 184
    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:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - redis_connection_info
    argTypes:
    - RedisConnectionInfo
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 192
    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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tcp_settings
    argTypes:
    - TcpSettings
    constantsTouched: []
    func_position:
      end: 200
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 200
    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:209,1
    - Dst: ClusterClientBuilder::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:217,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:217,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/sentinel.rs:217,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:227,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:229,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:229,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:230,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 3
    argNames:
    - ip
    - port
    - certs
    argTypes:
    - String
    - u16
    - '&Option<TlsCertificates>'
    constantsTouched: []
    func_position:
      end: 232
      start: 202
    functionDepth: 22
    functionLinenumber: 202
    functionLinenumberEnd: 232
    functionName: SentinelNodeConnectionInfo::create_connection_info
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Ok
    - map
    - clone
    - unwrap_or_default
    - crate::ConnectionAddr::Tcp
    - ClusterClientBuilder::as_ref
    - transpose
    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: 243
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 243
    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:247,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 16
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: sentinel_masters_cmd
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg
    - crate::cmd
    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:253,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:254,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - master_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 16
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: sentinel_replicas_cmd
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg
    - crate::cmd
    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:260,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:260,1
    - Dst: TlsFilePaths::as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:260,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:260,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:261,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:262,1
    - Dst: '&HashMap<String, String>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:263,1
    - Dst: is_some_and
      Src: /src/redis-rs/redis/src/sentinel.rs:263,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:264,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:264,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:264,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:266,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/sentinel.rs:266,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 2
    argNames:
    - master_info
    - service_name
    argTypes:
    - '&HashMap<String, String>'
    - '&str'
    constantsTouched: []
    func_position:
      end: 267
      start: 259
    functionDepth: 19
    functionLinenumber: 259
    functionLinenumberEnd: 267
    functionName: is_master_valid
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - '&HashMap<String, String>::contains_key'
    - map
    - contains
    - parse::<u16>
    - is_some_and
    - is_ok
    - TlsFilePaths::as_str
    - '&HashMap<String, String>::get'
    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:270,1
    - Dst: '&HashMap<String, String>::contains_key'
      Src: /src/redis-rs/redis/src/sentinel.rs:271,1
    - Dst: '&HashMap<String, String>::get'
      Src: /src/redis-rs/redis/src/sentinel.rs:272,1
    - Dst: is_some_and
      Src: /src/redis-rs/redis/src/sentinel.rs:272,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:274,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/sentinel.rs:274,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:275,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/sentinel.rs:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - replica_info
    argTypes:
    - '&HashMap<String, String>'
    constantsTouched: []
    func_position:
      end: 276
      start: 269
    functionDepth: 21
    functionLinenumber: 269
    functionLinenumberEnd: 276
    functionName: is_replica_valid
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - '&HashMap<String, String>::contains_key'
    - contains
    - is_some_and
    - is_ok
    - parse::<u16>
    - '&HashMap<String, String>::get'
    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:280,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/sentinel.rs:280,1
    - Dst: NonZeroUsize::into
      Src: /src/redis-rs/redis/src/sentinel.rs:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - max
    argTypes:
    - NonZeroUsize
    constantsTouched: []
    func_position:
      end: 281
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 281
    functionName: random_replica_index
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - random_range
    - NonZeroUsize::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:284,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:285,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/sentinel.rs:291,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:291,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:293,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:293,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - addresses
    argTypes:
    - '&[ConnectionInfo]'
    constantsTouched: []
    func_position:
      end: 295
      start: 283
    functionDepth: 29
    functionLinenumber: 283
    functionLinenumberEnd: 295
    functionName: build_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - RedisResult::iter
    - map
    - collect
    - fail
    - Client::open
    - ConnectionAddr::clone
    - RedisResult::is_empty
    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:301,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:302,1
    - Dst: Option<usize>::unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:308,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:311,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:312,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:313,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:313,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:314,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:315,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:322,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 2
    argNames:
    - addresses
    - start_index
    argTypes:
    - '&[ConnectionInfo]'
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 323
      start: 297
    functionDepth: 18
    functionLinenumber: 297
    functionLinenumberEnd: 323
    functionName: try_connect_to_first_replica
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - None::expect
    - Ok
    - clone
    - RedisResult::len
    - fail
    - Client::open
    - Err
    - Option<usize>::unwrap_or
    - RedisResult::is_empty
    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:329,1
    - Dst: std::iter::Chain::filter
      Src: /src/redis-rs/redis/src/sentinel.rs:329,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:329,1
    - Dst: redis::ConnectionInfo::remove
      Src: /src/redis-rs/redis/src/sentinel.rs:334,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:334,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/sentinel.rs:335,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:335,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: 338
      start: 325
    functionDepth: 22
    functionLinenumber: 325
    functionLinenumberEnd: 338
    functionName: valid_addrs
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::filter
    - map
    - unwrap
    - redis::ConnectionInfo::remove
    - parse::<u16>
    - Vec<HashMap<String, String>>::into_iter
    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:343,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:343,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:344,1
    - Dst: check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:347,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:349,1
    - Dst: check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:353,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:355,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:358,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:358,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:358,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 359
      start: 340
    functionDepth: 2
    functionLinenumber: 340
    functionLinenumberEnd: 359
    functionName: determine_master_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - Ok
    - evaluate_role_check_errors
    - redis::ConnectionInfo::clone
    - Client::open
    - check_info_replication
    - RedisResult::unwrap_err
    - check_role
    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:362,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:362,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:363,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:364,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:364,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 365
      start: 361
    functionDepth: 24
    functionLinenumber: 361
    functionLinenumberEnd: 365
    functionName: get_node_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - redis::ConnectionInfo::clone
    - Client::open
    - crate::cmd
    - redis::Cmd::query
    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:368,1
    - Dst: redis::Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 24
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: check_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - crate::cmd
    - redis::Cmd::query
    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:372,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:372,1
    - Dst: '&mut Cmd::query'
      Src: /src/redis-rs/redis/src/sentinel.rs:372,1
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/src/sentinel.rs:375,1
    - Dst: HashMap::get
      Src: /src/redis-rs/redis/src/sentinel.rs:376,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:377,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:377,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:378,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut Connection'
    constantsTouched: []
    func_position:
      end: 383
      start: 371
    functionDepth: 16
    functionLinenumber: 371
    functionLinenumberEnd: 383
    functionName: check_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - redis::Cmd::arg
    - Ok
    - parse_replication_info
    - clone
    - Err
    - crate::cmd
    - RedisError::from
    - '&mut Cmd::query'
    - 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:390,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:390,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:391,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:394,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - role_err
    - fallback_role_err
    argTypes:
    - RedisError
    - RedisError
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: evaluate_role_check_errors
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - RedisError::kind
    - Err
    - 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:419,1
    - Dst: is_master_valid
      Src: /src/redis-rs/redis/src/sentinel.rs:419,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:421,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:423,1
    - Dst: determine_master_from_role_or_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:424,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:425,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: 433
      start: 413
    functionDepth: 23
    functionLinenumber: 413
    functionLinenumberEnd: 433
    functionName: find_valid_master
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Ok
    - is_master_valid
    - SentinelNodeConnectionInfo::create_connection_info
    - determine_master_from_role_or_info_replication
    - valid_addrs
    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:439,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:439,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:440,1
    - Dst: async_check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:442,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:444,1
    - Dst: async_check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:448,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:450,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:453,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:453,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:453,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 454
      start: 436
    functionDepth: 27
    functionLinenumber: 436
    functionLinenumberEnd: 454
    functionName: async_determine_master_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Ok
    - evaluate_role_check_errors
    - redis::ConnectionInfo::clone
    - get_multiplexed_async_connection
    - unwrap_err
    - async_check_role
    - Client::open
    - async_check_info_replication
    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:460,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:460,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:461,1
    - Dst: async_check_role
      Src: /src/redis-rs/redis/src/sentinel.rs:463,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:465,1
    - Dst: async_check_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:469,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:471,1
    - Dst: evaluate_role_check_errors
      Src: /src/redis-rs/redis/src/sentinel.rs:474,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:474,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/sentinel.rs:474,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 475
      start: 457
    functionDepth: 27
    functionLinenumber: 457
    functionLinenumberEnd: 475
    functionName: async_determine_slave_from_role_or_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Ok
    - evaluate_role_check_errors
    - redis::ConnectionInfo::clone
    - get_multiplexed_async_connection
    - unwrap_err
    - async_check_role
    - Client::open
    - async_check_info_replication
    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:479,1
    - Dst: redis::Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:479,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 481
      start: 478
    functionDepth: 24
    functionLinenumber: 478
    functionLinenumberEnd: 481
    functionName: async_check_role
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - redis::Cmd::query_async
    - crate::cmd
    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:485,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/sentinel.rs:485,1
    - Dst: '&mut Cmd::query_async'
      Src: /src/redis-rs/redis/src/sentinel.rs:485,1
    - Dst: parse_replication_info
      Src: /src/redis-rs/redis/src/sentinel.rs:490,1
    - Dst: HashMap::get
      Src: /src/redis-rs/redis/src/sentinel.rs:491,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:492,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:492,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:493,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut MultiplexedConnection'
    constantsTouched: []
    func_position:
      end: 498
      start: 484
    functionDepth: 16
    functionLinenumber: 484
    functionLinenumberEnd: 498
    functionName: async_check_info_replication
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - redis::Cmd::arg
    - Ok
    - '&mut Cmd::query_async'
    - parse_replication_info
    - clone
    - Err
    - crate::cmd
    - RedisError::from
    - 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:508,1
    - Dst: is_master_valid
      Src: /src/redis-rs/redis/src/sentinel.rs:508,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:510,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:512,1
    - Dst: async_determine_master_from_role_or_info_replication
      Src: /src/redis-rs/redis/src/sentinel.rs:513,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:514,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: 522
      start: 502
    functionDepth: 23
    functionLinenumber: 502
    functionLinenumberEnd: 522
    functionName: async_find_valid_master
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Ok
    - async_determine_master_from_role_or_info_replication
    - is_master_valid
    - SentinelNodeConnectionInfo::create_connection_info
    - valid_addrs
    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:547,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/sentinel.rs:547,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:548,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:547,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:551,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:551,1
    - Dst: std::iter::Chain::filter
      Src: /src/redis-rs/redis/src/sentinel.rs:551,1
    - Dst: get_node_role
      Src: /src/redis-rs/redis/src/sentinel.rs:554,1
    - Dst: RedisResult::is_ok_and
      Src: /src/redis-rs/redis/src/sentinel.rs:554,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:551,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: 557
      start: 542
    functionDepth: 23
    functionLinenumber: 542
    functionLinenumberEnd: 557
    functionName: get_valid_replicas_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - "map(|(ip, port)| node_connection_info.create_connection_info(ip, port, certs))\n\
      \        .collect::<RedisResult<Vec<ConnectionInfo>>>"
    - RedisResult::is_ok_and
    - impl Iterator::map
    - std::iter::Chain::filter
    - Ok
    - collect
    - get_node_role
    - SentinelNodeConnectionInfo::create_connection_info
    - valid_addrs
    - RedisResult::into_iter
    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:594,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:597,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - ConnectionInfo
    constantsTouched: []
    func_position:
      end: 604
      start: 593
    functionDepth: 28
    functionLinenumber: 593
    functionLinenumberEnd: 604
    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:
    - 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:606,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/sentinel.rs:606,1
    - Dst: SentinelNodeConnectionInfo::create_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:607,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:606,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:610,1
    - Dst: futures_util::stream::iter
      Src: /src/redis-rs/redis/src/sentinel.rs:610,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/sentinel.rs:610,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:610,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - replicas
    - node_connection_info
    - certs
    argTypes:
    - Vec<HashMap<String, String>>
    - '&SentinelNodeConnectionInfo'
    - '&Option<TlsCertificates>'
    constantsTouched: []
    func_position:
      end: 614
      start: 588
    functionDepth: 23
    functionLinenumber: 588
    functionLinenumberEnd: 614
    functionName: async_get_valid_replicas_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - impl Iterator::map
    - Ok
    - futures_util::stream::iter
    - collect
    - "map(|(ip, port)| node_connection_info.create_connection_info(ip, port, certs))\n\
      \        .collect::<RedisResult<Vec<_>>>"
    - SentinelNodeConnectionInfo::create_connection_info
    - filter_map
    - valid_addrs
    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:621,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:621,1
    - Dst: get_multiplexed_async_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:622,1
    - Dst: bool::replace
      Src: /src/redis-rs/redis/src/sentinel.rs:623,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:624,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - connection
    - connection_info
    argTypes:
    - '&mut Option<AsyncConnection>'
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 27
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: async_reconnect
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Ok
    - redis::ConnectionInfo::clone
    - get_multiplexed_async_connection
    - Client::open
    - bool::replace
    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:633,1
    - Dst: async_reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:634,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:637,1
    - Dst: '&mut Option<AsyncConnection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:637,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:637,1
    - Dst: is_unrecoverable_error
      Src: /src/redis-rs/redis/src/sentinel.rs:640,1
    - Dst: is_io_error
      Src: /src/redis-rs/redis/src/sentinel.rs:640,1
    - Dst: async_reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:641,1
    - Dst: Cmd::query_async
      Src: /src/redis-rs/redis/src/sentinel.rs:642,1
    - Dst: '&mut Option<AsyncConnection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:642,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:642,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:644,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: 649
      start: 628
    functionDepth: 28
    functionLinenumber: 628
    functionLinenumberEnd: 649
    functionName: async_try_single_sentinel
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - is_unrecoverable_error
    - '&mut Option<AsyncConnection>::as_mut'
    - is_io_error
    - Err
    - unwrap
    - Cmd::query_async
    - async_reconnect
    - '&mut Option<AsyncConnection>::is_none'
    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:655,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:655,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:656,1
    - Dst: bool::replace
      Src: /src/redis-rs/redis/src/sentinel.rs:657,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - connection
    - connection_info
    argTypes:
    - '&mut Option<Connection>'
    - '&ConnectionInfo'
    constantsTouched: []
    func_position:
      end: 659
      start: 651
    functionDepth: 2
    functionLinenumber: 651
    functionLinenumberEnd: 659
    functionName: reconnect
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - get_connection
    - Ok
    - redis::ConnectionInfo::clone
    - Client::open
    - bool::replace
    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:666,1
    - Dst: reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:667,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:670,1
    - Dst: '&mut Option<Connection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:670,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:670,1
    - Dst: is_unrecoverable_error
      Src: /src/redis-rs/redis/src/sentinel.rs:673,1
    - Dst: is_io_error
      Src: /src/redis-rs/redis/src/sentinel.rs:673,1
    - Dst: reconnect
      Src: /src/redis-rs/redis/src/sentinel.rs:674,1
    - Dst: Cmd::query
      Src: /src/redis-rs/redis/src/sentinel.rs:675,1
    - Dst: '&mut Option<Connection>::as_mut'
      Src: /src/redis-rs/redis/src/sentinel.rs:675,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:675,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:677,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: 682
      start: 661
    functionDepth: 24
    functionLinenumber: 661
    functionLinenumberEnd: 682
    functionName: try_single_sentinel
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - is_unrecoverable_error
    - reconnect
    - '&mut Option<Connection>::as_mut'
    - Cmd::query
    - is_io_error
    - Err
    - unwrap
    - '&mut Option<Connection>::is_none'
    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:697,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - Vec<T>
    constantsTouched: []
    func_position:
      end: 698
      start: 696
    functionDepth: 1
    functionLinenumber: 696
    functionLinenumberEnd: 698
    functionName: Sentinel::build
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Self::build_inner
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn build<T: IntoConnectionInfo>(params: Vec<T>) -> RedisResult<Sentinel>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec<T>::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:704,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/sentinel.rs:705,1
    - Dst: Vec<T>::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:711,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/sentinel.rs:711,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/sentinel.rs:713,1
    - Dst: "into_iter()\n            .map(|p| p.into_connection_info())\n        \
        \    .collect::<RedisResult<Vec<ConnectionInfo>>>"
      Src: /src/redis-rs/redis/src/sentinel.rs:711,1
    - Dst: '&Vec::iter'
      Src: /src/redis-rs/redis/src/sentinel.rs:716,1
    - Dst: any
      Src: /src/redis-rs/redis/src/sentinel.rs:716,1
    - Dst: redis::ConnectionInfo::redis_settings
      Src: /src/redis-rs/redis/src/sentinel.rs:718,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:726,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:726,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:731,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:731,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:733,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:737,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:737,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:737,1
    - Dst: resize_with
      Src: /src/redis-rs/redis/src/sentinel.rs:745,1
    - Dst: '&Vec::len'
      Src: /src/redis-rs/redis/src/sentinel.rs:745,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:747,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:751,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:751,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:751,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:757,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:760,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:760,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:760,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:767,1
    - Dst: random_replica_index
      Src: /src/redis-rs/redis/src/sentinel.rs:770,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:770,1
    - Dst: RedisServer::unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:770,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 69
    argCount: 2
    argNames:
    - params
    - certs
    argTypes:
    - Vec<T>
    - Option<TlsCertificates>
    constantsTouched: []
    func_position:
      end: 773
      start: 700
    functionDepth: 29
    functionLinenumber: 700
    functionLinenumberEnd: 773
    functionName: Sentinel::build_inner
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Vec<T>::into_iter
    - resize_with
    - RedisServer::unwrap
    - '&Vec::iter'
    - into_connection_info
    - Ok
    - random_replica_index
    - Vec<T>::is_empty
    - any
    - fail
    - '&Vec::len'
    - std::iter::Chain::map
    - "into_iter()\n            .map(|p| p.into_connection_info())\n            .collect::<RedisResult<Vec<ConnectionInfo>>>"
    - redis::ConnectionInfo::redis_settings
    - NonZeroUsize::new
    linkageType: ''
    returnType: RedisResult
    signature: 'fn build_inner<T: IntoConnectionInfo>(params: Vec<T>,#[cfg(feature
      = "tls-rustls")] certs: Option<TlsCertificates>,) -> RedisResult<Sentinel>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/sentinel.rs:787,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/sentinel.rs:787,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:790,1
    - Dst: try_single_sentinel
      Src: /src/redis-rs/redis/src/sentinel.rs:792,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:792,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:794,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:797,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:803,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - Cmd
    constantsTouched: []
    func_position:
      end: 804
      start: 785
    functionDepth: 29
    functionLinenumber: 785
    functionLinenumberEnd: 804
    functionName: Sentinel::try_all_sentinels
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - try_single_sentinel
    - Some
    - iter
    - iter_mut
    - None::expect
    - Ok
    - zip
    - Err
    - Cmd::clone
    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:809,1
    - Dst: sentinel_masters_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 810
      start: 808
    functionDepth: 30
    functionLinenumber: 808
    functionLinenumberEnd: 810
    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:816,1
    - Dst: sentinel_replicas_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 817
      start: 812
    functionDepth: 30
    functionLinenumber: 812
    functionLinenumberEnd: 817
    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:835,1
    - Dst: find_valid_master
      Src: /src/redis-rs/redis/src/sentinel.rs:836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 837
      start: 830
    functionDepth: 31
    functionLinenumber: 830
    functionLinenumberEnd: 837
    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:855,1
    - Dst: get_valid_replicas_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:856,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 857
      start: 850
    functionDepth: 31
    functionLinenumber: 850
    functionLinenumberEnd: 857
    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:869,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:869,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 871
      start: 863
    functionDepth: 32
    functionLinenumber: 863
    functionLinenumberEnd: 871
    functionName: Sentinel::master_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 9
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Client::open
    - 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:882,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:883,1
    - Dst: build_replica_clients
      Src: /src/redis-rs/redis/src/sentinel.rs:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 885
      start: 877
    functionDepth: 32
    functionLinenumber: 877
    functionLinenumberEnd: 885
    functionName: Sentinel::get_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 4
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::find_valid_replica_addresses
    - 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:893,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:894,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:895,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:895,1
    - Dst: RedisServer::map
      Src: /src/redis-rs/redis/src/sentinel.rs:895,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:896,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 897
      start: 888
    functionDepth: 32
    functionLinenumber: 888
    functionLinenumberEnd: 897
    functionName: Sentinel::replica_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - RedisResult::len
    - RedisServer::map
    - Sentinel::find_valid_replica_addresses
    - NonZeroUsize::new
    - try_connect_to_first_replica
    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:908,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:909,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:910,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:911,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:913,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 914
      start: 903
    functionDepth: 32
    functionLinenumber: 903
    functionLinenumberEnd: 914
    functionName: Sentinel::replica_rotate_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 3
    functionsReached:
    - Some
    - SentinelNodeConnectionInfo::unwrap_or_default
    - RedisResult::len
    - Sentinel::find_valid_replica_addresses
    - RedisResult::is_empty
    - try_connect_to_first_replica
    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:923,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/sentinel.rs:923,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:926,1
    - Dst: async_try_single_sentinel
      Src: /src/redis-rs/redis/src/sentinel.rs:928,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:928,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:930,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:933,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:939,1
    - Dst: None::expect
      Src: /src/redis-rs/redis/src/sentinel.rs:939,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - Cmd
    constantsTouched: []
    func_position:
      end: 940
      start: 921
    functionDepth: 29
    functionLinenumber: 921
    functionLinenumberEnd: 940
    functionName: Sentinel::async_try_all_sentinels
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - iter
    - iter_mut
    - None::expect
    - Ok
    - zip
    - Err
    - Cmd::clone
    - async_try_single_sentinel
    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:943,1
    - Dst: sentinel_masters_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:943,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 944
      start: 942
    functionDepth: 30
    functionLinenumber: 942
    functionLinenumberEnd: 944
    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:950,1
    - Dst: sentinel_replicas_cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:950,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - service_name
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 952
      start: 946
    functionDepth: 30
    functionLinenumber: 946
    functionLinenumberEnd: 952
    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:970,1
    - Dst: async_find_valid_master
      Src: /src/redis-rs/redis/src/sentinel.rs:971,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 972
      start: 965
    functionDepth: 31
    functionLinenumber: 965
    functionLinenumberEnd: 972
    functionName: Sentinel::async_find_master_address
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Sentinel::async_get_sentinel_masters
    - async_find_valid_master
    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:990,1
    - Dst: async_get_valid_replicas_addresses
      Src: /src/redis-rs/redis/src/sentinel.rs:991,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - '&SentinelNodeConnectionInfo'
    constantsTouched: []
    func_position:
      end: 992
      start: 985
    functionDepth: 31
    functionLinenumber: 985
    functionLinenumberEnd: 992
    functionName: Sentinel::async_find_valid_replica_addresses
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_get_valid_replicas_addresses
    - Sentinel::async_get_sentinel_replicas
    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:1003,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1004,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1006,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1007
      start: 998
    functionDepth: 32
    functionLinenumber: 998
    functionLinenumberEnd: 1007
    functionName: Sentinel::async_master_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 8
    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:1018,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1021,1
    - Dst: build_replica_clients
      Src: /src/redis-rs/redis/src/sentinel.rs:1024,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1025
      start: 1013
    functionDepth: 32
    functionLinenumber: 1013
    functionLinenumberEnd: 1025
    functionName: Sentinel::async_get_replica_clients
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 4
    functionsReached:
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::async_find_valid_replica_addresses
    - build_replica_clients
    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:1034,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1037,1
    - Dst: NonZeroUsize::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1040,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:1040,1
    - Dst: RedisServer::map
      Src: /src/redis-rs/redis/src/sentinel.rs:1040,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:1041,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1042
      start: 1029
    functionDepth: 32
    functionLinenumber: 1029
    functionLinenumberEnd: 1042
    functionName: Sentinel::async_replica_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - Sentinel::async_find_valid_replica_addresses
    - SentinelNodeConnectionInfo::unwrap_or_default
    - RedisResult::len
    - RedisServer::map
    - NonZeroUsize::new
    - try_connect_to_first_replica
    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:1053,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1056,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/sentinel.rs:1059,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/sentinel.rs:1060,1
    - Dst: try_connect_to_first_replica
      Src: /src/redis-rs/redis/src/sentinel.rs:1062,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1062,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - service_name
    - node_connection_info
    argTypes:
    - '&str'
    - Option<&SentinelNodeConnectionInfo>
    constantsTouched: []
    func_position:
      end: 1063
      start: 1048
    functionDepth: 32
    functionLinenumber: 1048
    functionLinenumberEnd: 1063
    functionName: Sentinel::async_replica_rotate_for
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 2
    functionsReached:
    - Some
    - Sentinel::async_find_valid_replica_addresses
    - SentinelNodeConnectionInfo::unwrap_or_default
    - RedisResult::len
    - RedisResult::is_empty
    - try_connect_to_first_replica
    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: LockedSentinelClient
      Src: /src/redis-rs/redis/src/sentinel.rs:1086,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - client
    argTypes:
    - SentinelClient
    constantsTouched: []
    func_position:
      end: 1087
      start: 1085
    functionDepth: 24
    functionLinenumber: 1085
    functionLinenumberEnd: 1087
    functionName: LockedSentinelClient::new
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - LockedSentinelClient
    - Mutex::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:1092,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/sentinel.rs:1092,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:1092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1091
    functionDepth: 2
    functionLinenumber: 1091
    functionLinenumberEnd: 1093
    functionName: LockedSentinelClient::get_connection
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - lock
    - get_connection
    - unwrap
    linkageType: ''
    returnType: RedisResult
    signature: pub fn get_connection(&self) -> RedisResult<Connection>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1133,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: 1140
      start: 1127
    functionDepth: 30
    functionLinenumber: 1127
    functionLinenumberEnd: 1140
    functionName: SentinelClient::build
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 12
    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:1149,1
    - Dst: Sentinel::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1151,1
    - Dst: Sentinel::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1153,1
    - Dst: impl AsRef<str>::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1154,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1154,1
    - Dst: SentinelNodeConnectionInfo::unwrap_or_default
      Src: /src/redis-rs/redis/src/sentinel.rs:1155,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: 1158
      start: 1142
    functionDepth: 30
    functionLinenumber: 1142
    functionLinenumberEnd: 1158
    functionName: SentinelClient::build_inner
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - into
    - Ok
    - SentinelNodeConnectionInfo::unwrap_or_default
    - Sentinel::build_inner
    - impl AsRef<str>::as_ref
    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:1163,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1165,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1165,1
    - Dst: replica_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1166,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1168,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1161
    functionDepth: 33
    functionLinenumber: 1161
    functionLinenumberEnd: 1170
    functionName: SentinelClient::get_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - master_for
    - as_str
    - replica_for
    - Some
    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:1189,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1189,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1195,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1195,1
    - Dst: try_single_sentinel::<Role>
      Src: /src/redis-rs/redis/src/sentinel.rs:1196,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:1197,1
    - Dst: first_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:1199,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:1199,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1205,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1188
    functionDepth: 2
    functionLinenumber: 1188
    functionLinenumberEnd: 1219
    functionName: SentinelClient::get_sentinel_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Ok
    - unwrap_or
    - cmd::cmd
    - redis::ConnectionInfo::clone
    - Client::open
    - Err
    - RedisError::from
    - try_single_sentinel::<Role>
    - first_mut
    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:1225,1
    - Dst: get_connection
      Src: /src/redis-rs/redis/src/sentinel.rs:1226,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1224
    functionDepth: 34
    functionLinenumber: 1224
    functionLinenumberEnd: 1227
    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:1239,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1240,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1240,1
    - Dst: async_replica_for
      Src: /src/redis-rs/redis/src/sentinel.rs:1244,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/sentinel.rs:1245,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1245,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1236
    functionDepth: 33
    functionLinenumber: 1236
    functionLinenumberEnd: 1249
    functionName: SentinelClient::async_get_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - async_master_for
    - as_str
    - async_replica_for
    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:1268,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1268,1
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/sentinel.rs:1274,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1274,1
    - Dst: async_try_single_sentinel::<Role>
      Src: /src/redis-rs/redis/src/sentinel.rs:1275,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/sentinel.rs:1276,1
    - Dst: first_mut
      Src: /src/redis-rs/redis/src/sentinel.rs:1278,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/sentinel.rs:1278,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/sentinel.rs:1286,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1293,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1267
    functionDepth: 2
    functionLinenumber: 1267
    functionLinenumberEnd: 1300
    functionName: SentinelClient::async_get_sentinel_client
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - async_try_single_sentinel::<Role>
    - Ok
    - unwrap_or
    - cmd::cmd
    - redis::ConnectionInfo::clone
    - Client::open
    - Err
    - RedisError::from
    - first_mut
    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:1306,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/sentinel.rs:1306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1305
    functionDepth: 26
    functionLinenumber: 1305
    functionLinenumberEnd: 1308
    functionName: SentinelClient::get_async_connection
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::new
    - SentinelClient::get_async_connection_with_config
    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:1317,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/sentinel.rs:1317,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - config
    argTypes:
    - '&AsyncConnectionConfig'
    constantsTouched: []
    func_position:
      end: 1321
      start: 1313
    functionDepth: 34
    functionLinenumber: 1313
    functionLinenumberEnd: 1321
    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:1357,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:1358,1
    - Dst: into_iter().collect::<Vec<_>>
      Src: /src/redis-rs/redis/src/sentinel.rs:1358,1
    - Dst: impl AsRef<str>::as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1359,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1359,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1367,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1377,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: 1382
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1382
    functionName: SentinelClientBuilder::new
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 1
    functionsReached:
    - into
    - Ok
    - into_iter().collect::<Vec<_>>
    - impl AsRef<str>::as_ref
    - TcpSettings::default
    - 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<SentinelClientBuilder>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1386,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1393,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1397,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1406,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1407,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1413,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1414,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1414,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1420,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1421,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1421,1
    - Dst: tls::retrieve_tls_certificates
      Src: /src/redis-rs/redis/src/sentinel.rs:1448,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1449,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1453,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1454,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1454,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/sentinel.rs:1460,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/sentinel.rs:1461,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/sentinel.rs:1461,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/sentinel.rs:1470,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1476,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1477,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/sentinel.rs:1477,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/sentinel.rs:1480,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1481,1
    - Dst: '&''static str::clone'
      Src: /src/redis-rs/redis/src/sentinel.rs:1481,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/sentinel.rs:1488,1
    - Dst: map
      Src: /src/redis-rs/redis/src/sentinel.rs:1488,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1493,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/sentinel.rs:1494,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/sentinel.rs:1488,1
    - Dst: SentinelClient::build_inner
      Src: /src/redis-rs/redis/src/sentinel.rs:1498,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1501,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 171
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1385
    functionDepth: 25
    functionLinenumber: 1385
    functionLinenumberEnd: 1506
    functionName: SentinelClientBuilder::build
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - SentinelClient::build_inner
    - into_iter
    - map
    - clone
    - collect
    - Err
    - RedisError::from
    - tls::retrieve_tls_certificates
    - as_ref
    - '&''static str::clone'
    - Self::clone
    - is_some
    - RedisConnectionInfo::default
    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:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 1512
      start: 1509
    functionDepth: 0
    functionLinenumber: 1509
    functionLinenumberEnd: 1512
    functionName: SentinelClientBuilder::set_client_to_redis_tls_mode
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_redis_tls_mode(mut self, tls_mode: TlsMode) ->
      SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - db
    argTypes:
    - i64
    constantsTouched: []
    func_position:
      end: 1518
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1518
    functionName: SentinelClientBuilder::set_client_to_redis_db
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_redis_db(mut self, db: i64) -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1525,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1525,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1527
      start: 1521
    functionDepth: 0
    functionLinenumber: 1521
    functionLinenumberEnd: 1527
    functionName: SentinelClientBuilder::set_client_to_redis_username
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    - '&''static str::as_ref'
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_redis_username(mut self,username: impl AsRef<str>,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1534,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1534,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1536
      start: 1530
    functionDepth: 0
    functionLinenumber: 1530
    functionLinenumberEnd: 1536
    functionName: SentinelClientBuilder::set_client_to_redis_password
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    - '&''static str::as_ref'
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_redis_password(mut self,password: impl AsRef<str>,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 1545
      start: 1539
    functionDepth: 0
    functionLinenumber: 1539
    functionLinenumberEnd: 1545
    functionName: SentinelClientBuilder::set_client_to_redis_protocol
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_redis_protocol(mut self,protocol: ProtocolVersion,)
      -> SentinelClientBuilder'
  - 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:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 1555
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1555
    functionName: SentinelClientBuilder::set_client_to_redis_certificates
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_redis_certificates(mut self,certificates: TlsCertificates,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tcp_settings
    argTypes:
    - TcpSettings
    constantsTouched: []
    func_position:
      end: 1564
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1564
    functionName: SentinelClientBuilder::set_client_to_redis_tcp_settings
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_redis_tcp_settings(mut self,tcp_settings: TcpSettings,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls_mode
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 1570
      start: 1567
    functionDepth: 0
    functionLinenumber: 1567
    functionLinenumberEnd: 1570
    functionName: SentinelClientBuilder::set_client_to_sentinel_tls_mode
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_sentinel_tls_mode(mut self, tls_mode: TlsMode)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1577,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1577,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1579
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1579
    functionName: SentinelClientBuilder::set_client_to_sentinel_username
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    - '&''static str::as_ref'
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_sentinel_username(mut self,username: impl AsRef<str>,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1586,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/sentinel.rs:1586,1
    - Dst: into
      Src: /src/redis-rs/redis/src/sentinel.rs:1586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 1588
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1588
    functionName: SentinelClientBuilder::set_client_to_sentinel_password
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    - '&''static str::as_ref'
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_sentinel_password(mut self,password: impl AsRef<str>,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tcp_settings
    argTypes:
    - TcpSettings
    constantsTouched: []
    func_position:
      end: 1597
      start: 1591
    functionDepth: 0
    functionLinenumber: 1591
    functionLinenumberEnd: 1597
    functionName: SentinelClientBuilder::set_client_to_sentinel_tcp_settings
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_sentinel_tcp_settings(mut self,tcp_settings:
      TcpSettings,) -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1604,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 1606
      start: 1600
    functionDepth: 0
    functionLinenumber: 1600
    functionLinenumberEnd: 1606
    functionName: SentinelClientBuilder::set_client_to_sentinel_protocol
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_sentinel_protocol(mut self,protocol: ProtocolVersion,)
      -> SentinelClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/sentinel.rs:1614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 1616
      start: 1610
    functionDepth: 0
    functionLinenumber: 1610
    functionLinenumberEnd: 1616
    functionName: SentinelClientBuilder::set_client_to_sentinel_certificates
    functionSourceFile: /src/redis-rs/redis/src/sentinel.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: SentinelClientBuilder
    signature: 'pub fn set_client_to_sentinel_certificates(mut self,certificates:
      TlsCertificates,) -> SentinelClientBuilder'
  - 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: 837
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 837
    functionName: check_resp3
    functionSourceFile: /src/redis-rs/redis/src/lib.rs
    functionUses: 0
    functionsReached:
    - Err
    - RedisError::from
    - supports_resp3
    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::<ConnectionManager>
    - assert_send::<Monitor>
    - assert_send::<PubSub>
    - assert_send::<cluster_async::ClusterConnection>
    - 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: 9
    functionsReached:
    - Some
    - Duration::from_millis
    - Duration::from_secs
    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:
    - Some
    - SystemTime::duration_since
    - as_secs_f64
    - Duration::from_secs_f64
    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:128,1
    - Dst: strip_prefix
      Src: /src/redis-rs/redis/src/auth_management.rs:130,1
    - Dst: find
      Src: /src/redis-rs/redis/src/auth_management.rs:131,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/auth_management.rs:132,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/auth_management.rs:132,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: 60
    argCount: 1
    argNames:
    - jwt
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 139
      start: 112
    functionDepth: 29
    functionLinenumber: 112
    functionLinenumberEnd: 139
    functionName: credentials_management_utils::extract_oid_from_jwt
    functionSourceFile: /src/redis-rs/redis/src/auth_management.rs
    functionUses: 1
    functionsReached:
    - find
    - decode
    - to_string
    - Ok
    - map_err
    - strip_prefix
    - collect
    - '&str::to_string'
    - Self::len
    - Err
    - String::from_utf8
    - trim_start
    - Result::split
    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:
    - credentials_management_utils::calculate_refresh_threshold
    - Duration::from_secs
    - TokenRefreshConfig::default
    - SystemTime::now
    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: 30
    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: 30
    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: 30
    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: 27
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - into
    - crate::io::tcp::stream_with_settings
    - TcpStream::connect
    - into_inner
    - unwrap
    - Arc::into_inner
    - try_into
    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:
    - scheme
    - url::Url::parse
    - 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: 165
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 165
    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: 189
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 189
    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:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - insecure
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 214
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 214
    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:221,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 228
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 228
    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: 239
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 239
    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: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    functionName: ConnectionInfo::addr
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 5
    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: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    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: 274
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 274
    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: 280
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 280
    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: 286
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 286
    functionName: ConnectionInfo::set_redis_settings
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    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:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    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:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    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: 322
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 322
    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: 327
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 327
    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:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    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:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 337
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 337
    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: 342
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 342
    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:346,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/connection.rs:346,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: RedisConnectionInfo::set_username
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Some
    - into
    - '&''static str::as_ref'
    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:352,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/connection.rs:352,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: RedisConnectionInfo::set_password
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Some
    - into
    - '&''static str::as_ref'
    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: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    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: 369
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 369
    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:375,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:375,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:375,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:376,1
    - Dst: Option::as_ref
      Src: /src/redis-rs/redis/src/connection.rs:376,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:376,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: 379
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 379
    functionName: RedisConnectionInfo::set_lib_name
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Some
    - into
    - as_ref
    - 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: 385
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 385
    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:399,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: field
      Src: /src/redis-rs/redis/src/connection.rs:403,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/connection.rs:403,1
    - Dst: map
      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: field
      Src: /src/redis-rs/redis/src/connection.rs:407,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/connection.rs:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 410
      start: 389
    functionDepth: 22
    functionLinenumber: 389
    functionLinenumberEnd: 410
    functionName: RedisConnectionInfo::fmt
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - map
    - debug_struct
    - '&''static str::as_ref'
    - finish
    - field
    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:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 418
    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:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 432
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 432
    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:437,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/connection.rs:439,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/connection.rs:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 442
      start: 436
    functionDepth: 25
    functionLinenumber: 436
    functionLinenumberEnd: 442
    functionName: ConnectionAddr::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Default::default
    - Ok
    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:456,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:457,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 460
      start: 455
    functionDepth: 1
    functionLinenumber: 455
    functionLinenumberEnd: 460
    functionName: '&str::into_connection_info'
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - parse_redis_url
    - fail
    - into_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:468,1
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:469,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:469,1
    - Dst: RedisConnectionInfo::default
      Src: /src/redis-rs/redis/src/connection.rs:470,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/connection.rs:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 473
      start: 467
    functionDepth: 25
    functionLinenumber: 467
    functionLinenumberEnd: 473
    functionName: (T, u16)::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - ConnectionAddr::Tcp
    - into
    - Ok
    - RedisConnectionInfo::default
    - TcpSettings::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:487,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:488,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:489,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 491
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 491
    functionName: String::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - parse_redis_url
    - fail
    - into_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:495,1
    - Dst: get
      Src: /src/redis-rs/redis/src/connection.rs:495,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:502,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - query
    argTypes:
    - '&HashMap<Cow<str>, Cow<str>>'
    constantsTouched: []
    func_position:
      end: 511
      start: 494
    functionDepth: 19
    functionLinenumber: 494
    functionLinenumberEnd: 511
    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: 516
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 516
    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:519,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: to_string
      Src: /src/redis-rs/redis/src/connection.rs:535,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/connection.rs:538,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:539,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:539,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:546,1
    - Dst: String::port
      Src: /src/redis-rs/redis/src/connection.rs:548,1
    - Dst: TcpListener::unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:548,1
    - Dst: String::scheme
      Src: /src/redis-rs/redis/src/connection.rs:549,1
    - Dst: String::scheme
      Src: /src/redis-rs/redis/src/connection.rs:549,1
    - Dst: String::fragment
      Src: /src/redis-rs/redis/src/connection.rs:552,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:559,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:573,1
    - Dst: ConnectionAddr::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:578,1
    - Dst: String::query_pairs
      Src: /src/redis-rs/redis/src/connection.rs:580,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/connection.rs:580,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:581,1
    - Dst: String::path
      Src: /src/redis-rs/redis/src/connection.rs:584,1
    - Dst: trim_matches
      Src: /src/redis-rs/redis/src/connection.rs:584,1
    - Dst: parse::<i64>
      Src: /src/redis-rs/redis/src/connection.rs:586,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:586,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:587,1
    - Dst: String::username
      Src: /src/redis-rs/redis/src/connection.rs:590,1
    - Dst: '&''static str::is_empty'
      Src: /src/redis-rs/redis/src/connection.rs:590,1
    - Dst: percent_encoding::percent_decode
      Src: /src/redis-rs/redis/src/connection.rs:593,1
    - Dst: String::username
      Src: /src/redis-rs/redis/src/connection.rs:593,1
    - Dst: '&''static str::as_bytes'
      Src: /src/redis-rs/redis/src/connection.rs:593,1
    - Dst: decode_utf8
      Src: /src/redis-rs/redis/src/connection.rs:593,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:594,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:594,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:595,1
    - Dst: String::password
      Src: /src/redis-rs/redis/src/connection.rs:601,1
    - Dst: percent_encoding::percent_decode
      Src: /src/redis-rs/redis/src/connection.rs:602,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/connection.rs:602,1
    - Dst: decode_utf8
      Src: /src/redis-rs/redis/src/connection.rs:602,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:603,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:603,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:604,1
    - Dst: parse_protocol
      Src: /src/redis-rs/redis/src/connection.rs:611,1
    - Dst: TcpSettings::default
      Src: /src/redis-rs/redis/src/connection.rs:616,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 94
    argCount: 1
    argNames:
    - url
    argTypes:
    - url::Url
    constantsTouched: []
    func_position:
      end: 618
      start: 518
    functionDepth: 25
    functionLinenumber: 518
    functionLinenumberEnd: 618
    functionName: url_to_tcp_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - is_wildcard_address
    - String::username
    - '&''static str::as_bytes'
    - String::host
    - String::scheme
    - Some
    - parse_protocol
    - as_bytes
    - Err
    - TcpSettings::default
    - ConnectionAddr::Tcp
    - percent_encoding::percent_decode
    - map_err
    - '&''static str::is_empty'
    - String::query_pairs
    - RedisError::from
    - String::password
    - decode_utf8
    - String::port
    - into
    - trim_matches
    - to_string
    - Ok
    - collect
    - parse::<i64>
    - fail
    - String::fragment
    - TcpListener::unwrap_or
    - String::path
    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:648,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames: []
    argTypes:
    - url::Url
    constantsTouched: []
    func_position:
      end: 652
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 652
    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:656,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:657,1
    - Dst: url_to_unix_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:658,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 664
      start: 655
    functionDepth: 26
    functionLinenumber: 655
    functionLinenumberEnd: 664
    functionName: url::Url::into_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - url::Url::scheme
    - url_to_tcp_connection_info
    - fail
    - 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:715,1
    - Dst: rustls::client::danger::ServerCertVerified::assertion
      Src: /src/redis-rs/redis/src/connection.rs:715,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: 716
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 716
    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:724,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:724,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: 725
      start: 718
    functionDepth: 0
    functionLinenumber: 718
    functionLinenumberEnd: 725
    functionName: NoCertificateVerification::verify_tls12_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - rustls::client::danger::HandshakeSignatureValid::assertion
    - Ok
    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:733,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:733,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: 734
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 734
    functionName: NoCertificateVerification::verify_tls13_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - rustls::client::danger::HandshakeSignatureValid::assertion
    - Ok
    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:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 738
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 738
    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:744,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/connection.rs:744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    functionName: NoCertificateVerification::fmt
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - finish
    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: 764
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 764
    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:776,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:776,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:779,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:780,1
    - Dst: rustls::client::danger::ServerCertVerified::assertion
      Src: /src/redis-rs/redis/src/connection.rs:780,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:782,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: 785
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 785
    functionName: AcceptInvalidHostnamesCertVerifier::verify_server_cert
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Ok
    - or_else
    - rustls::client::danger::ServerCertVerified::assertion
    - verify_server_cert
    - Err
    - is_hostname_error
    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:793,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:793,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:796,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:797,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:797,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:799,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: 802
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 802
    functionName: AcceptInvalidHostnamesCertVerifier::verify_tls12_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Ok
    - or_else
    - verify_tls12_signature
    - Err
    - is_hostname_error
    - 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: verify_tls13_signature
      Src: /src/redis-rs/redis/src/connection.rs:810,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/connection.rs:810,1
    - Dst: is_hostname_error
      Src: /src/redis-rs/redis/src/connection.rs:813,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:814,1
    - Dst: rustls::client::danger::HandshakeSignatureValid::assertion
      Src: /src/redis-rs/redis/src/connection.rs:814,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:816,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: 819
      start: 804
    functionDepth: 1
    functionLinenumber: 804
    functionLinenumberEnd: 819
    functionName: AcceptInvalidHostnamesCertVerifier::verify_tls13_signature
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - verify_tls13_signature
    - Ok
    - or_else
    - Err
    - is_hostname_error
    - 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_verify_schemes
      Src: /src/redis-rs/redis/src/connection.rs:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 823
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 823
    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:871,1
    - Dst: is_wildcard_address
      Src: /src/redis-rs/redis/src/connection.rs:873,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:874,1
    - Dst: '&str::as_str'
      Src: /src/redis-rs/redis/src/connection.rs:879,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:881,1
    - Dst: ConnectionAddr::to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:885,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:886,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:888,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:892,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:899,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:902,1
    - Dst: ActualConnection::Tcp
      Src: /src/redis-rs/redis/src/connection.rs:910,1
    - Dst: TlsConnector::builder
      Src: /src/redis-rs/redis/src/connection.rs:923,1
    - Dst: danger_accept_invalid_certs
      Src: /src/redis-rs/redis/src/connection.rs:923,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/src/connection.rs:923,1
    - Dst: use_sni
      Src: /src/redis-rs/redis/src/connection.rs:923,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:923,1
    - Dst: TlsConnector::builder
      Src: /src/redis-rs/redis/src/connection.rs:929,1
    - Dst: danger_accept_invalid_hostnames
      Src: /src/redis-rs/redis/src/connection.rs:929,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:929,1
    - Dst: TlsConnector::new
      Src: /src/redis-rs/redis/src/connection.rs:933,1
    - Dst: '&str::as_str'
      Src: /src/redis-rs/redis/src/connection.rs:935,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:938,1
    - Dst: connect
      Src: /src/redis-rs/redis/src/connection.rs:939,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:942,1
    - Dst: '&str::as_str'
      Src: /src/redis-rs/redis/src/connection.rs:949,1
    - Dst: to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:949,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:950,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:952,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:956,1
    - Dst: connect
      Src: /src/redis-rs/redis/src/connection.rs:961,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/connection.rs:961,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:963,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:966,1
    - Dst: ActualConnection::TcpNativeTls
      Src: /src/redis-rs/redis/src/connection.rs:974,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/connection.rs:974,1
    - Dst: create_rustls_config
      Src: /src/redis-rs/redis/src/connection.rs:987,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:987,1
    - Dst: rustls::ClientConnection::new
      Src: /src/redis-rs/redis/src/connection.rs:988,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:989,1
    - Dst: rustls::pki_types::ServerName::try_from
      Src: /src/redis-rs/redis/src/connection.rs:990,1
    - Dst: to_owned
      Src: /src/redis-rs/redis/src/connection.rs:990,1
    - Dst: connect_tcp
      Src: /src/redis-rs/redis/src/connection.rs:994,1
    - Dst: StreamOwned::new
      Src: /src/redis-rs/redis/src/connection.rs:995,1
    - Dst: to_socket_addrs
      Src: /src/redis-rs/redis/src/connection.rs:1000,1
    - Dst: connect_tcp_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1001,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1003,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1007,1
    - Dst: StreamOwned::new
      Src: /src/redis-rs/redis/src/connection.rs:1012,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1014,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1017,1
    - Dst: ActualConnection::TcpRustls
      Src: /src/redis-rs/redis/src/connection.rs:1026,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/connection.rs:1026,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1030,1
    - Dst: ActualConnection::Unix
      Src: /src/redis-rs/redis/src/connection.rs:1036,1
    - Dst: UnixStream::connect
      Src: /src/redis-rs/redis/src/connection.rs:1037,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1042,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 151
    argCount: 3
    argNames:
    - addr
    - timeout
    - tcp_settings
    argTypes:
    - '&ConnectionAddr'
    - Option<Duration>
    - '&TcpSettings'
    constantsTouched: []
    func_position:
      end: 1049
      start: 866
    functionDepth: 28
    functionLinenumber: 866
    functionLinenumberEnd: 1049
    functionName: ActualConnection::new
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - is_wildcard_address
    - Some
    - ConnectionAddr::to_socket_addrs
    - danger_accept_invalid_hostnames
    - ActualConnection::TcpNativeTls
    - Arc::new
    - ActualConnection::Unix
    - connect
    - StreamOwned::new
    - TlsConnector::new
    - connect_tcp_timeout
    - danger_accept_invalid_certs
    - clone
    - to_socket_addrs
    - create_rustls_config
    - to_owned
    - UnixStream::connect
    - '&str::as_str'
    - unwrap
    - ActualConnection::TcpRustls
    - TlsConnector::builder
    - rustls::ClientConnection::new
    - Ok
    - use_sni
    - fail
    - connect_tcp
    - build
    - ActualConnection::Tcp
    - rustls::pki_types::ServerName::try_from
    - Box::new
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new(addr: &ConnectionAddr,timeout: Option<Duration>,tcp_settings:
      &TcpSettings,) -> RedisResult<ActualConnection>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1054,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1054,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1057,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1060,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1062,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1067,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1067,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1070,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1073,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1075,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1080,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1080,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1083,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1086,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1088,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/connection.rs:1093,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1093,1
    - Dst: PathBuf::is_unrecoverable_error
      Src: /src/redis-rs/redis/src/connection.rs:1096,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1099,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1101,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 67
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1105
      start: 1051
    functionDepth: 1
    functionLinenumber: 1051
    functionLinenumberEnd: 1105
    functionName: ActualConnection::send_bytes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Ok
    - map_err
    - Err
    - write_all
    - PathBuf::is_unrecoverable_error
    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:1110,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1115,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1115,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1120,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1120,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1124,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1128
      start: 1107
    functionDepth: 1
    functionLinenumber: 1107
    functionLinenumberEnd: 1128
    functionName: ActualConnection::set_write_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - get_ref
    - set_write_timeout
    - Ok
    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:1133,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1138,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1138,1
    - Dst: get_ref
      Src: /src/redis-rs/redis/src/connection.rs:1143,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1143,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1147,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1150,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1151
      start: 1130
    functionDepth: 1
    functionLinenumber: 1130
    functionLinenumberEnd: 1151
    functionName: ActualConnection::set_read_timeout
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - get_ref
    - set_read_timeout
    - Ok
    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: 1163
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1163
    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:1172,1
    - Dst: bool::extend
      Src: /src/redis-rs/redis/src/connection.rs:1174,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/connection.rs:1174,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/connection.rs:1174,1
    - Dst: rustls_native_certs::load_native_certs
      Src: /src/redis-rs/redis/src/connection.rs:1181,1
    - Dst: pop
      Src: /src/redis-rs/redis/src/connection.rs:1182,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1183,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1183,1
    - Dst: bool::add
      Src: /src/redis-rs/redis/src/connection.rs:1186,1
    - Dst: rustls::ClientConfig::builder
      Src: /src/redis-rs/redis/src/connection.rs:1190,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:1192,1
    - Dst: Self::with_root_certificates
      Src: /src/redis-rs/redis/src/connection.rs:1193,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1193,1
    - Dst: with_client_auth_cert
      Src: /src/redis-rs/redis/src/connection.rs:1200,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/connection.rs:1200,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1203,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:1206,1
    - Dst: with_no_client_auth
      Src: /src/redis-rs/redis/src/connection.rs:1210,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1224,1
    - Dst: Self::dangerous
      Src: /src/redis-rs/redis/src/connection.rs:1233,1
    - Dst: set_certificate_verifier
      Src: /src/redis-rs/redis/src/connection.rs:1233,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1233,1
    - Dst: rustls::client::WebPkiServerVerifier::builder
      Src: /src/redis-rs/redis/src/connection.rs:1235,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1235,1
    - Dst: build
      Src: /src/redis-rs/redis/src/connection.rs:1235,1
    - Dst: RedisResult::map_err
      Src: /src/redis-rs/redis/src/connection.rs:1235,1
    - Dst: rustls::Error::from
      Src: /src/redis-rs/redis/src/connection.rs:1239,1
    - Dst: rustls::OtherError
      Src: /src/redis-rs/redis/src/connection.rs:1239,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1239,1
    - Dst: Self::with_root_certificates
      Src: /src/redis-rs/redis/src/connection.rs:1250,1
    - Dst: with_no_client_auth
      Src: /src/redis-rs/redis/src/connection.rs:1250,1
    - Dst: rustls::crypto::CryptoProvider::get_default
      Src: /src/redis-rs/redis/src/connection.rs:1260,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1261,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1261,1
    - Dst: Self::dangerous
      Src: /src/redis-rs/redis/src/connection.rs:1266,1
    - Dst: set_certificate_verifier
      Src: /src/redis-rs/redis/src/connection.rs:1266,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/connection.rs:1268,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1272,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/connection.rs:1275,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1280,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 102
    argCount: 2
    argNames:
    - insecure
    - tls_params
    argTypes:
    - bool
    - Option<TlsConnParams>
    constantsTouched: []
    func_position:
      end: 1282
      start: 1167
    functionDepth: 29
    functionLinenumber: 1167
    functionLinenumberEnd: 1282
    functionName: create_rustls_config
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - set_certificate_verifier
    - unwrap_or
    - Arc::new
    - Err
    - RedisResult::map_err
    - rustls::OtherError
    - cloned
    - bool::extend
    - clone
    - rustls_native_certs::load_native_certs
    - RootCertStore::empty
    - with_client_auth_cert
    - iter
    - map_err
    - bool::add
    - RedisError::from
    - into
    - to_string
    - with_no_client_auth
    - rustls::client::WebPkiServerVerifier::builder
    - Ok
    - pop
    - Self::with_root_certificates
    - rustls::ClientConfig::builder
    - fail
    - rustls::crypto::CryptoProvider::get_default
    - Self::dangerous
    - rustls::Error::from
    - build
    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:1285,1
    - Dst: RedisFuture::arg
      Src: /src/redis-rs/redis/src/connection.rs:1288,1
    - Dst: RedisFuture::arg
      Src: /src/redis-rs/redis/src/connection.rs:1291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - username
    - password
    argTypes:
    - Option<&str>
    - '&str'
    constantsTouched: []
    func_position:
      end: 1293
      start: 1284
    functionDepth: 2
    functionLinenumber: 1284
    functionLinenumberEnd: 1293
    functionName: authenticate_cmd
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - cmd::cmd
    - RedisFuture::arg
    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:1299,1
    - Dst: ActualConnection::new
      Src: /src/redis-rs/redis/src/connection.rs:1300,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/connection.rs:1307,1
    - Dst: checked_sub
      Src: /src/redis-rs/redis/src/connection.rs:1307,1
    - Dst: elapsed
      Src: /src/redis-rs/redis/src/connection.rs:1307,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/connection.rs:1309,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/connection.rs:1309,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1310,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/connection.rs:1310,1
    - Dst: std::io::Error::new
      Src: /src/redis-rs/redis/src/connection.rs:1310,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1315,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1316,1
    - Dst: setup_connection
      Src: /src/redis-rs/redis/src/connection.rs:1318,1
    - Dst: set_read_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1326,1
    - Dst: set_write_timeout
      Src: /src/redis-rs/redis/src/connection.rs:1327,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1329,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - connection_info
    - timeout
    argTypes:
    - '&ConnectionInfo'
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 1330
      start: 1295
    functionDepth: 29
    functionLinenumber: 1295
    functionLinenumberEnd: 1330
    functionName: connect
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 7
    functionsReached:
    - and_then
    - is_none
    - elapsed
    - set_read_timeout
    - checked_sub
    - Instant::now
    - Ok
    - set_write_timeout
    - Err
    - RedisError::from
    - setup_connection
    - ActualConnection::new
    - 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:1345,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1347,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/connection.rs:1348,1
    - Dst: commands::resp3_hello
      Src: /src/redis-rs/redis/src/connection.rs:1348,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1349,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:1350,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/connection.rs:1351,1
    - Dst: authenticate_cmd
      Src: /src/redis-rs/redis/src/connection.rs:1351,1
    - Dst: bool::then
      Src: /src/redis-rs/redis/src/connection.rs:1352,1
    - Dst: redis::ConnectionInfo::username
      Src: /src/redis-rs/redis/src/connection.rs:1352,1
    - Dst: flatten
      Src: /src/redis-rs/redis/src/connection.rs:1352,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1355,1
    - Dst: then
      Src: /src/redis-rs/redis/src/connection.rs:1360,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1361,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/connection.rs:1360,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1363,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1363,1
    - Dst: impl Future::map
      Src: /src/redis-rs/redis/src/connection.rs:1367,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1368,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1368,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1368,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1372,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1375,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1381,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1381,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1381,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1381,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:1386,1
    - Dst: map_or
      Src: /src/redis-rs/redis/src/connection.rs:1386,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/connection.rs:1381,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1392,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1392,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:1392,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:1392,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/connection.rs:1397,1
    - Dst: map_or
      Src: /src/redis-rs/redis/src/connection.rs:1397,1
    - Dst: ignore
      Src: /src/redis-rs/redis/src/connection.rs:1392,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: 1415
      start: 1340
    functionDepth: 30
    functionLinenumber: 1340
    functionLinenumberEnd: 1415
    functionName: connection_setup_pipeline
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - supports_resp3
    - authenticate_cmd
    - arg
    - ignore
    - add_command
    - bool::then
    - impl Future::map
    - cmd::cmd
    - inspect
    - as_ref
    - '&mut Cmd::arg'
    - cmd::pipe
    - redis::ConnectionInfo::username
    - len
    - map_or
    - flatten
    - Cmd::arg
    - commands::resp3_hello
    - then
    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:1419,1
    - Dst: get_resp3_hello_command_error
      Src: /src/redis-rs/redis/src/connection.rs:1419,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1419,1
    - Dst: Self::into
      Src: /src/redis-rs/redis/src/connection.rs:1419,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1421,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1422
      start: 1417
    functionDepth: 33
    functionLinenumber: 1417
    functionLinenumberEnd: 1422
    functionName: check_resp3_auth
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Self::into
    - Ok
    - clone
    - Err
    - get_resp3_hello_command_error
    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:1433,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1437,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1438,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1437,1
    - Dst: details
      Src: /src/redis-rs/redis/src/connection.rs:1445,1
    - Dst: Option::ok_or
      Src: /src/redis-rs/redis/src/connection.rs:1445,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/connection.rs:1449,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1450,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1450,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1456,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1457
      start: 1430
    functionDepth: 1
    functionLinenumber: 1430
    functionLinenumberEnd: 1457
    functionName: check_resp2_auth
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - into
    - Ok
    - contains
    - Err
    - details
    - Option::ok_or
    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:1461,1
    - Dst: details
      Src: /src/redis-rs/redis/src/connection.rs:1464,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1465,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1466,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:1468,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1465,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1471,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1472,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1477
      start: 1459
    functionDepth: 1
    functionLinenumber: 1459
    functionLinenumberEnd: 1477
    functionName: check_db_select
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - into
    - to_string
    - Ok
    - Err
    - details
    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:1482,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1483,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1484,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1483,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - result
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 1490
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1490
    functionName: check_caching
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - into
    - Err
    - 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:1506,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1507,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1507,1
    - Dst: check_resp3_auth
      Src: /src/redis-rs/redis/src/connection.rs:1509,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1511,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1512,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1512,1
    - Dst: check_resp2_auth
      Src: /src/redis-rs/redis/src/connection.rs:1514,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1515,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1520,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1521,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1521,1
    - Dst: check_db_select
      Src: /src/redis-rs/redis/src/connection.rs:1523,1
    - Dst: RedisResult::get
      Src: /src/redis-rs/redis/src/connection.rs:1528,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1529,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1529,1
    - Dst: check_caching
      Src: /src/redis-rs/redis/src/connection.rs:1531,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1534,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 58
    argCount: 2
    argNames:
    - results
    argTypes:
    - Vec<Value>
    - ConnectionSetupComponents
    constantsTouched: []
    func_position:
      end: 1535
      start: 1492
    functionDepth: 25
    functionLinenumber: 1492
    functionLinenumberEnd: 1535
    functionName: check_connection_setup
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - into
    - Ok
    - check_db_select
    - check_resp2_auth
    - check_resp3_auth
    - check_caching
    - Err
    - RedisResult::get
    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: 30
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: execute_connection_pipeline
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - connection::check_connection_setup
    - len
    - Vec::with_capacity
    - ok_or_else
    - get_packed_pipeline
    - RedisResult::push
    - '&mut T::send'
    - '&mut T::next'
    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: 31
    functionLinenumber: 124
    functionLinenumberEnd: 159
    functionName: setup_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - connection_setup_pipeline
    - execute_connection_pipeline
    - Ok
    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:1621,1
    - Dst: ConnectionLike::req_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1623
      start: 1620
    functionDepth: 39
    functionLinenumber: 1620
    functionLinenumberEnd: 1623
    functionName: ConnectionLike::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 2
    functionsReached:
    - ConnectionLike::req_packed_command
    - Cmd::get_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: 1635
      start: 1633
    functionDepth: 0
    functionLinenumber: 1633
    functionLinenumberEnd: 1635
    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: 2
    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:1696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1697
    functionName: Connection::as_pubsub
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 7
    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:1700,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/connection.rs:1701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1699
    functionDepth: 1
    functionLinenumber: 1699
    functionLinenumberEnd: 1709
    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:1723,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1723,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1724,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:1724,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1727,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1728,1
    - Dst: Connection::recv_response
      Src: /src/redis-rs/redis/src/connection.rs:1740,1
    - Dst: len
      Src: /src/redis-rs/redis/src/connection.rs:1744,1
    - Dst: resp3_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1746,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/connection.rs:1760,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:1760,1
    - Dst: no_sub_err_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1761,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1772,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1772,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:1775,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/connection.rs:1775,1
    - Dst: resp2_is_pub_sub_state_cleared
      Src: /src/redis-rs/redis/src/connection.rs:1776,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1786,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:1786,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1798,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1715
    functionDepth: 42
    functionLinenumber: 1715
    functionLinenumberEnd: 1799
    functionName: Connection::clear_active_subscriptions
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Some
    - into
    - Ok
    - no_sub_err_is_pub_sub_state_cleared
    - cmd::cmd
    - len
    - resp3_is_pub_sub_state_cleared
    - kind
    - resp2_is_pub_sub_state_cleared
    - Err
    - Value::Array
    - Cmd::get_packed_command
    - from_redis_value
    - Connection::recv_response
    - 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:1803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - push
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 1805
      start: 1801
    functionDepth: 1
    functionLinenumber: 1801
    functionLinenumberEnd: 1805
    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:1809,1
    - Dst: PushKind::clone
      Src: /src/redis-rs/redis/src/connection.rs:1810,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/connection.rs:1811,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&RedisResult<Value>'
    constantsTouched: []
    func_position:
      end: 1814
      start: 1807
    functionDepth: 36
    functionLinenumber: 1807
    functionLinenumberEnd: 1814
    functionName: Connection::try_send
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - PushKind::clone
    - Connection::send_push
    - 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:1817,1
    - Dst: PushInfo::disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1816
    functionDepth: 2
    functionLinenumber: 1816
    functionLinenumberEnd: 1818
    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:1822,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1825,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1830,1
    - Dst: get_mut
      Src: /src/redis-rs/redis/src/connection.rs:1835,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1835,1
    - Dst: shutdown
      Src: /src/redis-rs/redis/src/connection.rs:1840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1820
    functionDepth: 3
    functionLinenumber: 1820
    functionLinenumberEnd: 1844
    functionName: Connection::close_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - shutdown
    - get_mut
    - 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:1852,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1857,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1862,1
    - Dst: parse_value
      Src: /src/redis-rs/redis/src/connection.rs:1866,1
    - Dst: Connection::try_send
      Src: /src/redis-rs/redis/src/connection.rs:1869,1
    - Dst: as_io_error
      Src: /src/redis-rs/redis/src/connection.rs:1878,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/connection.rs:1886,1
    - Dst: Connection::close_connection
      Src: /src/redis-rs/redis/src/connection.rs:1887,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 60
    argCount: 1
    argNames:
    - is_response
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 1894
      start: 1848
    functionDepth: 36
    functionLinenumber: 1848
    functionLinenumberEnd: 1894
    functionName: Connection::read
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - kind
    - Connection::try_send
    - parse_value
    - Connection::close_connection
    - 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:1898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sender
    argTypes:
    - SyncPushSender
    constantsTouched: []
    func_position:
      end: 1899
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1899
    functionName: Connection::set_push_sender
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 3
    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:1902,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:1903,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/connection.rs:1903,1
    - Dst: send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1905,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/connection.rs:1906,1
    - Dst: PathBuf::is_connection_dropped
      Src: /src/redis-rs/redis/src/connection.rs:1908,1
    - Dst: Connection::send_disconnect
      Src: /src/redis-rs/redis/src/connection.rs:1909,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1914
      start: 1901
    functionDepth: 3
    functionLinenumber: 1901
    functionLinenumberEnd: 1914
    functionName: Connection::send_bytes
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - PathBuf::is_connection_dropped
    - supports_resp3
    - RedisError::make_empty_command
    - send_bytes
    - Err
    - Vec::is_empty
    - Connection::send_disconnect
    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:1920,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1921,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1921,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1921,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - channel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1925
      start: 1919
    functionDepth: 31
    functionLinenumber: 1919
    functionLinenumberEnd: 1925
    functionName: Connection::subscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - check_resp3
    - cmd::cmd
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    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:1931,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1932,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1932,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1932,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pchannel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1936
      start: 1930
    functionDepth: 31
    functionLinenumber: 1930
    functionLinenumberEnd: 1936
    functionName: Connection::psubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - check_resp3
    - cmd::cmd
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    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:1942,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1943,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1943,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1943,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - channel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1947
      start: 1941
    functionDepth: 31
    functionLinenumber: 1941
    functionLinenumberEnd: 1947
    functionName: Connection::unsubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - check_resp3
    - cmd::cmd
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    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:1953,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:1954,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:1954,1
    - Dst: '&mut Cmd::set_no_response'
      Src: /src/redis-rs/redis/src/connection.rs:1954,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:1954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - pchannel
    argTypes:
    - T
    constantsTouched: []
    func_position:
      end: 1958
      start: 1952
    functionDepth: 31
    functionLinenumber: 1952
    functionLinenumberEnd: 1958
    functionName: Connection::punsubscribe_resp3
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - '&mut Cmd::exec'
    - check_resp3
    - cmd::cmd
    - '&mut Cmd::set_no_response'
    - Cmd::arg
    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:1964,1
    - Dst: Connection::exit_pubsub
      Src: /src/redis-rs/redis/src/connection.rs:1966,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1969,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/connection.rs:1970,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1971,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:1974,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1979,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1982
      start: 1963
    functionDepth: 42
    functionLinenumber: 1963
    functionLinenumberEnd: 1982
    functionName: Connection::req_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Cmd::is_no_response
    - Connection::read
    - Connection::exit_pubsub
    - Cmd::get_packed_command
    - Connection::send_bytes
    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:1985,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:1988,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:1990,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:1995,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1998
      start: 1983
    functionDepth: 44
    functionLinenumber: 1983
    functionLinenumberEnd: 1998
    functionName: Connection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Connection::exit_pubsub
    - Connection::send_bytes
    - Ok
    - Connection::read
    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:2007,1
    - Dst: Connection::send_bytes
      Src: /src/redis-rs/redis/src/connection.rs:2009,1
    - Dst: Connection::read
      Src: /src/redis-rs/redis/src/connection.rs:2020,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:2024,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:2026,1
    - Dst: Value::ServerError
      Src: /src/redis-rs/redis/src/connection.rs:2026,1
    - Dst: push
      Src: /src/redis-rs/redis/src/connection.rs:2039,1
    - Dst: None::is_none
      Src: /src/redis-rs/redis/src/connection.rs:2043,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2044,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/connection.rs:2051,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/connection.rs:2052,1
    - Dst: RedisError::make_aborted_transaction
      Src: /src/redis-rs/redis/src/connection.rs:2052,1
    - Dst: None::map_or
      Src: /src/redis-rs/redis/src/connection.rs:2055,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2055,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 60
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 2056
      start: 2000
    functionDepth: 44
    functionLinenumber: 2000
    functionLinenumberEnd: 2056
    functionName: Connection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - Ok
    - RedisError::make_aborted_transaction
    - Connection::read
    - is_empty
    - None::is_none
    - None::map_or
    - Connection::exit_pubsub
    - Value::ServerError
    - Err
    - Connection::send_bytes
    - push
    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: 2060
      start: 2058
    functionDepth: 0
    functionLinenumber: 2058
    functionLinenumberEnd: 2060
    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:2063,1
    - Dst: query::<String>
      Src: /src/redis-rs/redis/src/connection.rs:2063,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/connection.rs:2063,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2064
      start: 2062
    functionDepth: 2
    functionLinenumber: 2062
    functionLinenumberEnd: 2064
    functionName: Connection::check_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - cmd::cmd
    - query::<String>
    - 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:2067,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2066
    functionDepth: 1
    functionLinenumber: 2066
    functionLinenumberEnd: 2068
    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:2077,1
    - Dst: req_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 2078
      start: 2076
    functionDepth: 40
    functionLinenumber: 2076
    functionLinenumberEnd: 2078
    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:2086,1
    - Dst: req_packed_commands
      Src: /src/redis-rs/redis/src/connection.rs:2086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&[u8]'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 2087
      start: 2080
    functionDepth: 33
    functionLinenumber: 2080
    functionLinenumberEnd: 2087
    functionName: T::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - req_packed_commands
    - T::deref_mut
    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:2090,1
    - Dst: req_command
      Src: /src/redis-rs/redis/src/connection.rs:2090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 2091
      start: 2089
    functionDepth: 40
    functionLinenumber: 2089
    functionLinenumberEnd: 2091
    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:2094,1
    - Dst: '&Self::Target::get_db'
      Src: /src/redis-rs/redis/src/connection.rs:2094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2095
      start: 2093
    functionDepth: 1
    functionLinenumber: 2093
    functionLinenumberEnd: 2095
    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:2098,1
    - Dst: '&Self::Target::supports_pipelining'
      Src: /src/redis-rs/redis/src/connection.rs:2098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2097
    functionDepth: 1
    functionLinenumber: 2097
    functionLinenumberEnd: 2099
    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:2102,1
    - Dst: check_connection
      Src: /src/redis-rs/redis/src/connection.rs:2102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2101
    functionDepth: 1
    functionLinenumber: 2101
    functionLinenumberEnd: 2103
    functionName: T::check_connection
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - T::deref_mut
    - check_connection
    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:2106,1
    - Dst: '&Self::Target::is_open'
      Src: /src/redis-rs/redis/src/connection.rs:2106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2107
      start: 2105
    functionDepth: 1
    functionLinenumber: 2105
    functionLinenumberEnd: 2107
    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: 42
    functionLinenumber: 384
    functionLinenumberEnd: 406
    functionName: PubSub::new
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 2
    functionsReached:
    - ValueCodec::default
    - Some
    - Ok
    - Runtime::locate
    - SharedHandleContainer::new
    - Self::framed
    - Self::spawn
    - tokio::sync::mpsc::unbounded_channel
    - PubSubSink::new
    - super::setup_connection
    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:2144,1
    - Dst: Cmd::set_no_response
      Src: /src/redis-rs/redis/src/connection.rs:2145,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2147,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2147,1
    - Dst: recv_response
      Src: /src/redis-rs/redis/src/connection.rs:2150,1
    - Dst: Msg::from_value
      Src: /src/redis-rs/redis/src/connection.rs:2151,1
    - Dst: push_back
      Src: /src/redis-rs/redis/src/connection.rs:2152,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 2
    argNames:
    - cmd
    - is_sub_unsub
    argTypes:
    - '&mut Cmd'
    - bool
    constantsTouched: []
    func_position:
      end: 2157
      start: 2139
    functionDepth: 42
    functionLinenumber: 2139
    functionLinenumberEnd: 2157
    functionName: PubSub::cache_messages_until_received_response
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - supports_resp3
    - Cmd::set_no_response
    - Ok
    - Msg::from_value
    - push_back
    - Cmd::get_packed_command
    - send_packed_command
    - recv_response
    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: 29
    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: 29
    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: 29
    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:2203,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2204,1
    - Dst: Msg::from_owned_value
      Src: /src/redis-rs/redis/src/connection.rs:2207,1
    - Dst: read
      Src: /src/redis-rs/redis/src/connection.rs:2207,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2202
    functionDepth: 33
    functionLinenumber: 2202
    functionLinenumberEnd: 2213
    functionName: PubSub::get_message
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 2
    functionsReached:
    - Msg::from_owned_value
    - pop_front
    - read
    - Ok
    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:2221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dur
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 2222
      start: 2220
    functionDepth: 1
    functionLinenumber: 2220
    functionLinenumberEnd: 2222
    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:2227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2226
    functionDepth: 44
    functionLinenumber: 2226
    functionLinenumberEnd: 2228
    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:2236,1
    - Dst: impl combine::Parser::clone
      Src: /src/redis-rs/redis/src/connection.rs:2236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - '&Value'
    constantsTouched: []
    func_position:
      end: 2237
      start: 2235
    functionDepth: 1
    functionLinenumber: 2235
    functionLinenumberEnd: 2237
    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:2246,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:2248,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/connection.rs:2248,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/connection.rs:2249,1
    - Dst: from_redis_value
      Src: /src/redis-rs/redis/src/connection.rs:2250,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2250,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/connection.rs:2250,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: Some
      Src: /src/redis-rs/redis/src/connection.rs:2255,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2255,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2256,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2257,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2262,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 54
    argCount: 1
    argNames:
    - value
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 2267
      start: 2240
    functionDepth: 39
    functionLinenumber: 2240
    functionLinenumberEnd: 2267
    functionName: Msg::from_owned_value
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Some
    - into_iter
    - Result::ok
    - next
    - from_redis_value
    - Self::from_push_info
    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:2275,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: Some
      Src: /src/redis-rs/redis/src/connection.rs:2280,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2280,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2281,1
    - Dst: next
      Src: /src/redis-rs/redis/src/connection.rs:2282,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/connection.rs:2287,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 43
    argCount: 1
    argNames:
    - push_info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 2292
      start: 2270
    functionDepth: 2
    functionLinenumber: 2270
    functionLinenumberEnd: 2292
    functionName: Msg::from_push_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - into_iter
    - next
    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:2296,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2297
      start: 2295
    functionDepth: 40
    functionLinenumber: 2295
    functionLinenumberEnd: 2297
    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:2305,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/connection.rs:2305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2308
      start: 2303
    functionDepth: 0
    functionLinenumber: 2303
    functionLinenumberEnd: 2308
    functionName: Msg::get_channel_name
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - std::str::from_utf8
    - unwrap_or
    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:2312,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2313
      start: 2311
    functionDepth: 40
    functionLinenumber: 2311
    functionLinenumberEnd: 2313
    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: 2323
      start: 2318
    functionDepth: 0
    functionLinenumber: 2318
    functionLinenumberEnd: 2323
    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:2329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2330
      start: 2328
    functionDepth: 0
    functionLinenumber: 2328
    functionLinenumberEnd: 2330
    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:2337,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2338,1
    - Dst: from_redis_value_ref
      Src: /src/redis-rs/redis/src/connection.rs:2339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2336
    functionDepth: 40
    functionLinenumber: 2336
    functionLinenumberEnd: 2341
    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:2388,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:2388,1
    - Dst: '&mut Cmd::exec'
      Src: /src/redis-rs/redis/src/connection.rs:2388,1
    - Dst: cmd::pipe
      Src: /src/redis-rs/redis/src/connection.rs:2389,1
    - Dst: func
      Src: /src/redis-rs/redis/src/connection.rs:2390,1
    - Dst: atomic
      Src: /src/redis-rs/redis/src/connection.rs:2390,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2398,1
    - Dst: Cmd::exec
      Src: /src/redis-rs/redis/src/connection.rs:2398,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/connection.rs:2399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - con
    - keys
    - func
    argTypes:
    - '&mut C'
    - '&[K]'
    - F
    constantsTouched: []
    func_position:
      end: 2403
      start: 2376
    functionDepth: 31
    functionLinenumber: 2376
    functionLinenumberEnd: 2403
    functionName: transaction
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 3
    functionsReached:
    - '&mut Cmd::exec'
    - cmd::pipe
    - Cmd::exec
    - Ok
    - cmd::cmd
    - atomic
    - Cmd::arg
    - func
    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:2413,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: 2419
      start: 2407
    functionDepth: 1
    functionLinenumber: 2407
    functionLinenumberEnd: 2419
    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: 2434
      start: 2422
    functionDepth: 0
    functionLinenumber: 2422
    functionLinenumberEnd: 2434
    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:2441,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/connection.rs:2443,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2444,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/connection.rs:2443,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/connection.rs:2447,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2448,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/connection.rs:2447,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: 2451
      start: 2436
    functionDepth: 37
    functionLinenumber: 2436
    functionLinenumberEnd: 2451
    functionName: no_sub_err_is_pub_sub_state_cleared
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - Option::map
    - unwrap_or_default
    - Option::starts_with
    - 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:2455,1
    - Dst: Option::starts_with
      Src: /src/redis-rs/redis/src/connection.rs:2456,1
    - Dst: into
      Src: /src/redis-rs/redis/src/connection.rs:2457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - err
    argTypes:
    - RedisError
    constantsTouched: []
    func_position:
      end: 2465
      start: 2454
    functionDepth: 1
    functionLinenumber: 2454
    functionLinenumberEnd: 2465
    functionName: get_resp3_hello_command_error
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 1
    functionsReached:
    - into
    - detail
    - Option::starts_with
    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:2480,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/connection.rs:2488,1
    - Dst: map
      Src: /src/redis-rs/redis/src/connection.rs:2488,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2491,1
    - Dst: "commands\n                .iter()\n                .map(|c| c.get_packed_command())\n\
        \                .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/connection.rs:2488,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2494,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:2494,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:2494,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:2494,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2494,1
    - Dst: cmd::cmd
      Src: /src/redis-rs/redis/src/connection.rs:2501,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/connection.rs:2501,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/connection.rs:2501,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/connection.rs:2501,1
    - Dst: get_packed_command
      Src: /src/redis-rs/redis/src/connection.rs:2501,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: 2507
      start: 2474
    functionDepth: 34
    functionLinenumber: 2474
    functionLinenumberEnd: 2507
    functionName: tests::assert_lib_name_in_connection_setup_pipeline
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - cmd::cmd
    - get_packed_command
    - "commands\n                .iter()\n                .map(|c| c.get_packed_command())\n\
      \                .collect::<Vec<_>>"
    - arg
    - Cmd::arg
    - '&mut Cmd::arg'
    - 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:2530,1
    - Dst: parse_redis_url
      Src: /src/redis-rs/redis/src/connection.rs:2531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2538
      start: 2514
    functionDepth: 1
    functionLinenumber: 2514
    functionLinenumberEnd: 2538
    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:2600,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2601,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/src/connection.rs:2601,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/connection.rs:2601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2616
      start: 2541
    functionDepth: 43
    functionLinenumber: 2541
    functionLinenumberEnd: 2616
    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:2647,1
    - Dst: url_to_tcp_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2648,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/connection.rs:2648,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/connection.rs:2650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2654
      start: 2619
    functionDepth: 43
    functionLinenumber: 2619
    functionLinenumberEnd: 2654
    functionName: tests::test_url_to_tcp_connection_info_failed
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - url_to_tcp_connection_info
    - RedisResult::unwrap_err
    - to_string
    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:2747,1
    - Dst: url_to_unix_connection_info
      Src: /src/redis-rs/redis/src/connection.rs:2753,1
    - Dst: String::clone
      Src: /src/redis-rs/redis/src/connection.rs:2753,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/connection.rs:2753,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2768
      start: 2658
    functionDepth: 36
    functionLinenumber: 2658
    functionLinenumberEnd: 2768
    functionName: tests::test_url_to_unix_connection_info
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - RedisResult::unwrap
    - String::clone
    - into_iter
    - url_to_unix_connection_info
    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:2772,1
    - Dst: assert_lib_name_in_connection_setup_pipeline
      Src: /src/redis-rs/redis/src/connection.rs:2779,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2771
    functionDepth: 42
    functionLinenumber: 2771
    functionLinenumberEnd: 2784
    functionName: tests::redis_connection_info_lib_name_default
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - RedisConnectionInfo::default
    - assert_lib_name_in_connection_setup_pipeline
    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:2788,1
    - Dst: Self::set_skip_set_lib_name
      Src: /src/redis-rs/redis/src/connection.rs:2791,1
    - Dst: Self::set_lib_name
      Src: /src/redis-rs/redis/src/connection.rs:2795,1
    - Dst: assert_lib_name_in_connection_setup_pipeline
      Src: /src/redis-rs/redis/src/connection.rs:2803,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 2804
      start: 2787
    functionDepth: 42
    functionLinenumber: 2787
    functionLinenumberEnd: 2804
    functionName: tests::redis_connection_info_lib_name_custom
    functionSourceFile: /src/redis-rs/redis/src/connection.rs
    functionUses: 0
    functionsReached:
    - Self::set_lib_name
    - RedisConnectionInfo::default
    - assert_lib_name_in_connection_setup_pipeline
    - 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: 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: 41
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: Script::new
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 10
    functionsReached:
    - Sha1::new
    - Option::to_string
    - update
    - String::to_string
    - Option::as_bytes
    - digest
    linkageType: ''
    returnType: Script
    signature: 'pub fn new(code: &str) -> Script'
  - 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 Cmd::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: 32
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Script::load_cmd
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg
    - cmd
    - '&mut Cmd::arg'
    - as_bytes
    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: 33
    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: 33
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: Script::load_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Cmd::query_async
    - 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: 2
    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: 1
    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: 1
    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: 30
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: ScriptInvocation::arg
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 2
    functionsReached:
    - write_redis_args
    linkageType: ''
    returnType: '&''b mut ScriptInvocation'
    signature: 'pub fn arg<''b, T: ToRedisArgs>(&''b mut self, arg: T) -> &''b mut
      ScriptInvocation<''a>where''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: 30
    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 ScriptInvocation'
    signature: 'pub fn key<''b, T: ToRedisArgs>(&''b mut self, key: T) -> &''b mut
      ScriptInvocation<''a>where''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: 42
    functionLinenumber: 177
    functionLinenumberEnd: 190
    functionName: ScriptInvocation::invoke
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Cmd::query
    - ScriptInvocation::load
    - kind
    - Err
    - ScriptInvocation::eval_cmd
    - ErrorKind::Server
    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: 39
    functionLinenumber: 195
    functionLinenumberEnd: 215
    functionName: ScriptInvocation::invoke_async
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 3
    functionsReached:
    - Ok
    - kind
    - Err
    - ScriptInvocation::load_async
    - Cmd::query_async
    - ScriptInvocation::eval_cmd
    - ErrorKind::Server
    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: 29
    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: 34
    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: PathBuf::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: 29
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: ScriptInvocation::estimate_buflen
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - iter
    - len
    - fold
    - chain
    - PathBuf::len
    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 Cmd::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: 33
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: ScriptInvocation::eval_cmd
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 2
    functionsReached:
    - as_bytes
    - len
    - ScriptInvocation::estimate_buflen
    - arg
    - Cmd::arg
    - '&mut Cmd::arg'
    - Cmd::with_capacity
    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: 42
    functionLinenumber: 262
    functionLinenumberEnd: 273
    functionName: tests::script_eval_should_work
    functionSourceFile: /src/redis-rs/redis/src/script.rs
    functionUses: 0
    functionsReached:
    - estimate_buflen
    - eval_cmd
    - Script::new
    - 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: 27
    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:
    - '&RedisError'
    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: &RedisError) -> 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: 34
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: RedisError::fmt
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - iter
    - write_str
    - Ok
    - len
    - Option::fmt
    - std::fmt
    - fmt::Debug::fmt
    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:248,1
    - Dst: ErrorKind::Server
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:249,1
    - Dst: first
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:252,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:252,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:254,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:254,1
    - Dst: PushKind::into
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:254,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:252,1
    - Dst: ErrorKind::Server
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 258
      start: 243
    functionDepth: 38
    functionLinenumber: 243
    functionLinenumberEnd: 258
    functionName: RedisError::kind
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - and_then
    - PushKind::into
    - map
    - unwrap_or
    - kind
    - first
    - ErrorKind::Server
    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:263,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:263,1
    - Dst: Option::as_str
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:263,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:264,1
    - Dst: details
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 268
      start: 261
    functionDepth: 38
    functionLinenumber: 261
    functionLinenumberEnd: 268
    functionName: RedisError::detail
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Some
    - map
    - Option::as_str
    - details
    - Option::as_ref
    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:272,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:273,1
    - Dst: PushKind::code
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:273,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:275,1
    - Dst: code
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 279
      start: 271
    functionDepth: 39
    functionLinenumber: 271
    functionLinenumberEnd: 279
    functionName: RedisError::code
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Some
    - RedisError::kind
    - 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:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 315
      start: 282
    functionDepth: 39
    functionLinenumber: 282
    functionLinenumberEnd: 315
    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:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 39
    functionLinenumber: 318
    functionLinenumberEnd: 320
    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:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 327
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 327
    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: 338
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 338
    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:345,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:345,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 356
    functionName: RedisError::is_connection_refusal
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - kind
    - Option::is_some_and
    - RedisError::as_io_error
    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:361,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 367
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 367
    functionName: RedisError::is_timeout
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Option::is_some_and
    - RedisError::as_io_error
    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:373,1
    - Dst: Option::is_some_and
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 388
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 388
    functionName: RedisError::is_connection_dropped
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Option::is_some_and
    - RedisError::as_io_error
    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:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 403
    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:415,1
    - Dst: split_ascii_whitespace
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:415,1
    - Dst: next
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:416,1
    - Dst: parse
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:416,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:416,1
    - Dst: next
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:417,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:418,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 419
      start: 408
    functionDepth: 39
    functionLinenumber: 408
    functionLinenumberEnd: 419
    functionName: RedisError::redirect_node
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - Some
    - ok
    - parse
    - RedisError::detail
    - split_ascii_whitespace
    - next
    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:428,1
    - Dst: retry_method
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:429,1
    - Dst: RedisError::is_connection_dropped
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:448,1
    - Dst: RedisError::as_io_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:451,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:451,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:452,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 462
      start: 427
    functionDepth: 39
    functionLinenumber: 427
    functionLinenumberEnd: 462
    functionName: RedisError::retry_method
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 1
    functionsReached:
    - retry_method
    - unwrap_or
    - RedisError::is_connection_dropped
    - kind
    - Option::map
    - 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:470,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:471,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:472,1
    - Dst: Arc::from
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 475
    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:479,1
    - Dst: Arc::from
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - errors
    argTypes:
    - Vec<(usize, ServerError)>
    constantsTouched: []
    func_position:
      end: 481
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 481
    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:485,1
    - Dst: Arc::from
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - errs
    argTypes:
    - Vec<(usize, ServerError)>
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 487
    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:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 493
    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:511,1
    - Dst: '{

        ParsingError,

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

      ParsingError,

      errors::server_error::ServerError'
    - Option::map
    - Option::into
    linkageType: ''
    returnType: RedisError
    signature: 'pub fn make_extension_error(code: String, detail: Option<String>)
      -> RedisError'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ErrorKind::Server
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kind
    argTypes:
    - ServerErrorKind
    constantsTouched: []
    func_position:
      end: 553
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 553
    functionName: ErrorKind::from
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - ErrorKind::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:569,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - err
    argTypes:
    - RedisError
    constantsTouched: []
    func_position:
      end: 572
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 572
    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<ServerError, RedisError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: parse_redis_value
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:581,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:581,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:581,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:581,1
    - Dst: redirect_node
      Src: /src/redis-rs/redis/src/errors/redis_error.rs:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 588
      start: 580
    functionDepth: 42
    functionLinenumber: 580
    functionLinenumberEnd: 588
    functionName: tests::test_redirect_node
    functionSourceFile: /src/redis-rs/redis/src/errors/redis_error.rs
    functionUses: 0
    functionsReached:
    - parse_redis_value
    - extract_error
    - unwrap_err
    - redirect_node
    - 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: 79
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 79
    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:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 105
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 105
    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:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 108
    functionDepth: 40
    functionLinenumber: 108
    functionLinenumberEnd: 113
    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:118,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/server_error.rs:118,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/errors/server_error.rs:118,1
    - Dst: Option::as_ref
      Src: /src/redis-rs/redis/src/errors/server_error.rs:119,1
    - Dst: map
      Src: /src/redis-rs/redis/src/errors/server_error.rs:119,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/errors/server_error.rs:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 38
    functionLinenumber: 116
    functionLinenumberEnd: 121
    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: 131
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 131
    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:138,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/server_error.rs:140,1
    - Dst: Option::fmt
      Src: /src/redis-rs/redis/src/errors/server_error.rs:141,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/errors/server_error.rs:143,1
    - Dst: fmt::Debug::fmt
      Src: /src/redis-rs/redis/src/errors/server_error.rs:146,1
    - Dst: write_str
      Src: /src/redis-rs/redis/src/errors/server_error.rs:148,1
    - Dst: Option::fmt
      Src: /src/redis-rs/redis/src/errors/server_error.rs:149,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/errors/server_error.rs:151,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: ServerError::fmt
    functionSourceFile: /src/redis-rs/redis/src/errors/server_error.rs
    functionUses: 0
    functionsReached:
    - Option::fmt
    - Ok
    - write_str
    - fmt::Debug::fmt
    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: 0
    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:
    - std::fmt
    - write_str
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter<''_>) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 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: ParsingError
    signature: 'fn from(err: ArcStr) -> ParsingError'
  - 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:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user_timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    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: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    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:80,1
    - Dst: TcpStream::into
      Src: /src/redis-rs/redis/src/io/tcp.rs:83,1
    - Dst: set_tcp_keepalive
      Src: /src/redis-rs/redis/src/io/tcp.rs:85,1
    - Dst: set_tcp_user_timeout
      Src: /src/redis-rs/redis/src/io/tcp.rs:88,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/io/tcp.rs:89,1
    - Dst: into
      Src: /src/redis-rs/redis/src/io/tcp.rs:89,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/io/tcp.rs:93,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - socket
    - settings
    argTypes:
    - TcpStream
    - '&TcpSettings'
    constantsTouched: []
    func_position:
      end: 95
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 95
    functionName: stream_with_settings
    functionSourceFile: /src/redis-rs/redis/src/io/tcp.rs
    functionUses: 2
    functionsReached:
    - into
    - Ok
    - TcpStream::set_nodelay
    - set_tcp_user_timeout
    - TcpStream::into
    - set_tcp_keepalive
    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:74,1
    - Dst: ErrorOrErrors::Errors
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:75,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - expectation
    argTypes:
    - Option<PipelineResponseExpectation>
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 42
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: ResponseAggregate::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - ErrorOrErrors::Errors
    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:110,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:110,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: Pipeline::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - finish
    - debug_tuple
    - field
    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:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - push_sender
    - info
    argTypes:
    - '&Option<Arc<dyn AsyncPushSender>>'
    - PushInfo
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 141
    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:144,1
    - Dst: PushInfo::disconnect
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - push_sender
    argTypes:
    - '&Option<Arc<dyn AsyncPushSender>>'
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: send_disconnect
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 2
    functionsReached:
    - send_push
    - PushInfo::disconnect
    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: 42
    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
    - PipelineSink::as_mut
    - Err
    - is_closed
    - Poll::Ready
    - project
    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:190,1
    - Dst: PushKind::has_reply
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:193,1
    - Dst: Self::handle_push_value
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:196,1
    - Dst: send_push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:198,1
    - Dst: PushKind::has_reply
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:203,1
    - Dst: send_push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:204,1
    - Dst: PushKind::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:207,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:208,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:211,1
    - Dst: pop_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:216,1
    - Dst: take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:223,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:224,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:246,1
    - Dst: ErrorOrErrors::FirstError
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:248,1
    - Dst: push_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:255,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:261,1
    - Dst: ErrorOrErrors::FirstError
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:265,1
    - Dst: len
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:270,1
    - Dst: push_front
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:272,1
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:277,1
    - Dst: ErrorOrErrors::Errors
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:277,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:277,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:279,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:280,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:280,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:280,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:282,1
    - Dst: RedisError::make_aborted_transaction
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:282,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:285,1
    - Dst: take
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:291,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:292,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 126
    argCount: 2
    argNames:
    - result
    argTypes:
    - Pin<&mut Self>
    - RedisResult<Value>
    constantsTouched: []
    func_position:
      end: 296
      start: 189
    functionDepth: 37
    functionLinenumber: 189
    functionLinenumberEnd: 296
    functionName: PipelineSink::send_result
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - send
    - PipelineSink::project
    - take
    - Err
    - Value::Array
    - push
    - clone
    - std::mem::replace
    - ErrorOrErrors::FirstError
    - pop_front
    - push_front
    - send_push
    - Vec::new
    - RedisError::make_aborted_transaction
    - ErrorOrErrors::Errors
    - Self::handle_push_value
    - PushKind::has_reply
    - std::mem::take
    - Ok
    - len
    - is_empty
    - PushKind::clone
    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:
    - PipelineSink::as_mut
    - map_err
    - poll_ready
    - project
    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:
    - send
    - Ok
    - start_send
    - PipelineSink::as_mut
    - Err
    - push_back
    - project
    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:
    - Ok
    - is_empty
    - PipelineSink::handle_message
    - PipelineSink::as_mut
    - is_closed
    - Poll::Ready
    - project
    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:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - Option<usize>
    constantsTouched: []
    func_position:
      end: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    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:437,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:438,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:438,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:443,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:443,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:452,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:455,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:457,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:461,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:457,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:466,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:466,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:470,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:474,1
    - Dst: Self::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:474,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:476,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:476,1
    - Dst: into
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:476,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:473,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:480,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: 481
      start: 428
    functionDepth: 42
    functionLinenumber: 428
    functionLinenumberEnd: 481
    functionName: Pipeline::send_recv
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - and_then
    - into
    - send
    - Ok
    - map_err
    - oneshot::channel
    - RedisError::make_empty_command
    - Runtime::locate
    - Err
    - Self::timeout
    - unwrap_or_else
    - Vec<u8>::is_empty
    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: cfg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:526,1
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:530,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:530,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:530,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:530,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:530,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 536
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 536
    functionName: MultiplexedConnection::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - cfg
    - debug_struct
    - finish
    - field
    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:549,1
    - Dst: AsyncConnectionConfig::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:549,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - connection_info
    - stream
    argTypes:
    - '&RedisConnectionInfo'
    - C
    constantsTouched: []
    func_position:
      end: 550
      start: 542
    functionDepth: 33
    functionLinenumber: 542
    functionLinenumberEnd: 550
    functionName: MultiplexedConnection::new
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - AsyncConnectionConfig::default
    - Self::new_with_config
    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:562,1
    - Dst: Self::framed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:562,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:563,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:564,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:571,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:571,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:577,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:580,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:586,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:586,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:589,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:577,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:595,1
    - Dst: redis::ConnectionInfo::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:597,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:602,1
    - Dst: next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:602,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:604,1
    - Dst: ArcStr::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:604,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:605,1
    - Dst: ArcStr::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:605,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:609,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:612,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:617,1
    - Dst: setup_connection
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:622,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:629,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:630,1
    - Dst: Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:636,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:640,1
    - Dst: Pipeline::resolve_buffer_size
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:641,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:644,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:646,1
    - Dst: async_lock::Semaphore::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:646,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:664,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:665,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:667,1
    - Dst: Self::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:667,1
    - Dst: next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:668,1
    - Dst: re_authenticate_with_credentials
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:671,1
    - Dst: is_connection_dropped
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:675,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:694,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:696,1
    - Dst: SharedHandleContainer::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:696,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:705,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 140
    argCount: 3
    argNames:
    - connection_info
    - stream
    - config
    argTypes:
    - '&RedisConnectionInfo'
    - C
    - AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 706
      start: 554
    functionDepth: 43
    functionLinenumber: 554
    functionLinenumberEnd: 706
    functionName: MultiplexedConnection::new_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 1
    functionsReached:
    - Some
    - check_resp3
    - subscribe
    - Arc::new
    - Err
    - Pipeline::new
    - is_some
    - transpose
    - map
    - clone
    - redis::ConnectionInfo::clone
    - CacheManager::new
    - next
    - is_connection_dropped
    - ValueCodec::default
    - Self::framed
    - setup_connection
    - RedisError::from
    - as_ref
    - Self::spawn
    - ArcStr::from
    - async_lock::Semaphore::new
    - Ok
    - Runtime::locate
    - SharedHandleContainer::new
    - Pipeline::resolve_buffer_size
    - re_authenticate_with_credentials
    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:711,1
    - Dst: SharedHandleContainer::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - TaskHandle
    constantsTouched: []
    func_position:
      end: 712
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 712
    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:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - std::time::Duration
    constantsTouched: []
    func_position:
      end: 717
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 717
    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:725,1
    - Dst: acquire
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:725,1
    - Dst: Self::get_cached_cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:731,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:732,1
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:734,1
    - Dst: pack_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:735,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:737,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:740,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:741,1
    - Dst: len
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:743,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:748,1
    - Dst: crate::types::from_redis_value
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:751,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:752,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:752,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:757,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:759,1
    - Dst: Cmd::is_no_response
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:762,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 57
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 765
      start: 721
    functionDepth: 43
    functionLinenumber: 721
    functionLinenumberEnd: 765
    functionName: MultiplexedConnection::send_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - into_iter
    - acquire
    - Ok
    - Cmd::is_no_response
    - resolve
    - crate::types::from_redis_value
    - len
    - Self::get_cached_cmd
    - pack_command
    - get_packed_pipeline
    - crate::Pipeline::new
    - send_recv
    - Cmd::get_packed_command
    linkageType: ''
    returnType: RedisResult
    signature: 'pub async fn send_packed_command(&mut self, cmd: &Cmd) -> RedisResult<Value>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::with_capacity
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:781,1
    - Dst: Self::max
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:781,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:782,1
    - Dst: acquire
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:782,1
    - Dst: try_acquire
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:784,1
    - Dst: push
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:785,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:791,1
    - Dst: Self::get_cached_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:796,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:797,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:798,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:798,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:798,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:800,1
    - Dst: get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:803,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:804,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:815,1
    - Dst: send_recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:817,1
    - Dst: Cmd::get_packed_pipeline
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:820,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:821,1
    - Dst: Cmd::is_transaction
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:824,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:832,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:833,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 70
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 835
      start: 770
    functionDepth: 29
    functionLinenumber: 770
    functionLinenumberEnd: 835
    functionName: MultiplexedConnection::send_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - Vec::new
    - acquire
    - Ok
    - resolve
    - Self::max
    - is_empty
    - Cmd::is_transaction
    - Vec::with_capacity
    - try_acquire
    - get_packed_pipeline
    - Cmd::get_packed_pipeline
    - send_recv
    - Value::Array
    - Self::get_cached_pipeline
    - push
    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:841,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:841,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 38
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: MultiplexedConnection::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - statistics
    - as_ref
    - 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:847,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:847,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 848
      start: 846
    functionDepth: 44
    functionLinenumber: 846
    functionLinenumberEnd: 848
    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:856,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 857
      start: 850
    functionDepth: 30
    functionLinenumber: 850
    functionLinenumberEnd: 857
    functionName: MultiplexedConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - boxed
    - MultiplexedConnection::send_packed_commands
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,cmd: &''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: 861
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 861
    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:882,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:883,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:884,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:885,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:886,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 887
      start: 881
    functionDepth: 32
    functionLinenumber: 881
    functionLinenumberEnd: 887
    functionName: MultiplexedConnection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:904,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:905,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:906,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:907,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:908,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 909
      start: 903
    functionDepth: 32
    functionLinenumber: 903
    functionLinenumberEnd: 909
    functionName: MultiplexedConnection::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:930,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:931,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:932,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:933,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:934,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 935
      start: 929
    functionDepth: 32
    functionLinenumber: 929
    functionLinenumberEnd: 935
    functionName: MultiplexedConnection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:941,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:942,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:943,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:944,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:945,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 946
      start: 940
    functionDepth: 32
    functionLinenumber: 940
    functionLinenumberEnd: 946
    functionName: MultiplexedConnection::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:960,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:960,1
    - Dst: MultiplexedConnection::send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:962,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:962,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:962,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - credentials
    argTypes:
    - '&crate::auth::BasicAuth'
    constantsTouched: []
    func_position:
      end: 966
      start: 955
    functionDepth: 44
    functionLinenumber: 955
    functionLinenumberEnd: 966
    functionName: MultiplexedConnection::re_authenticate_with_credentials
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - map
    - crate::connection::authenticate_cmd
    - extract_error
    - MultiplexedConnection::send_packed_command
    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: 976
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 976
    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: 981
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 981
    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:
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:986,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 988
      start: 983
    functionDepth: 43
    functionLinenumber: 983
    functionLinenumberEnd: 988
    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:1001,1
    - Dst: tokio::sync::mpsc::channel::<()>
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1002,1
    - Dst: tokio::sync::mpsc::channel::<()>
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1003,1
    - Dst: tokio::io::split
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1005,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1007,1
    - Dst: FramedRead::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1008,1
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1008,1
    - Dst: RedisServer::next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1009,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1010,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1014,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1015,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1015,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1016,1
    - Dst: flush
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1017,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1021,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1021,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1021,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1021,1
    - Dst: MultiplexedConnection::new_with_config
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1027,1
    - Dst: mock_conn_info
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1027,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1027,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1030,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 48
    argCount: 1
    argNames:
    - concurrency_limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 1033
      start: 990
    functionDepth: 42
    functionLinenumber: 990
    functionLinenumberEnd: 1033
    functionName: tests::create_mock_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - FramedRead::new
    - send
    - is_some
    - AsyncConnectionConfig::new
    - mock_conn_info
    - Self::set_connection_timeout
    - tokio::sync::mpsc::channel::<()>
    - RedisServer::next
    - ValueCodec::default
    - recv
    - unwrap
    - tokio::io::split
    - tokio::io::duplex
    - MultiplexedConnection::new_with_config
    - Self::set_concurrency_limit
    - tokio::spawn
    - flush
    - write_all
    - Self::set_response_timeout
    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:1037,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1039,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1040,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1041,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1041,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1043,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1044,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1045,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1045,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1047,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1048,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1049,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1049,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1052,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1052,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1053,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1053,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1055,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1055,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1055,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1061,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1061,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1063,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1063,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1065,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1065,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1066,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1066,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1068,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1068,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1069,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1069,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1070,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1070,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1071
      start: 1036
    functionDepth: 43
    functionLinenumber: 1036
    functionLinenumberEnd: 1071
    functionName: tests::test_concurrency_limit_enforced
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - cmd
    - create_mock_connection
    - recv
    - send
    - tokio::time::timeout
    - tokio::spawn
    - Duration::from_millis
    - unwrap
    - RedisResult::clone
    - send_packed_command
    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:1075,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1077,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1078,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1079,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1079,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1082,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1082,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1084,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1085,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1087,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1089,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1094,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1094,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1094,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1100,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1100,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1101,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1101,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1103,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1103,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1104,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1104,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1105
      start: 1074
    functionDepth: 43
    functionLinenumber: 1074
    functionLinenumberEnd: 1105
    functionName: tests::test_no_limit_bypasses_concurrency_limit
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - cmd
    - create_mock_connection
    - recv
    - send
    - tokio::time::timeout
    - tokio::spawn
    - Duration::from_millis
    - unwrap
    - RedisResult::clone
    - send_packed_command
    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:1109,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1111,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1112,1
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1114,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1115,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1115,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1115,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1116,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1116,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1116,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1117,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1117,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1117,1
    - Dst: send_packed_commands
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1118,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1123,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1123,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1126,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1127,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1128,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1128,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1132,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1132,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1132,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1139,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1139,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1142,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1142,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1143,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1143,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1145,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1145,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1146,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1146,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1108
    functionDepth: 43
    functionLinenumber: 1108
    functionLinenumberEnd: 1147
    functionName: tests::test_pipeline_acquires_multiple_permits
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - cmd
    - create_mock_connection
    - recv
    - send
    - tokio::time::timeout
    - send_packed_commands
    - Pipeline::cmd
    - tokio::spawn
    - crate::Pipeline::new
    - Duration::from_millis
    - '&mut Cmd::arg'
    - RedisResult::clone
    - unwrap
    - send_packed_command
    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:1151,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1153,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1154,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1155,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1155,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1157,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1157,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1159,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1160,1
    - Dst: crate::Pipeline::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1162,1
    - Dst: Pipeline::cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1164,1
    - Dst: redis::Cmd::arg
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1164,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1164,1
    - Dst: send_packed_commands
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1166,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1171,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1171,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1171,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1178,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1178,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1182,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1185,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1185,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1186,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1186,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1150
    functionDepth: 43
    functionLinenumber: 1150
    functionLinenumberEnd: 1187
    functionName: tests::test_pipeline_proceeds_with_partial_permits
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - cmd
    - create_mock_connection
    - recv
    - send
    - tokio::time::timeout
    - send_packed_commands
    - Pipeline::cmd
    - tokio::spawn
    - crate::Pipeline::new
    - Duration::from_millis
    - unwrap
    - RedisResult::clone
    - '&mut Cmd::arg'
    - send_packed_command
    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:1191,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1193,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1194,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1195,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1195,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1197,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1197,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1200,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1201,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1202,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1202,1
    - Dst: tokio::time::sleep
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1204,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1204,1
    - Dst: abort
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1205,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:1210,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1210,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1214,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1215,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1216,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1216,1
    - Dst: tokio::time::timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1220,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1220,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1220,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1226,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1226,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1227,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1227,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1190
    functionDepth: 43
    functionLinenumber: 1190
    functionLinenumberEnd: 1228
    functionName: tests::test_permit_released_on_cancellation
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - cmd
    - create_mock_connection
    - recv
    - abort
    - send
    - tokio::time::timeout
    - tokio::time::sleep
    - tokio::spawn
    - Duration::from_millis
    - unwrap
    - RedisResult::clone
    - send_packed_command
    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:1236,1
    - Dst: tokio::sync::mpsc::channel::<()>
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1237,1
    - Dst: tokio::io::split
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1239,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1241,1
    - Dst: FramedRead::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1242,1
    - Dst: ValueCodec::default
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1242,1
    - Dst: RedisServer::next
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1243,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1244,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1248,1
    - Dst: futures_util::future::pending::<()>
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1249,1
    - Dst: write_all
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1250,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1253,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1253,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1253,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1255,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1255,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1253,1
    - Dst: MultiplexedConnection::new_with_config
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1259,1
    - Dst: mock_conn_info
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1259,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1259,1
    - Dst: tokio::spawn
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1262,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1265,1
    - Dst: Self::send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1266,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1266,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1266,1
    - Dst: recv
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1268,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1268,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1272,1
    - Dst: Self::send_packed_command
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1273,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1273,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/aio/multiplexed_connection.rs:1273,1
    - Dst: recv
      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
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1276
      start: 1231
    functionDepth: 42
    functionLinenumber: 1231
    functionLinenumberEnd: 1276
    functionName: tests::test_permit_released_on_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/multiplexed_connection.rs
    functionUses: 0
    functionsReached:
    - Some
    - FramedRead::new
    - send
    - cmd
    - unwrap_err
    - Self::send_packed_command
    - AsyncConnectionConfig::new
    - mock_conn_info
    - Self::set_connection_timeout
    - tokio::sync::mpsc::channel::<()>
    - RedisServer::next
    - ValueCodec::default
    - recv
    - unwrap
    - RedisResult::clone
    - tokio::io::split
    - tokio::io::duplex
    - MultiplexedConnection::new_with_config
    - Self::set_concurrency_limit
    - tokio::spawn
    - Duration::from_millis
    - write_all
    - futures_util::future::pending::<()>
    - Self::set_response_timeout
    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: 42
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: SharedHandleContainer::new
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 3
    functionsReached:
    - HandleContainer::new
    - Arc::new
    - Self
    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: 38
    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: 39
    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: 39
    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: 45
    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: 31
    functionLinenumber: 150
    functionLinenumberEnd: 163
    functionName: Runtime::timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/runtime.rs
    functionUses: 0
    functionsReached:
    - Elapsed
    - ok_or
    - map_err
    - tokio::time::timeout
    - F::timeout
    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:
    - smol::Timer::after
    - tokio::time::sleep
    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: 4
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 183
      start: 181
    functionDepth: 46
    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:67,1
    - Dst: debug_struct
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:70,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:71,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:71,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:71,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:71,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:71,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:71,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:71,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:71,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:71,1
    - Dst: Self::is_some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:81,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:89,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:92,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:94,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 53
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 102
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 102
    functionName: ConnectionManagerConfig::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - cfg
    - debug_struct
    - Self::is_some
    - is_some
    - finish
    - field
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 43
    functionLinenumber: 111
    functionLinenumberEnd: 113
    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: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    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: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    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: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    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: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    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: 140
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 140
    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: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    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: 152
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 152
    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:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 158
    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: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: ConnectionManagerConfig::set_min_delay
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectionManagerConfig
    signature: 'pub fn set_min_delay(mut self, min_delay: Duration) -> ConnectionManagerConfig'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - time
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: ConnectionManagerConfig::set_max_delay
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: ConnectionManagerConfig
    signature: 'pub fn set_max_delay(mut self, time: Duration) -> ConnectionManagerConfig'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - base
    argTypes:
    - f32
    constantsTouched: []
    func_position:
      end: 177
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 177
    functionName: ConnectionManagerConfig::set_exponent_base
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectionManagerConfig
    signature: 'pub fn set_exponent_base(mut self, base: f32) -> ConnectionManagerConfig'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: ConnectionManagerConfig::set_number_of_retries
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectionManagerConfig
    signature: 'pub fn set_number_of_retries(mut self, amount: usize) -> ConnectionManagerConfig'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 191
    functionName: ConnectionManagerConfig::set_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectionManagerConfig
    signature: 'pub fn set_response_timeout(mut self, duration: Option<Duration>)
      -> ConnectionManagerConfig'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 199
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 199
    functionName: ConnectionManagerConfig::set_connection_timeout
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ConnectionManagerConfig
    signature: 'pub fn set_connection_timeout(mut self, duration: Option<Duration>)
      -> ConnectionManagerConfig'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:227,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 229
      start: 226
    functionDepth: 42
    functionLinenumber: 226
    functionLinenumberEnd: 229
    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: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    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:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - crate::caching::CacheConfig
    constantsTouched: []
    func_position:
      end: 244
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 244
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    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:291,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 293
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 293
    functionName: ConnectionManagerConfig::set_credentials_provider
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    - std::sync::Arc::new
    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: 313
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 313
    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:367,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:367,1
    - Dst: field
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:367,1
    - Dst: finish
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut std::fmt::Formatter<''_>'
    constantsTouched: []
    func_position:
      end: 371
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 371
    functionName: ConnectionManager::fmt
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - finish
    - field
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::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: 386
      start: 378
    functionDepth: 41
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: reconnect_if_dropped
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::reconnect
    - PathBuf::is_unrecoverable_error
    - Arc::downgrade
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: PathBuf::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: 399
      start: 390
    functionDepth: 48
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: reconnect_if_io_error
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::reconnect
    - Err
    - Arc::downgrade
    - PathBuf::is_io_error
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:407,1
    - Dst: Self::new_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - client
    argTypes:
    - Client
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 44
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: ConnectionManager::new
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 1
    functionsReached:
    - Self::new_with_config
    - ConnectionManagerConfig::new
    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:427,1
    - Dst: load
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:430,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:431,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:431,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:431,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:433,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - client
    - config
    argTypes:
    - Client
    - ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 434
      start: 422
    functionDepth: 45
    functionLinenumber: 422
    functionLinenumberEnd: 434
    functionName: ConnectionManager::new_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 3
    functionsReached:
    - Ok
    - map_err
    - clone
    - Self::new_lazy_with_config
    - PathBuf::clone
    - load
    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:447,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:449,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:450,1
    - Dst: into
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:450,1
    - Dst: ExponentialBuilder::default
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:453,1
    - Dst: Self::with_factor
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:453,1
    - Dst: with_min_delay
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:453,1
    - Dst: with_max_times
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:453,1
    - Dst: with_jitter
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:453,1
    - Dst: with_max_delay
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:459,1
    - Dst: AsyncConnectionConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:462,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:462,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:462,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:468,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:468,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:471,1
    - Dst: Self::as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:473,1
    - Dst: Self::set_cache_manager
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:474,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:474,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:479,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:482,1
    - Dst: HandleContainer::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:483,1
    - Dst: tokio::runtime::Runtime::spawn
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:484,1
    - Dst: Self::check_for_disconnect_pushes
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:484,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:488,1
    - Dst: check_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:489,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:494,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:495,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:495,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:498,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:498,1
    - Dst: supports_resp3
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:499,1
    - Dst: tokio::sync::mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:500,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:501,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:504,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:504,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:508,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:508,1
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:508,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:513,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:515,1
    - Dst: Self::new_connection
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:519,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:518,1
    - Dst: shared
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:518,1
    - Dst: Self
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:530,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:530,1
    - Dst: ArcSwap::from_pointee
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:532,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:543,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:545,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:543,1
    - Dst: crate::RedisError::from
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:550,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:557,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 144
    argCount: 2
    argNames:
    - client
    - config
    argTypes:
    - Client
    - ConnectionManagerConfig
    constantsTouched: []
    func_position:
      end: 558
      start: 443
    functionDepth: 46
    functionLinenumber: 443
    functionLinenumberEnd: 558
    functionName: ConnectionManager::new_lazy_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 1
    functionsReached:
    - Some
    - is_none
    - ExponentialBuilder::default
    - tokio::runtime::Runtime::spawn
    - check_resp3
    - send
    - supports_resp3
    - Arc::new
    - ArcSwap::from_pointee
    - Self::check_for_disconnect_pushes
    - Err
    - Self::new_connection
    - HandleContainer::new
    - Self
    - Self::as_ref
    - Self::with_factor
    - AsyncConnectionConfig::new
    - with_min_delay
    - map
    - with_jitter
    - clone
    - shared
    - Self::set_connection_timeout
    - boxed
    - CacheManager::new
    - tokio::sync::mpsc::unbounded_channel
    - Self::set_push_sender_internal
    - with_max_times
    - map_err
    - with_max_delay
    - Arc::downgrade
    - as_ref
    - Mutex::new
    - SubscriptionTracker::default
    - Self::set_cache_manager
    - into
    - oneshot::channel
    - Ok
    - Runtime::locate
    - crate::RedisError::from
    - Self::clone
    - Self::set_response_timeout
    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:566,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:568,1
    - Dst: retry
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:572,1
    - Dst: sleep
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:572,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:574,1
    - Dst: Self::sleep
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:574,1
    - Dst: exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:578,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:580,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: 581
      start: 560
    functionDepth: 37
    functionLinenumber: 560
    functionLinenumberEnd: 581
    functionName: ConnectionManager::new_connection
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - get_multiplexed_async_connection_with_config
    - Ok
    - sleep
    - Self::sleep
    - exec_async
    - Runtime::locate
    - retry
    - Self::clone
    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:591,1
    - Dst: Weak<Internals>::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:594,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:596,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:598,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:600,1
    - Dst: clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:601,1
    - Dst: set_cache_manager
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:602,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:606,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:607,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:607,1
    - Dst: Self::new_connection
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:615,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:622,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:604,1
    - Dst: shared
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:604,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:628,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:628,1
    - Dst: compare_and_swap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:629,1
    - Dst: Arc::ptr_eq
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:634,1
    - Dst: spawn
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:636,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:636,1
    - Dst: detach
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:636,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: 638
      start: 587
    functionDepth: 37
    functionLinenumber: 587
    functionLinenumberEnd: 638
    functionName: ConnectionManager::reconnect
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - set_cache_manager
    - Some
    - Arc::new
    - Self::new_connection
    - map
    - clone
    - shared
    - get_subscription_pipeline
    - Arc::ptr_eq
    - Weak<Internals>::upgrade
    - boxed
    - detach
    - spawn
    - clone_and_increase_epoch
    - as_ref
    - compare_and_swap
    - Weak<Internals>::clone
    - lock
    - Ok
    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:650,1
    - Dst: upgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:652,1
    - Dst: Self::reconnect
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:655,1
    - Dst: Arc::downgrade
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:655,1
    - Dst: load
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:655,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:657,1
    - Dst: Self::send
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:658,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: 661
      start: 640
    functionDepth: 43
    functionLinenumber: 640
    functionLinenumberEnd: 661
    functionName: ConnectionManager::check_for_disconnect_pushes
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::reconnect
    - recv
    - Arc::downgrade
    - upgrade
    - load
    - as_ref
    - Self::send
    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:667,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:668,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:668,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:668,1
    - Dst: reconnect_if_io_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:669,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:670,1
    - Dst: reconnect_if_dropped
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:671,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 673
      start: 665
    functionDepth: 45
    functionLinenumber: 665
    functionLinenumberEnd: 673
    functionName: ConnectionManager::send_packed_command
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - map_err
    - clone
    - reconnect_if_io_error
    - PathBuf::clone
    - load
    - send_packed_command
    - reconnect_if_dropped
    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:685,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:686,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:686,1
    - Dst: PathBuf::clone
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:686,1
    - Dst: reconnect_if_io_error
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:687,1
    - Dst: send_packed_commands
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:688,1
    - Dst: reconnect_if_dropped
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:691,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 693
      start: 678
    functionDepth: 45
    functionLinenumber: 678
    functionLinenumberEnd: 693
    functionName: ConnectionManager::send_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - map_err
    - clone
    - reconnect_if_io_error
    - PathBuf::clone
    - send_packed_commands
    - load
    - reconnect_if_dropped
    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:703,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:703,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:704,1
    - Dst: update_with_request
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - action
    - args
    argTypes:
    - SubscriptionAction
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 708
      start: 695
    functionDepth: 45
    functionLinenumber: 695
    functionLinenumberEnd: 708
    functionName: ConnectionManager::update_subscription_tracker
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - lock
    - to_redis_args
    - update_with_request
    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:731,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:732,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:733,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:734,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:735,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:738,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 739
      start: 730
    functionDepth: 32
    functionLinenumber: 730
    functionLinenumberEnd: 739
    functionName: ConnectionManager::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    - ConnectionManager::update_subscription_tracker
    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:745,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:746,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:747,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:748,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:749,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:751,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 752
      start: 744
    functionDepth: 32
    functionLinenumber: 744
    functionLinenumberEnd: 752
    functionName: ConnectionManager::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    - ConnectionManager::update_subscription_tracker
    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:775,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:776,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:777,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:778,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:779,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:781,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 782
      start: 774
    functionDepth: 32
    functionLinenumber: 774
    functionLinenumberEnd: 782
    functionName: ConnectionManager::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    - ConnectionManager::update_subscription_tracker
    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:788,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:789,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:790,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:791,1
    - Dst: ConnectionManager::update_subscription_tracker
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:792,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:794,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 795
      start: 787
    functionDepth: 32
    functionLinenumber: 787
    functionLinenumberEnd: 795
    functionName: ConnectionManager::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    - ConnectionManager::update_subscription_tracker
    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:801,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:801,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 38
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: ConnectionManager::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - statistics
    - as_ref
    - 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:807,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:807,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 808
      start: 806
    functionDepth: 46
    functionLinenumber: 806
    functionLinenumberEnd: 808
    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:816,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - cmd
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 817
      start: 810
    functionDepth: 46
    functionLinenumber: 810
    functionLinenumberEnd: 817
    functionName: ConnectionManager::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - ConnectionManager::send_packed_commands
    - boxed
    linkageType: ''
    returnType: RedisFuture
    signature: 'fn req_packed_commands<''a>(&''a mut self,cmd: &''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:820,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 821
      start: 819
    functionDepth: 45
    functionLinenumber: 819
    functionLinenumberEnd: 821
    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:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 832
      start: 829
    functionDepth: 44
    functionLinenumber: 829
    functionLinenumberEnd: 832
    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:836,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 838
      start: 835
    functionDepth: 44
    functionLinenumber: 835
    functionLinenumberEnd: 838
    functionName: tests::test_connection_manager_config_pipeline_buffer_size_custom
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::set_pipeline_buffer_size
    - ConnectionManagerConfig::new
    linkageType: ''
    returnType: void
    signature: fn test_connection_manager_config_pipeline_buffer_size_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:843,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:843,1
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:844,1
    - Dst: Self::set_pipeline_buffer_size
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:844,1
    - Dst: Self::set_number_of_retries
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:844,1
    - Dst: ConnectionManager::new_lazy_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 849
      start: 841
    functionDepth: 44
    functionLinenumber: 841
    functionLinenumberEnd: 849
    functionName: tests::test_lazy_connection_manager_with_config
    functionSourceFile: /src/redis-rs/redis/src/aio/connection_manager.rs
    functionUses: 0
    functionsReached:
    - Self::set_number_of_retries
    - ConnectionManagerConfig::new
    - Self::set_pipeline_buffer_size
    - Client::open
    - ConnectionManager::new_lazy_with_config
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn test_lazy_connection_manager_with_config()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Client::open
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:854,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:854,1
    - Dst: ConnectionManagerConfig::new
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:855,1
    - Dst: Self::set_automatic_resubscription
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:855,1
    - Dst: ConnectionManager::new_lazy_with_config
      Src: /src/redis-rs/redis/src/aio/connection_manager.rs:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 858
      start: 852
    functionDepth: 44
    functionLinenumber: 852
    functionLinenumberEnd: 858
    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:122,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:123,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:123,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:123,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/pubsub.rs:125,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: 77
    argCount: 2
    argNames:
    - result
    argTypes:
    - Pin<&mut Self>
    - RedisResult<Value>
    constantsTouched: []
    func_position:
      end: 164
      start: 112
    functionDepth: 41
    functionLinenumber: 112
    functionLinenumberEnd: 164
    functionName: PipelineSink::handle_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 1
    functionsReached:
    - is_unrecoverable_error
    - send
    - Ok
    - Msg::from_owned_value
    - PipelineSink::project
    - impl combine::Parser::first
    - Msg::from_push_info
    - Err
    - pop_front
    - 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: 43
    functionLinenumber: 245
    functionLinenumberEnd: 268
    functionName: PubSubSink::new
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 1
    functionsReached:
    - PipelineSink::new
    - map
    - "(\n        PendingRequest::poll_recv"
    - forward
    - stream::poll_fn
    - tokio::sync::mpsc::unbounded_channel
    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: 42
    functionLinenumber: 270
    functionLinenumberEnd: 283
    functionName: PubSubSink::send_recv
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - send
    - oneshot::channel
    - map_err
    - Err
    - closed_connection_error
    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 Cmd::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: 33
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: PubSubSink::subscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - cmd
    - map
    - '&mut Cmd::get_packed_command'
    - PubSubSink::send_recv
    - Cmd::arg
    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 Cmd::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: 33
    functionLinenumber: 314
    functionLinenumberEnd: 317
    functionName: PubSubSink::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - cmd
    - map
    - '&mut Cmd::get_packed_command'
    - PubSubSink::send_recv
    - Cmd::arg
    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 Cmd::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: 33
    functionLinenumber: 331
    functionLinenumberEnd: 334
    functionName: PubSubSink::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - cmd
    - map
    - '&mut Cmd::get_packed_command'
    - PubSubSink::send_recv
    - Cmd::arg
    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 Cmd::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: 33
    functionLinenumber: 348
    functionLinenumberEnd: 353
    functionName: PubSubSink::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - cmd
    - map
    - '&mut Cmd::get_packed_command'
    - PubSubSink::send_recv
    - Cmd::arg
    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 Cmd::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: 33
    functionLinenumber: 356
    functionLinenumberEnd: 363
    functionName: PubSubSink::ping_message
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - cmd
    - Ok
    - '&mut Cmd::get_packed_command'
    - PubSubSink::send_recv
    - Cmd::arg
    - from_redis_value
    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: 33
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: PubSubSink::ping
    functionSourceFile: /src/redis-rs/redis/src/aio/pubsub.rs
    functionUses: 0
    functionsReached:
    - cmd
    - Ok
    - PubSubSink::send_recv
    - Cmd::get_packed_command
    - from_redis_value
    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:
    - PubSubStream::project
    - poll_recv
    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: RedisServer::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: RedisServer::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: RedisServer::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: 42
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Tokio::poll_write
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: 42
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: Tokio::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_flush
    - Pin::new
    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: RedisServer::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: RedisServer::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: RedisServer::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: 42
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: Tokio::poll_shutdown
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_shutdown
    - Pin::new
    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: RedisServer::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: RedisServer::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: RedisServer::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: 42
    functionLinenumber: 94
    functionLinenumberEnd: 106
    functionName: Tokio::poll_read
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_read
    - Pin::new
    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: 39
    functionLinenumber: 110
    functionLinenumberEnd: 117
    functionName: Tokio::connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - connect_tcp
    - map
    - 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: Tokio::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: 46
    functionLinenumber: 148
    functionLinenumberEnd: 165
    functionName: Tokio::connect_tcp_tls
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - Ok
    - map
    - connection::create_rustls_config
    - TlsConnector::from
    - Arc::new
    - connect_tcp
    - Box::new
    - Tokio::TcpTls
    - Self::connect
    - '&Option<TlsConnParams>::clone'
    - to_owned
    - rustls::pki_types::ServerName::try_from
    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: 38
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: Tokio::connect_unix
    functionSourceFile: /src/redis-rs/redis/src/aio/tokio.rs
    functionUses: 0
    functionsReached:
    - UnixStreamTokio::connect
    - map
    - 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: 43
    functionLinenumber: 23
    functionLinenumberEnd: 43
    functionName: Monitor::new
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 1
    functionsReached:
    - ValueCodec::default
    - send
    - cmd
    - Ok
    - ok_or_else
    - Self::framed
    - next
    - Cmd::get_packed_command
    - super::setup_connection
    - Box::new
    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: 39
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: convert_value
    functionSourceFile: /src/redis-rs/redis/src/aio/monitor.rs
    functionUses: 0
    functionsReached:
    - and_then
    - T::from_redis_value
    - Result::ok
    - impl combine::Parser::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
    - ::tokio::sync::mpsc::UnboundedSender::send
    - Ok
    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:
    - Err
    - std::sync::mpsc::Sender::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:229,1
    - Dst: send
      Src: /src/redis-rs/redis/src/aio/mod.rs:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - info
    argTypes:
    - PushInfo
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 230
    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:243,1
    - Dst: get_socket_addrs
      Src: /src/redis-rs/redis/src/aio/mod.rs:243,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/aio/mod.rs:243,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:244,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/aio/mod.rs:244,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/aio/mod.rs:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - '&''b str'
    - u16
    constantsTouched: []
    func_position:
      end: 246
      start: 238
    functionDepth: 38
    functionLinenumber: 238
    functionLinenumberEnd: 246
    functionName: DefaultAsyncDNSResolver::resolve
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    - into_iter
    - Ok
    - RedisResult::map
    - get_socket_addrs
    - Box::new
    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:250,1
    - Dst: ::tokio::net::lookup_host
      Src: /src/redis-rs/redis/src/aio/mod.rs:252,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/mod.rs:252,1
    - Dst: map
      Src: /src/redis-rs/redis/src/aio/mod.rs:252,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/aio/mod.rs:255,1
    - Dst: ::smol::net::resolve
      Src: /src/redis-rs/redis/src/aio/mod.rs:258,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/aio/mod.rs:258,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/aio/mod.rs:263,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/aio/mod.rs:264,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/aio/mod.rs:264,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/aio/mod.rs:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 2
    argNames:
    - host
    - port
    argTypes:
    - '&str'
    - u16
    constantsTouched: []
    func_position:
      end: 271
      start: 249
    functionDepth: 46
    functionLinenumber: 249
    functionLinenumberEnd: 271
    functionName: get_socket_addrs
    functionSourceFile: /src/redis-rs/redis/src/aio/mod.rs
    functionUses: 1
    functionsReached:
    - map
    - map_err
    - ::smol::net::resolve
    - Ok
    - collect
    - Runtime::locate
    - Err
    - RedisError::from
    - ::tokio::net::lookup_host
    - RedisResult::is_empty
    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: 48
    functionLinenumber: 15
    functionLinenumberEnd: 71
    functionName: connect_simple
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    - Ok
    - <T>::connect_tcp_tls
    - RedisResult::map
    - Self::resolve
    - <T>::connect_tcp
    - fail
    - futures_util::future::select_ok
    - <T>::connect_unix
    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 Cmd::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: 32
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: transaction_async
    functionSourceFile: /src/redis-rs/redis/src/aio/connection.rs
    functionUses: 6
    functionsReached:
    - cmd::pipe
    - Ok
    - cmd::cmd
    - is_empty
    - atomic
    - bool::clone
    - fail
    - Cmd::arg
    - Cmd::exec_async
    - '&mut Cmd::exec_async'
    - func
    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::<cluster_async::ClusterConnection>
    - assert_sync::<ConnectionManager>
    - assert_sync::<PubSub>
    - assert_sync::<MultiplexedConnection>
    - assert_sync::<Monitor>
    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: RedisServer::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: RedisServer::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: RedisServer::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: 42
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: Smol::poll_write
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Pin::new
    - RedisServer::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: RedisServer::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: RedisServer::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: RedisServer::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: 42
    functionLinenumber: 132
    functionLinenumberEnd: 140
    functionName: Smol::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_flush
    - Pin::new
    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: RedisServer::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: RedisServer::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: RedisServer::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: 42
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: Smol::poll_shutdown
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_shutdown
    - Pin::new
    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: RedisServer::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: RedisServer::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: RedisServer::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: 42
    functionLinenumber: 154
    functionLinenumberEnd: 166
    functionName: Smol::poll_read
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - RedisServer::poll_read
    - Pin::new
    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: 39
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: Smol::connect_tcp
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - map
    - Ok
    - connect_tcp
    - Self::Tcp
    - SmolWrapped::new
    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: 39
    functionLinenumber: 206
    functionLinenumberEnd: 225
    functionName: Smol::connect_tcp_tls
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - Ok
    - map
    - connection::create_rustls_config
    - TlsConnector::from
    - Arc::new
    - connect_tcp
    - Box::new
    - Self::connect
    - '&Option<TlsConnParams>::clone'
    - Self::TcpTls
    - SmolWrapped::new
    - to_owned
    - rustls::pki_types::ServerName::try_from
    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: 38
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: Smol::connect_unix
    functionSourceFile: /src/redis-rs/redis/src/aio/smol.rs
    functionUses: 0
    functionsReached:
    - map
    - Ok
    - SmolWrapped::new
    - Self::Unix
    - UnixStream::connect
    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: RedisServer::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: 42
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: CacheConfig::new
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 11
    functionsReached:
    - RedisServer::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: CacheConfig::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: 43
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: CacheConfig::default
    functionSourceFile: /src/redis-rs/redis/src/caching/config.rs
    functionUses: 8
    functionsReached:
    - CacheConfig::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:20,1
    - Dst: crate::types::from_redis_value
      Src: /src/redis-rs/redis/src/caching/cmd.rs:23,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/caching/cmd.rs:25,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cmd.rs:30,1
    - Dst: resolve
      Src: /src/redis-rs/redis/src/caching/cmd.rs:32,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cmd.rs:33,1
    - Dst: get_next_reply
      Src: /src/redis-rs/redis/src/caching/cmd.rs:36,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cmd.rs:37,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:42,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:44,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - cache_manager
    - result
    argTypes:
    - '&CacheManager'
    - Value
    constantsTouched: []
    func_position:
      end: 46
      start: 13
    functionDepth: 29
    functionLinenumber: 13
    functionLinenumberEnd: 46
    functionName: CacheablePipeline::resolve
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - Ok
    - resolve
    - crate::types::from_redis_value
    - get_next_reply
    - push
    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:81,1
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:85,1
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:85,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cmd.rs:87,1
    - Dst: bool::clone
      Src: /src/redis-rs/redis/src/caching/cmd.rs:90,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:96,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/caching/cmd.rs:98,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/caching/cmd.rs:98,1
    - Dst: impl Iterator<Item = Value>::next
      Src: /src/redis-rs/redis/src/caching/cmd.rs:111,1
    - Dst: std::iter::zip
      Src: /src/redis-rs/redis/src/caching/cmd.rs:113,1
    - Dst: std::iter::zip
      Src: /src/redis-rs/redis/src/caching/cmd.rs:113,1
    - Dst: Self::insert
      Src: /src/redis-rs/redis/src/caching/cmd.rs:116,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/caching/cmd.rs:119,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/caching/cmd.rs:127,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/caching/cmd.rs:127,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:132,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/caching/cmd.rs:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 63
    argCount: 2
    argNames:
    - cache_manager
    - replies
    argTypes:
    - '&CacheManager'
    - impl Iterator<Item = Value>
    constantsTouched: []
    func_position:
      end: 135
      start: 74
    functionDepth: 44
    functionLinenumber: 74
    functionLinenumberEnd: 135
    functionName: CacheableCommand::resolve
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - impl Iterator<Item = Value>::next
    - Self::insert
    - Ok
    - std::iter::zip
    - clone
    - bool::clone
    - Err
    - RedisError::from
    - Value::Array
    - get_next_reply
    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:139,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/caching/cmd.rs:140,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/caching/cmd.rs:140,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/caching/cmd.rs:140,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:141,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:146,1
    - Dst: Cmd::pttl
      Src: /src/redis-rs/redis/src/caching/cmd.rs:146,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/caching/cmd.rs:147,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/caching/cmd.rs:147,1
    - Dst: Cmd::new
      Src: /src/redis-rs/redis/src/caching/cmd.rs:156,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/caching/cmd.rs:157,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:162,1
    - Dst: add_command
      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: Cmd::pttl
      Src: /src/redis-rs/redis/src/caching/cmd.rs:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 56
    argCount: 2
    argNames:
    - cache_manager
    - pipeline
    argTypes:
    - '&CacheManager'
    - '&mut Pipeline'
    constantsTouched: []
    func_position:
      end: 170
      start: 137
    functionDepth: 32
    functionLinenumber: 137
    functionLinenumberEnd: 170
    functionName: CacheableCommand::pack_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 0
    functionsReached:
    - clone
    - arg
    - Cmd::pttl
    - Cmd::arg
    - '&mut Cmd::arg'
    - Cmd::new
    - add_command
    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:174,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/caching/cmd.rs:175,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/caching/cmd.rs:177,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/caching/cmd.rs:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - replies
    argTypes:
    - impl Iterator<Item = Value>
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: get_next_reply
    functionSourceFile: /src/redis-rs/redis/src/caching/cmd.rs
    functionUses: 2
    functionsReached:
    - Err
    - impl Iterator<Item = Value>::next
    - RedisError::from
    - Ok
    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: 45
    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:27,1
    - Dst: ShardedLRU::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:27,1
    - Dst: RedisServer::increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 34
      start: 26
    functionDepth: 42
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: CacheManager::new
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 2
    functionsReached:
    - RedisServer::increase_epoch
    - Arc::new
    - ShardedLRU::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:42,1
    - Dst: increase_epoch
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 37
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: CacheManager::clone_and_increase_epoch
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - clone
    - increase_epoch
    linkageType: ''
    returnType: CacheManager
    signature: pub(crate) fn clone_and_increase_epoch(&self) -> CacheManager
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - redis_key
    - redis_cmd
    argTypes:
    - '&''a [u8]'
    - '&''a [u8]'
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 45
    functionLinenumber: 48
    functionLinenumberEnd: 50
    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:60,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:64,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:64,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:64,1
    - Dst: std::cmp::min
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:65,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:69,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: 71
      start: 52
    functionDepth: 40
    functionLinenumber: 52
    functionLinenumberEnd: 71
    functionName: CacheManager::insert
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - insert
    - std::cmp::min
    - Instant::now
    - FromRedisValue::from_redis_value_ref
    - Duration::from_millis
    - add
    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:74,1
    - Dst: into
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 37
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: CacheManager::statistics
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - clone
    - into
    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:79,1
    - Dst: first
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:80,1
    - Dst: FromRedisValue::from_redis_value_ref
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:81,1
    - Dst: invalidate
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - kind
    - data
    argTypes:
    - '&PushKind'
    - '&[Value]'
    constantsTouched: []
    func_position:
      end: 87
      start: 77
    functionDepth: 40
    functionLinenumber: 77
    functionLinenumberEnd: 87
    functionName: CacheManager::handle_push_value
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - invalidate
    - first
    - FromRedisValue::from_redis_value_ref
    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:91,1
    - Dst: Cmd::get_cache_config
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:93,1
    - Dst: '&Option::as_ref'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:93,1
    - Dst: is_some_and
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:93,1
    - Dst: CacheManager::get_cached_cmd_inner
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 104
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 104
    functionName: CacheManager::get_cached_cmd
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - '&Option::as_ref'
    - CacheManager::get_cached_cmd_inner
    - Cmd::get_cache_config
    - is_some_and
    linkageType: ''
    returnType: PrepareCacheResult
    signature: 'pub(crate) fn get_cached_cmd<''a>(&self, cmd: &''a Cmd) -> PrepareCacheResult<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::get_cache_config
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:107,1
    - Dst: '&Option::as_ref'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:107,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:107,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:107,1
    - Dst: Instant::now
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:113,1
    - Dst: add
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 114
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 114
    functionName: CacheManager::calculate_expiration_time
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - and_then
    - '&Option::as_ref'
    - Cmd::get_cache_config
    - Instant::now
    - unwrap_or
    - add
    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:123,1
    - Dst: extend_from_slice
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:124,1
    - Dst: extend_from_slice
      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:127,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: 129
      start: 116
    functionDepth: 45
    functionLinenumber: 116
    functionLinenumberEnd: 129
    functionName: CacheManager::prepare_key_buffer
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - clear
    - extend_from_slice
    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:132,1
    - Dst: impl Clone + ExactSizeIterator::skip
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:132,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:132,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:135,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 47
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: CacheManager::extract_simple_arguments
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Some
    - impl Clone + ExactSizeIterator::skip
    - collect
    - Cmd::args_iter
    - filter_map
    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:150,1
    - Dst: bool::then
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:151,1
    - Dst: Vec::pop
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:152,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:152,1
    - Dst: '&mut Vec<&''a [u8]>::push'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:152,1
    - Dst: flatten
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:151,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:154,1
    - Dst: Vec::iter
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:156,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:156,1
    - Dst: CacheManager::prepare_key_buffer
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:157,1
    - Dst: CacheManager::get
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:164,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:165,1
    - Dst: push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:167,1
    - Dst: RedisFuture::push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:168,1
    - Dst: RedisServer::clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:172,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: 178
      start: 141
    functionDepth: 48
    functionLinenumber: 141
    functionLinenumberEnd: 178
    functionName: CacheManager::process_multi_key_arguments
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - RedisServer::clone
    - bool::then
    - RedisFuture::push
    - flatten
    - inspect
    - enumerate
    - CacheManager::extract_simple_arguments
    - Vec::iter
    - CacheManager::prepare_key_buffer
    - Vec::pop
    - '&mut Vec<&''a [u8]>::push'
    - CacheManager::get
    - push
    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:187,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:188,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:189,1
    - Dst: '&''a str::starts_with'
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:191,1
    - Dst: CacheManager::process_multi_key_arguments
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:193,1
    - Dst: RedisFuture::is_empty
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:202,1
    - Dst: PrepareCacheResult::Cached
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:203,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:203,1
    - Dst: PrepareCacheResult::NotCached
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:206,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: 213
      start: 180
    functionDepth: 44
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: CacheManager::handle_multi_key_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - RedisFuture::is_empty
    - Vec::new
    - CacheManager::process_multi_key_arguments
    - '&''a str::starts_with'
    - PrepareCacheResult::NotCached
    - PrepareCacheResult::Cached
    - Value::Array
    linkageType: ''
    returnType: PrepareCacheResult
    signature: 'fn handle_multi_key_command<''a>(&self,cmd: &''a Cmd,command_name_str:
      &''a str,single_command_name: &[u8],client_side_expire: Instant,) -> PrepareCacheResult<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Cmd::arg_idx
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:220,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:225,1
    - Dst: CacheManager::get
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:227,1
    - Dst: PrepareCacheResult::Cached
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:228,1
    - Dst: PrepareCacheResult::NotCached
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:231,1
    - Dst: CacheableCommand::Single
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - cmd
    - client_side_expire
    argTypes:
    - '&''a Cmd'
    - Instant
    constantsTouched: []
    func_position:
      end: 239
      start: 215
    functionDepth: 47
    functionLinenumber: 215
    functionLinenumberEnd: 239
    functionName: CacheManager::handle_single_key_command
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - CacheableCommand::Single
    - as_slice
    - PrepareCacheResult::NotCached
    - PrepareCacheResult::Cached
    - Cmd::arg_idx
    - CacheManager::get
    linkageType: ''
    returnType: PrepareCacheResult
    signature: 'fn handle_single_key_command<''a>(&self,cmd: &''a Cmd,client_side_expire:
      Instant,) -> PrepareCacheResult<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: cmd::cmd_len
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:247,1
    - Dst: Cmd::arg_idx
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:251,1
    - Dst: CacheManager::calculate_expiration_time
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:256,1
    - Dst: is_multi_key
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:258,1
    - Dst: CacheManager::handle_multi_key_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:259,1
    - Dst: crate::commands::is_cachable_cmd
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:267,1
    - Dst: CacheManager::handle_single_key_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:268,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 272
      start: 246
    functionDepth: 38
    functionLinenumber: 246
    functionLinenumberEnd: 272
    functionName: CacheManager::get_cached_cmd_inner
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 1
    functionsReached:
    - CacheManager::handle_multi_key_command
    - crate::commands::is_cachable_cmd
    - CacheManager::calculate_expiration_time
    - CacheManager::handle_single_key_command
    - is_multi_key
    - cmd::cmd_len
    - Cmd::arg_idx
    linkageType: ''
    returnType: PrepareCacheResult
    signature: 'fn get_cached_cmd_inner<''a>(&self, cmd: &''a Cmd) -> PrepareCacheResult<''a>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Pipeline::new
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:282,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:284,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:284,1
    - Dst: contains
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:285,1
    - Dst: RedisFuture::push
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:286,1
    - Dst: Vec::add_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:287,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:287,1
    - Dst: CacheManager::get_cached_cmd
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:290,1
    - Dst: pack_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:294,1
    - Dst: Vec::add_command
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:298,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/caching/cache_manager.rs:298,1
    - Dst: RedisFuture::push
      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: 56
    argCount: 1
    argNames:
    - requested_pipeline
    argTypes:
    - '&''a Pipeline'
    constantsTouched: []
    func_position:
      end: 317
      start: 276
    functionDepth: 45
    functionLinenumber: 276
    functionLinenumberEnd: 317
    functionName: CacheManager::get_cached_pipeline
    functionSourceFile: /src/redis-rs/redis/src/caching/cache_manager.rs
    functionUses: 0
    functionsReached:
    - iter
    - Vec::atomic
    - len
    - contains
    - pack_command
    - Pipeline::new
    - enumerate
    - Cmd::clone
    - Vec::add_command
    - RedisFuture::push
    - CacheManager::get_cached_cmd
    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: 45
    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
    - Duration::from_secs
    - Duration::from_millis
    - CacheManager::new
    - Value::Int
    - add
    - '&str::as_slice'
    - std::thread::sleep
    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: CacheManager::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: 45
    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:
    - insert
    - Instant::now
    - CacheConfig::new
    - add
    - do_miss_gets
    - Duration::from_secs
    - do_inserts
    - CacheManager::new
    - Value::Int
    - Self::clone_and_increase_epoch
    - do_hit_gets
    - '&str::as_slice'
    - CacheManager::clone_and_increase_epoch
    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: RedisServer::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: 46
    functionLinenumber: 37
    functionLinenumberEnd: 59
    functionName: ShardedLRU::new
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 1
    functionsReached:
    - RedisServer::unwrap
    - NonZeroUsize::get
    - std::sync::Mutex::new
    - AtomicUsize::new
    - LruCache::new
    - Arc::new
    - Vec::with_capacity
    - Self::push
    - NonZeroUsize::new
    - Statistics::default
    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: 44
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: ShardedLRU::get_shard
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - Self::lock
    - Self::unwrap_or_else
    - TlsFilePaths::finish
    - len
    - TlsFilePaths::write
    - into_inner
    - DefaultHasher::new
    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: 45
    functionLinenumber: 69
    functionLinenumberEnd: 100
    functionName: ShardedLRU::get
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - Some
    - std::sync::MutexGuard::pop
    - Instant::now
    - increase_miss
    - clone
    - len
    - std::sync::MutexGuard::get_mut
    - drop
    - increase_hit
    - increase_invalidate
    - ShardedLRU::get_shard
    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:120,1
    - Dst: '&[u8]::to_vec'
      Src: /src/redis-rs/redis/src/caching/sharded_lru.rs:121,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: 43
    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: 45
    functionLinenumber: 102
    functionLinenumberEnd: 139
    functionName: ShardedLRU::insert
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - std::sync::MutexGuard::peek_mut
    - '&[u8]::to_vec'
    - ShardedLRU::get_shard
    - std::sync::MutexGuard::push
    - 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: 45
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: ShardedLRU::invalidate
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - std::sync::MutexGuard::pop
    - increase_invalidate
    - len
    - 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: RedisServer::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: 47
    functionLinenumber: 164
    functionLinenumberEnd: 202
    functionName: tests::test_expire
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - RedisServer::unwrap
    - Self::insert
    - ShardedLRU::new
    - Instant::now
    - Duration::from_secs
    - Duration::from_millis
    - NonZeroUsize::new
    - add
    - Value::Boolean
    - std::thread::sleep
    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: RedisServer::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: 47
    functionLinenumber: 205
    functionLinenumberEnd: 241
    functionName: tests::test_different_cmd_keys
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - RedisServer::unwrap
    - Self::insert
    - ShardedLRU::new
    - Instant::now
    - Duration::from_secs
    - Duration::from_millis
    - Value::Int
    - NonZeroUsize::new
    - add
    - std::thread::sleep
    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: RedisServer::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: 47
    functionLinenumber: 244
    functionLinenumberEnd: 270
    functionName: tests::test_invalidate
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - to_vec
    - RedisServer::unwrap
    - Self::insert
    - ShardedLRU::new
    - Instant::now
    - Duration::from_secs
    - Self::invalidate
    - NonZeroUsize::new
    - add
    - Value::Boolean
    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: RedisServer::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: 47
    functionLinenumber: 273
    functionLinenumberEnd: 312
    functionName: tests::test_epoch_change
    functionSourceFile: /src/redis-rs/redis/src/caching/sharded_lru.rs
    functionUses: 0
    functionsReached:
    - RedisServer::unwrap
    - Self::insert
    - ShardedLRU::new
    - Instant::now
    - as_bytes
    - Duration::from_secs
    - NonZeroUsize::new
    - add
    - Value::Boolean
    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: 44
    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: 45
    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: Some
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - slot
    argTypes:
    - u16
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: SlotRangeMap::get
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - range
    - and_then
    - next
    - 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:33,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 47
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: SlotRangeMap::values
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - values
    - map
    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:38,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 46
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: SlotRangeMap::iter
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 45
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 44
    functionLinenumber: 48
    functionLinenumberEnd: 50
    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:59,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:60,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 69
      start: 58
    functionDepth: 45
    functionLinenumber: 58
    functionLinenumberEnd: 69
    functionName: tests::point_lookup_within_range
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - insert
    - SlotRangeMap::new
    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:73,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:74,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 45
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: tests::point_lookup_in_gaps_returns_none
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - insert
    - SlotRangeMap::new
    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:84,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:85,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:86,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:88,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 45
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: tests::iter_yields_ranges_in_order
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_range_map.rs
    functionUses: 0
    functionsReached:
    - iter
    - insert
    - collect
    - SlotRangeMap::new
    linkageType: ''
    returnType: void
    signature: fn iter_yields_ranges_in_order()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: crc16::State::<crc16::XMODEM>::calculate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 15
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 15
    functionName: slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - crc16::State::<crc16::XMODEM>::calculate
    linkageType: ''
    returnType: u16
    signature: 'fn slot(key: &[u8]) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: get_hashtag
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:19,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: get_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - get_hashtag
    - slot
    linkageType: ''
    returnType: u16
    signature: 'pub(crate) fn get_slot(key: &[u8]) -> u16'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: impl combine::Parser::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:106,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - Option<Route>
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: SingleNodeRoutingInfo::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - impl combine::Parser::map
    - unwrap_or
    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:138,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:140,1
    - Dst: '&''a impl Routable::arg_idx'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:140,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:142,1
    - Dst: '&''a impl Routable::arg_idx'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:142,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: 145
      start: 131
    functionDepth: 34
    functionLinenumber: 131
    functionLinenumberEnd: 145
    functionName: command_for_multi_slot_indices
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg
    - '&''a impl Routable::arg_idx'
    - Cmd::new
    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:153,1
    - Dst: std::iter::Chain::try_fold
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:153,1
    - Dst: RedisResult::Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:157,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:158,1
    - Dst: std::cmp::min
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:167,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:170,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:172,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:172,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - values
    - op
    argTypes:
    - Vec<Value>
    - AggregateOp
    constantsTouched: []
    func_position:
      end: 173
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 173
    functionName: aggregate
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::try_fold
    - into
    - std::cmp::min
    - Ok
    - Self::into_iter
    - Value::Int
    - 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:180,1
    - Dst: std::iter::Chain::try_fold
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:180,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:180,1
    - Dst: RedisResult::Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:184,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:185,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:193,1
    - Dst: Self::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:198,1
    - Dst: std::iter::Chain::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:198,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:202,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:202,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:213,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:215,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:215,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:216,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:216,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:218,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 51
    argCount: 2
    argNames:
    - values
    - op
    argTypes:
    - Vec<Value>
    - LogicalAggregateOp
    constantsTouched: []
    func_position:
      end: 221
      start: 176
    functionDepth: 44
    functionLinenumber: 176
    functionLinenumberEnd: 221
    functionName: logical_aggregate
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - std::iter::Chain::try_fold
    - into
    - Vec::new
    - Ok
    - RedisResult::into_iter
    - is_empty
    - collect
    - std::iter::Chain::enumerate
    - Self::into_iter
    - Err
    - std::iter::Chain::map
    - Value::Int
    - Value::Array
    - RedisResult::Err
    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:224,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:229,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:231,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:233,1
    - Dst: entry
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:234,1
    - Dst: or_insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:234,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:236,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:236,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:243,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:243,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:248,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:248,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:257,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:257,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:259,1
    - Dst: Value::Int
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:259,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:257,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:262,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 53
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 263
      start: 223
    functionDepth: 44
    functionLinenumber: 223
    functionLinenumberEnd: 263
    functionName: combine_map_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - entry
    - into
    - into_iter
    - or_insert
    - Value::BulkString
    - Ok
    - collect
    - Err
    - HashMap::new
    - next
    - std::iter::Chain::map
    - Value::Int
    - Value::Map
    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:267,1
    - Dst: RedisResult::extend
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:271,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:273,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:273,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:282,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - values
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 283
      start: 266
    functionDepth: 44
    functionLinenumber: 266
    functionLinenumberEnd: 283
    functionName: combine_array_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - into
    - Vec::new
    - Ok
    - Err
    - RedisResult::extend
    - Value::Array
    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:318,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:319,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:319,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:328,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::Borrowed
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:334,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:337,1
    - Dst: '&''a [(Route, Vec<usize>)]::iter'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:337,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:337,1
    - Dst: Cow::Borrowed
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:339,1
    - Dst: Cmd::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:339,1
    - Dst: check_indices_input
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:345,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:346,1
    - Dst: '&''a [(Route, Vec<usize>)]::iter'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:346,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:346,1
    - Dst: Cow::Owned
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:347,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:348,1
    - Dst: RedisResult::step_by
      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: "iter()\n                        .step_by(3)\n                        .map(|idx|\
        \ idx / 3)\n                        .collect::<Vec<usize>>"
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:348,1
    - Dst: check_indices_input
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:361,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:362,1
    - Dst: '&''a [(Route, Vec<usize>)]::iter'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:362,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:362,1
    - Dst: Cow::Owned
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:363,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:364,1
    - Dst: RedisResult::step_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:364,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:364,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:364,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: 373
      start: 312
    functionDepth: 36
    functionLinenumber: 312
    functionLinenumberEnd: 373
    functionName: calculate_multi_slot_result_indices
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - check_indices_input
    - Ok
    - Cmd::len
    - map
    - RedisResult::step_by
    - '&''a [(Route, Vec<usize>)]::iter'
    - "iter()\n                        .step_by(2)\n                        .map(|idx|\
      \ idx / 2)\n                        .collect::<Vec<usize>>"
    - "iter()\n                        .step_by(3)\n                        .map(|idx|\
      \ idx / 3)\n                        .collect::<Vec<usize>>"
    - Cmd::iter
    - Err
    - RedisError::from
    - Cow::Owned
    - Cow::Borrowed
    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:401,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:402,1
    - Dst: RedisResult::resize
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:403,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:404,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:404,1
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:405,1
    - Dst: Self::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:410,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:410,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:411,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:411,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:422,1
    - Dst: std::iter::Chain::zip
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:422,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:426,1
    - Dst: zip
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:426,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:431,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:431,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:440,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:440,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: 441
      start: 396
    functionDepth: 37
    functionLinenumber: 396
    functionLinenumberEnd: 441
    functionName: combine_and_sort_array_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - calculate_multi_slot_result_indices
    - Vec::new
    - iter
    - into
    - Ok
    - std::iter::Chain::zip
    - RedisResult::len
    - fold
    - zip
    - Self::len
    - Err
    - RedisError::from
    - Value::Array
    - Self::iter
    - RedisResult::resize
    - RedisResult::into_iter
    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: get_slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:444,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:446,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - is_readonly
    - key
    argTypes:
    - bool
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 450
      start: 443
    functionDepth: 2
    functionLinenumber: 443
    functionLinenumberEnd: 450
    functionName: get_route
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Route::new
    - get_slot
    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:503,1
    - Dst: HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:504,1
    - Dst: Option::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:509,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:510,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:511,1
    - Dst: Option::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:513,1
    - Dst: get_route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:514,1
    - Dst: RedisServer::entry
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:515,1
    - Dst: or_insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:515,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:515,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:517,1
    - Dst: incr_add_next_arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:523,1
    - Dst: Option::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:527,1
    - Dst: Option::is_none
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:527,1
    - Dst: RedisServer::iter_mut
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:533,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:534,1
    - Dst: incr_add_next_arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:541,1
    - Dst: incr_add_next_arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:543,1
    - Dst: RedisServer::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:549,1
    - Dst: std::iter::Chain::collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:549,1
    - Dst: RedisServer::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:550,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:554,1
    - Dst: RedisServer::len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:554,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:555,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:555,1
    - Dst: RedisServer::pop
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:555,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:555,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:557,1
    - Dst: MultipleNodeRoutingInfo::MultiSlot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:558,1
    - Dst: ResponsePolicy::for_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:559,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: 562
      start: 494
    functionDepth: 44
    functionLinenumber: 494
    functionLinenumberEnd: 562
    functionName: multi_shard
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Some
    - SingleNodeRoutingInfo::SpecificNode
    - RedisServer::into_iter
    - commands::is_readonly_cmd
    - std::iter::Chain::collect
    - RedisServer::pop
    - ResponsePolicy::for_command
    - HashMap::new
    - push
    - RedisServer::iter_mut
    - RedisServer::is_empty
    - Vec::new
    - RedisServer::len
    - RoutingInfo::MultiNode
    - incr_add_next_arg
    - Option::arg_idx
    - RoutingInfo::SingleNode
    - unwrap
    - get_route
    - or_insert
    - RedisServer::entry
    - MultipleNodeRoutingInfo::MultiSlot
    - Option::is_none
    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:568,1
    - Dst: ResponsePolicy::AggregateLogical
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:568,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:572,1
    - Dst: ResponsePolicy::Aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:572,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:575,1
    - Dst: ResponsePolicy::Aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:575,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:582,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:591,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:593,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:595,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:598,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:601,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:603,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:606,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 613
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 613
    functionName: ResponsePolicy::for_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - Some
    - ResponsePolicy::AggregateLogical
    - ResponsePolicy::Aggregate
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn for_command(cmd: &[u8]) -> Option<ResponsePolicy>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RouteBy::MultiShard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:684,1
    - Dst: RouteBy::MultiShard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:687,1
    - Dst: RouteBy::MultiShard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:688,1
    - Dst: RouteBy::MultiShard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:689,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 785
      start: 630
    functionDepth: 0
    functionLinenumber: 630
    functionLinenumberEnd: 785
    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:793,1
    - Dst: base_routing
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:794,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:795,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:795,1
    - Dst: ResponsePolicy::for_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:797,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:800,1
    - Dst: RoutingInfo::MultiNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:800,1
    - Dst: ResponsePolicy::for_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:802,1
    - Dst: multi_shard
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:805,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:807,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:807,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:810,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:810,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:812,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:812,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:810,1
    - Dst: parse::<u64>
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:813,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:813,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:815,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:815,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:817,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:817,1
    - Dst: RoutingInfo::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:817,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:821,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:821,1
    - Dst: RoutingInfo::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::<u64>
      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: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:829,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:829,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:831,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:831,1
    - Dst: RoutingInfo::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:831,1
    - Dst: ConnectionAddr::position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:836,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:837,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:837,1
    - Dst: RoutingInfo::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:838,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:841,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:841,1
    - Dst: std::str::from_utf8
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:843,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:843,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:841,1
    - Dst: parse::<u16>
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:844,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:844,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:841,1
    - Dst: RoutingInfo::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: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:846,1
    - Dst: ConnectionAddr::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:852,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:853,1
    - Dst: RoutingInfo::for_key
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:853,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:854,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:854,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 118
    argCount: 1
    argNames:
    - r
    argTypes:
    - '&R'
    constantsTouched: []
    func_position:
      end: 859
      start: 789
    functionDepth: 41
    functionLinenumber: 789
    functionLinenumberEnd: 859
    functionName: RoutingInfo::for_routable
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Some
    - SingleNodeRoutingInfo::SpecificNode
    - base_routing
    - ResponsePolicy::for_command
    - multi_shard
    - parse::<u16>
    - Option::and_then
    - parse::<u64>
    - map
    - std::str::from_utf8
    - ConnectionAddr::position
    - Route::new
    - RoutingInfo::MultiNode
    - RoutingInfo::SingleNode
    - ConnectionAddr::arg_idx
    - and_then
    - ConnectionAddr::command
    - ok
    - Option::map
    - RoutingInfo::for_key
    linkageType: ''
    returnType: Option
    signature: 'pub(crate) fn for_routable<R>(r: &R) -> Option<RoutingInfo>whereR:
      Routable + ?Sized,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:862,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:862,1
    - Dst: get_route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:862,1
    - Dst: commands::is_readonly_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:863,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cmd
    - key
    argTypes:
    - '&[u8]'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 866
      start: 861
    functionDepth: 3
    functionLinenumber: 861
    functionLinenumberEnd: 866
    functionName: RoutingInfo::for_key
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - get_route
    - commands::is_readonly_cmd
    - RoutingInfo::SingleNode
    - SingleNodeRoutingInfo::SpecificNode
    linkageType: ''
    returnType: RoutingInfo
    signature: 'fn for_key(cmd: &[u8], key: &[u8]) -> RoutingInfo'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Routable::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:874,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:874,1
    - Dst: to_ascii_uppercase
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:874,1
    - Dst: as_slice
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:875,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:880,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:884,1
    - Dst: Routable::arg_idx
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:884,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:886,1
    - Dst: reserve
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:887,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:887,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:888,1
    - Dst: extend
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:889,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:890,1
    - Dst: make_ascii_uppercase
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 896
      start: 873
    functionDepth: 40
    functionLinenumber: 873
    functionLinenumberEnd: 896
    functionName: Routable::command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Some
    - extend
    - make_ascii_uppercase
    - len
    - as_slice
    - Option::map
    - to_ascii_uppercase
    - reserve
    - Routable::arg_idx
    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:911,1
    - Dst: impl Clone + ExactSizeIterator::position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:911,1
    - Dst: ServerType::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - candidate
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 915
      start: 910
    functionDepth: 47
    functionLinenumber: 910
    functionLinenumberEnd: 915
    functionName: Cmd::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Cmd::args_iter
    - ServerType::eq_ignore_ascii_case
    - 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:921,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:922,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 927
      start: 919
    functionDepth: 46
    functionLinenumber: 919
    functionLinenumberEnd: 927
    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:931,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:931,1
    - Dst: ServerType::eq_ignore_ascii_case
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:932,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - candidate
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 937
      start: 929
    functionDepth: 46
    functionLinenumber: 929
    functionLinenumberEnd: 937
    functionName: Value::position
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - iter
    - position
    - ServerType::eq_ignore_ascii_case
    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:962,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - slot
    - slot_addr
    argTypes:
    - u16
    - SlotAddr
    constantsTouched: []
    func_position:
      end: 963
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 963
    functionName: Route::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 3
    functionsReached:
    - Self
    linkageType: ''
    returnType: Self
    signature: 'pub fn new(slot: u16, 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::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:977,1
    - Dst: random_slot
      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: 44
    functionLinenumber: 976
    functionLinenumberEnd: 978
    functionName: Route::new_random_primary
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - random_slot
    - Self::new
    linkageType: ''
    returnType: Self
    signature: pub(crate) fn new_random_primary() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:983,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 985
    functionName: random_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - rand::rng
    - random_range
    linkageType: ''
    returnType: u16
    signature: fn random_slot() -> u16
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:988,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:988,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:990,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:990,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:993,1
    - Dst: then_some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 1
    argNames:
    - key
    argTypes:
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 994
      start: 987
    functionDepth: 46
    functionLinenumber: 987
    functionLinenumberEnd: 994
    functionName: get_hashtag
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 1
    functionsReached:
    - then_some
    - iter
    - position
    - is_empty
    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:1009,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1010,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1010,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1010,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1012,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1013,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1013,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1013,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1020,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1021,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1021,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1008
    functionDepth: 35
    functionLinenumber: 1008
    functionLinenumberEnd: 1027
    functionName: tests_routing::test_routing_info_mixed_capatalization
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg
    - cmd
    - arg
    - '&mut 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:1034,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1035,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1036,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1039,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1040,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1041,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1044,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1045,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1046,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1049,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1050,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1050,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1051,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1054,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1055,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1055,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1055,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1056,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1059,1
    - Dst: RedisResult::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1060,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1060,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1060,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1061,1
    - 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: 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: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1070,1
    - Dst: 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: parse_redis_value
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1074,1
    - Dst: Cmd::get_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1074,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1074,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1083,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1083,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1083,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1126,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1127,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1128,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1129,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1140,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1140,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1140,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1141,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1141,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1141,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1159,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1159,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1159,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1159,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1163,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1163,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1164,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1164,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1164,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1168,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1168,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1168,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1168,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1168,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1168,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1174,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1174,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1175,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1175,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1176,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1182,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1182,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1182,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1183,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1183,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1184,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1184,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1185,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1191,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1191,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1191,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1191,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1191,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1191,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1197,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1197,1
    - Dst: SingleNodeRoutingInfo::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1198,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1198,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1199,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1205,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::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1214,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1215,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 212
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1228
      start: 1030
    functionDepth: 35
    functionLinenumber: 1030
    functionLinenumberEnd: 1228
    functionName: tests_routing::test_routing_info
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Some
    - cmd
    - RedisResult::arg
    - parse_redis_value
    - SingleNodeRoutingInfo::SpecificNode
    - slot
    - arg
    - Cmd::arg
    - Route::new
    - RedisResult::unwrap
    - Cmd::get_packed_command
    - '&mut Cmd::arg'
    - RoutingInfo::SingleNode
    - push
    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: 1250
      start: 1231
    functionDepth: 0
    functionLinenumber: 1231
    functionLinenumberEnd: 1250
    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:1254,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1255,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1255,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1255,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1255,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1256,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1257,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1258,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1258,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1259,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1259,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1260,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1260,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1270,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1271,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1271,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1271,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1271,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1272,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1273,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1274,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1274,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1275,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1275,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1276,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1285
      start: 1253
    functionDepth: 35
    functionLinenumber: 1253
    functionLinenumberEnd: 1285
    functionName: tests_routing::test_multi_shard_keys_only
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - cmd
    - RedisServer::insert
    - arg
    - Cmd::arg
    - Route
    - crate::cmd
    - '&mut Cmd::arg'
    - std::collections::HashMap::new
    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:1289,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1290,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1296,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1297,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1298,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1298,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1299,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1288
    functionDepth: 35
    functionLinenumber: 1288
    functionLinenumberEnd: 1308
    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
    - cmd
    - RedisServer::insert
    - arg
    - Cmd::arg
    - Route
    - '&mut Cmd::arg'
    - std::collections::HashMap::new
    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:1312,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1313,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1313,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1313,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1313,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1313,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1318,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1319,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1320,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1320,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1321,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1321,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1322,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1311
    functionDepth: 35
    functionLinenumber: 1311
    functionLinenumberEnd: 1331
    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
    - cmd
    - RedisServer::insert
    - arg
    - Cmd::arg
    - Route
    - '&mut Cmd::arg'
    - std::collections::HashMap::new
    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:1335,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1336,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1336,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1336,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1336,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1336,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1336,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1336,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1336,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1336,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1346,1
    - Dst: std::collections::HashMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1347,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1348,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1348,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1349,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1349,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1334
    functionDepth: 40
    functionLinenumber: 1334
    functionLinenumberEnd: 1358
    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
    - cmd
    - RedisServer::insert
    - arg
    - Cmd::arg
    - Route
    - '&mut Cmd::arg'
    - std::collections::HashMap::new
    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:1362,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1363,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1363,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1363,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1363,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1368,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1375,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1375,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1375,1
    - Dst: Cmd::sort_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: Option::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: next
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1378,1
    - Dst: Cmd::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1380,1
    - Dst: std::iter::Chain::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1380,1
    - Dst: command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1381,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1381,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1384,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1384,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1361
    functionDepth: 40
    functionLinenumber: 1361
    functionLinenumberEnd: 1389
    functionName: tests_routing::test_command_creation_for_multi_shard
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - cmd
    - arg
    - command_for_multi_slot_indices
    - Option::unwrap
    - into_iter
    - next
    - Cmd::sort_by
    - iter
    - Cmd::into_iter
    - Cmd::iter
    - Option::iter
    - enumerate
    - '&mut Cmd::arg'
    - unwrap
    - RoutingInfo::for_routable
    - collect
    - std::iter::Chain::enumerate
    - Cmd::arg
    - std::iter::Chain::map
    - cmp
    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:1393,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1394,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1394,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1394,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1392
    functionDepth: 40
    functionLinenumber: 1392
    functionLinenumberEnd: 1406
    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
    - cmd
    - arg
    - Cmd::arg
    - '&mut Cmd::arg'
    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:1411,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1412,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1416,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1417,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1420,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1421,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1409
    functionDepth: 43
    functionLinenumber: 1409
    functionLinenumberEnd: 1438
    functionName: tests_routing::test_combining_results_into_single_array_only_keys
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - Route
    - super::combine_and_sort_array_results
    - 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:1443,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1444,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1445,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1448,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1441
    functionDepth: 43
    functionLinenumber: 1441
    functionLinenumberEnd: 1462
    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:
    - Route
    - super::combine_and_sort_array_results
    - 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:1467,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1468,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1469,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1472,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1465
    functionDepth: 43
    functionLinenumber: 1465
    functionLinenumberEnd: 1486
    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:
    - Route
    - super::combine_and_sort_array_results
    - 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:1491,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1492,1
    - Dst: super::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1493,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1496,1
    - Dst: Route
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1510
      start: 1489
    functionDepth: 43
    functionLinenumber: 1489
    functionLinenumberEnd: 1510
    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:
    - Route
    - super::combine_and_sort_array_results
    - 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:1515,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1515,1
    - Dst: super::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1532,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1532,1
    - Dst: sort_unstable_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1538,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1539,1
    - Dst: sort_unstable_by
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1546,1
    - Dst: cmp
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1547,1
    - Dst: super::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/routing.rs:1553,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1513
    functionDepth: 50
    functionLinenumber: 1513
    functionLinenumberEnd: 1555
    functionName: tests_routing::test_combine_map_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/routing.rs
    functionUses: 0
    functionsReached:
    - cmp
    - sort_unstable_by
    - RedisResult::unwrap
    - super::combine_map_results
    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: 96
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 96
    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: pow
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:101,1
    - Dst: min
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:102,1
    - Dst: max
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:102,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:105,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:105,1
    - Dst: Duration::from_millis
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - retry
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 107
      start: 100
    functionDepth: 40
    functionLinenumber: 100
    functionLinenumberEnd: 107
    functionName: RetryParams::wait_time_for_retry
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - rand::rng
    - random_range
    - max
    - min
    - pow
    - 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:147,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:147,1
    - Dst: transpose
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:149,1
    - Dst: None::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:154,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:162,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:168,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:168,1
    - Dst: CacheManager::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:171,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:173,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:180,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 47
    argCount: 1
    argNames:
    - value
    argTypes:
    - BuilderParams
    constantsTouched: []
    func_position:
      end: 202
      start: 141
    functionDepth: 45
    functionLinenumber: 141
    functionLinenumberEnd: 202
    functionName: ClusterParams::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - None::unwrap_or
    - map
    - Ok
    - unwrap_or
    - as_ref
    - CacheManager::new
    - unwrap
    - transpose
    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:212,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:217,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 221
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 221
    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:238,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:238,1
    - Dst: into_connection_info
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:240,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:238,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - initial_nodes
    argTypes:
    - impl IntoIterator<Item = T>
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 50
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: ClusterClientBuilder::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 3
    functionsReached:
    - into_iter
    - into_connection_info
    - Default::default
    - collect
    - std::iter::Chain::map
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn new<T: IntoConnectionInfo>(initial_nodes: impl IntoIterator<Item
      = T>,) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: first
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:261,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:264,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:264,1
    - Dst: ClusterParams::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:271,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:272,1
    - Dst: clone_from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:273,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:275,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:275,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:275,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:280,1
    - Dst: clone_from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:281,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:283,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:283,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:283,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:288,1
    - Dst: tls_mode
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:289,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:294,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:295,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:304,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:304,1
    - Dst: '&''static str::is_some'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:310,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:310,1
    - Dst: '&''static str::as_deref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:310,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:311,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:311,1
    - Dst: '&''static str::is_some'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:317,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:317,1
    - Dst: '&''static str::as_deref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:317,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:318,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:318,1
    - Dst: ProtocolVersion::is_some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:323,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:323,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:324,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:324,1
    - Dst: TlsFilePaths::is_some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:330,1
    - Dst: tls_mode
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:330,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:331,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:331,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:338,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 152
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 258
    functionDepth: 46
    functionLinenumber: 258
    functionLinenumberEnd: 342
    functionName: ClusterClientBuilder::build
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 2
    functionsReached:
    - Some
    - is_none
    - into
    - ClusterParams::from
    - ProtocolVersion::is_some
    - tls_mode
    - map
    - Ok
    - as_deref
    - Err
    - RedisError::from
    - clone_from
    - as_ref
    - '&''static str::is_some'
    - '&''static str::as_deref'
    - first
    - TlsFilePaths::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:346,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:346,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - password
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 348
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 348
    functionName: ClusterClientBuilder::password
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    - '&''static str::as_ref'
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn password(mut self, password: impl AsRef<str>) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:352,1
    - Dst: '&''static str::as_ref'
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:352,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - username
    argTypes:
    - impl AsRef<str>
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: ClusterClientBuilder::username
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    - '&''static str::as_ref'
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn username(mut self, username: impl AsRef<str>) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - retries
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: ClusterClientBuilder::retries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn retries(mut self, retries: u32) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - max_wait
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 366
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 366
    functionName: ClusterClientBuilder::max_retry_wait
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn max_retry_wait(mut self, max_wait: u64) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - min_wait
    argTypes:
    - u64
    constantsTouched: []
    func_position:
      end: 372
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 372
    functionName: ClusterClientBuilder::min_retry_wait
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn min_retry_wait(mut self, min_wait: u64) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - factor
    - exponent_base
    argTypes:
    - u64
    - u64
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: ClusterClientBuilder::retry_wait_formula
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn retry_wait_formula(mut self, factor: u64, exponent_base: u64)
      -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:387,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tls
    argTypes:
    - TlsMode
    constantsTouched: []
    func_position:
      end: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    functionName: ClusterClientBuilder::tls
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn tls(mut self, tls: TlsMode) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - insecure
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: ClusterClientBuilder::danger_accept_invalid_hostnames
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn danger_accept_invalid_hostnames(mut self, insecure: bool) ->
      ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:428,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:429,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - certificates
    argTypes:
    - TlsCertificates
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: ClusterClientBuilder::certs
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - is_none
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn certs(mut self, certificates: TlsCertificates) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:442,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 444
      start: 441
    functionDepth: 49
    functionLinenumber: 441
    functionLinenumberEnd: 444
    functionName: ClusterClientBuilder::read_from_replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - Arc::new
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: pub fn read_from_replicas(mut self) -> ClusterClientBuilder
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:499,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - strategy
    argTypes:
    - impl ReadRoutingStrategyFactory + 'static
    constantsTouched: []
    func_position:
      end: 501
      start: 495
    functionDepth: 49
    functionLinenumber: 495
    functionLinenumberEnd: 501
    functionName: ClusterClientBuilder::read_routing_strategy
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 25
    functionsReached:
    - Some
    - Arc::new
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn read_routing_strategy(mut self,strategy: impl ReadRoutingStrategyFactory
      + ''static,) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - connection_timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 509
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 509
    functionName: ClusterClientBuilder::connection_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn connection_timeout(mut self, connection_timeout: Duration)
      -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - response_timeout
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 519
      start: 516
    functionDepth: 0
    functionLinenumber: 516
    functionLinenumberEnd: 519
    functionName: ClusterClientBuilder::response_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn response_timeout(mut self, response_timeout: Duration) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: OverallResponseTimeout::Explicit
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:534,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - timeout
    argTypes:
    - Option<Duration>
    constantsTouched: []
    func_position:
      end: 536
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 536
    functionName: ClusterClientBuilder::overall_response_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - OverallResponseTimeout::Explicit
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn overall_response_timeout(mut self, timeout: Option<Duration>)
      -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - ProtocolVersion
    constantsTouched: []
    func_position:
      end: 542
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 542
    functionName: ClusterClientBuilder::use_protocol
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 1
    functionsReached:
    - Some
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn use_protocol(mut self, protocol: ProtocolVersion) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:575,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - push_sender
    argTypes:
    - impl AsyncPushSender
    constantsTouched: []
    func_position:
      end: 577
      start: 574
    functionDepth: 49
    functionLinenumber: 574
    functionLinenumberEnd: 577
    functionName: ClusterClientBuilder::push_sender
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - Arc::new
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn push_sender(mut self, push_sender: impl AsyncPushSender) ->
      ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tcp_settings
    argTypes:
    - TcpSettings
    constantsTouched: []
    func_position:
      end: 583
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 583
    functionName: ClusterClientBuilder::tcp_settings
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn tcp_settings(mut self, tcp_settings: TcpSettings) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:590,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - resolver
    argTypes:
    - impl AsyncDNSResolver
    constantsTouched: []
    func_position:
      end: 592
      start: 589
    functionDepth: 49
    functionLinenumber: 589
    functionLinenumberEnd: 592
    functionName: ClusterClientBuilder::async_dns_resolver
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - Arc::new
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn async_dns_resolver(mut self, resolver: impl AsyncDNSResolver)
      -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:597,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - cache_config
    argTypes:
    - CacheConfig
    constantsTouched: []
    func_position:
      end: 599
      start: 596
    functionDepth: 0
    functionLinenumber: 596
    functionLinenumberEnd: 599
    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:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - limit
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 623
      start: 620
    functionDepth: 0
    functionLinenumber: 620
    functionLinenumberEnd: 623
    functionName: ClusterClientBuilder::connection_concurrency_limit
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn connection_concurrency_limit(mut self, limit: usize) -> ClusterClientBuilder'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:635,1
    - Dst: std::sync::Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - provider
    argTypes:
    - P
    constantsTouched: []
    func_position:
      end: 637
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 637
    functionName: ClusterClientBuilder::set_credentials_provider
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 1
    functionsReached:
    - Some
    - std::sync::Arc::new
    linkageType: ''
    returnType: ClusterClientBuilder
    signature: 'pub fn set_credentials_provider<P>(mut self, provider: P) -> ClusterClientBuilderwhereP:
      StreamingCredentialsProvider + ''static,'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::builder
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:660,1
    - Dst: build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - initial_nodes
    argTypes:
    - impl IntoIterator<Item = T>
    constantsTouched: []
    func_position:
      end: 661
      start: 657
    functionDepth: 39
    functionLinenumber: 657
    functionLinenumberEnd: 661
    functionName: ClusterClient::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - build
    - Self::builder
    linkageType: ''
    returnType: RedisResult
    signature: 'pub fn new<T: IntoConnectionInfo>(initial_nodes: impl IntoIterator<Item
      = T>,) -> RedisResult<ClusterClient>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - initial_nodes
    argTypes:
    - impl IntoIterator<Item = T>
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 51
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: ClusterClient::builder
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 40
    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:677,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:677,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 678
      start: 676
    functionDepth: 44
    functionLinenumber: 676
    functionLinenumberEnd: 678
    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:690,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:691,1
    - Dst: with_config
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:691,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 694
      start: 686
    functionDepth: 44
    functionLinenumber: 686
    functionLinenumberEnd: 694
    functionName: ClusterClient::get_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - clone
    - with_config
    - 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:704,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:704,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 44
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: ClusterClient::get_async_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - clone
    - cluster_async::ClusterConnection::new
    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:719,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:721,1
    - Dst: with_config
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 724
      start: 715
    functionDepth: 44
    functionLinenumber: 715
    functionLinenumberEnd: 724
    functionName: ClusterClient::get_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - clone
    - with_config
    - cluster_async::ClusterConnection::new
    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:734,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:736,1
    - Dst: with_config
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - config
    argTypes:
    - cluster::ClusterConfig
    constantsTouched: []
    func_position:
      end: 738
      start: 730
    functionDepth: 44
    functionLinenumber: 730
    functionLinenumberEnd: 738
    functionName: ClusterClient::get_pending_async_connection_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - clone
    - with_config
    - cluster_async::ClusterConnection::new_pending
    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:745,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:745,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 746
      start: 741
    functionDepth: 44
    functionLinenumber: 741
    functionLinenumberEnd: 746
    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:762,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:762,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 764
      start: 750
    functionDepth: 44
    functionLinenumber: 750
    functionLinenumberEnd: 764
    functionName: ClusterClient::get_async_generic_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - clone
    - cluster_async::ClusterConnection::new
    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: 778
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 778
    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: 792
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 792
    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: 806
      start: 794
    functionDepth: 0
    functionLinenumber: 794
    functionLinenumberEnd: 806
    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:810,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:810,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 812
      start: 809
    functionDepth: 40
    functionLinenumber: 809
    functionLinenumberEnd: 812
    functionName: tests::give_no_password
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    - get_connection_data
    - 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:816,1
    - Dst: get_connection_data_with_password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:816,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 818
      start: 815
    functionDepth: 40
    functionLinenumber: 815
    functionLinenumberEnd: 818
    functionName: tests::give_password_by_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data_with_password
    - ClusterClient::new
    - RedisResult::unwrap
    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:822,1
    - Dst: get_connection_data_with_username_and_password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:822,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 825
      start: 821
    functionDepth: 40
    functionLinenumber: 821
    functionLinenumberEnd: 825
    functionName: tests::give_username_and_password_by_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    - get_connection_data_with_username_and_password
    - 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:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 835
      start: 828
    functionDepth: 40
    functionLinenumber: 828
    functionLinenumberEnd: 835
    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:839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 845
      start: 838
    functionDepth: 40
    functionLinenumber: 838
    functionLinenumberEnd: 845
    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:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 855
      start: 848
    functionDepth: 40
    functionLinenumber: 848
    functionLinenumberEnd: 855
    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:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 865
      start: 858
    functionDepth: 40
    functionLinenumber: 858
    functionLinenumberEnd: 865
    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:869,1
    - Dst: get_connection_data_with_username_and_password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:869,1
    - Dst: ClusterClientBuilder::password
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:869,1
    - Dst: ClusterClientBuilder::username
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:869,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:869,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 876
      start: 868
    functionDepth: 51
    functionLinenumber: 868
    functionLinenumberEnd: 876
    functionName: tests::give_username_password_by_method
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClientBuilder::password
    - ClusterClientBuilder::new
    - ClusterClientBuilder::build
    - get_connection_data_with_username_and_password
    - ClusterClientBuilder::username
    - RedisResult::unwrap
    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:880,1
    - Dst: Vec::<String>::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 882
      start: 879
    functionDepth: 40
    functionLinenumber: 879
    functionLinenumberEnd: 882
    functionName: tests::give_empty_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Vec::<String>::new
    - ClusterClient::new
    linkageType: ''
    returnType: void
    signature: fn give_empty_initial_nodes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ClusterClientBuilder::new
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:887,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:887,1
    - Dst: ClusterClientBuilder::response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:887,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:888,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:887,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 895
      start: 886
    functionDepth: 51
    functionLinenumber: 886
    functionLinenumberEnd: 895
    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
    - ClusterClientBuilder::new
    - ClusterClientBuilder::build
    - Duration::from_secs
    - ClusterClientBuilder::response_timeout
    - RedisResult::unwrap
    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:900,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:900,1
    - Dst: ClusterClientBuilder::response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:900,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:901,1
    - Dst: ClusterClientBuilder::overall_response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:900,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:900,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 906
      start: 899
    functionDepth: 51
    functionLinenumber: 899
    functionLinenumberEnd: 906
    functionName: tests::overall_response_timeout_can_be_disabled
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data
    - ClusterClientBuilder::new
    - ClusterClientBuilder::build
    - ClusterClientBuilder::overall_response_timeout
    - Duration::from_secs
    - ClusterClientBuilder::response_timeout
    - RedisResult::unwrap
    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:911,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:911,1
    - Dst: ClusterClientBuilder::response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:911,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:912,1
    - Dst: ClusterClientBuilder::overall_response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:911,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:913,1
    - Dst: Duration::from_secs
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:913,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:911,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 920
      start: 910
    functionDepth: 51
    functionLinenumber: 910
    functionLinenumberEnd: 920
    functionName: tests::overall_response_timeout_can_be_set_independently
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - Some
    - get_connection_data
    - ClusterClientBuilder::new
    - ClusterClientBuilder::build
    - ClusterClientBuilder::overall_response_timeout
    - Duration::from_secs
    - ClusterClientBuilder::response_timeout
    - RedisResult::unwrap
    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:925,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:925,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 924
    functionDepth: 40
    functionLinenumber: 924
    functionLinenumberEnd: 927
    functionName: tests::connection_concurrency_limit_default
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - ClusterClient::new
    - get_connection_data
    - 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:932,1
    - Dst: get_connection_data
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:932,1
    - Dst: ClusterClientBuilder::connection_concurrency_limit
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:932,1
    - Dst: ClusterClientBuilder::build
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:932,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/client.rs:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 940
      start: 931
    functionDepth: 51
    functionLinenumber: 931
    functionLinenumberEnd: 940
    functionName: tests::connection_concurrency_limit_custom
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/client.rs
    functionUses: 0
    functionsReached:
    - get_connection_data
    - ClusterClientBuilder::new
    - ClusterClientBuilder::build
    - ClusterClientBuilder::connection_concurrency_limit
    - RedisResult::unwrap
    linkageType: ''
    returnType: void
    signature: fn connection_concurrency_limit_custom()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Self::from_parts
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:38,1
    - Dst: '&str::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: 0
    functionsReached:
    - Self::from_parts
    - '&str::into'
    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: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:91,1
    - Dst: '&str::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: 2
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: NodeAddress::try_from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Err
    - RedisError::from
    - '&str::as_str'
    - NodeAddress::new
    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 Cmd::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: 39
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: slot_cmd
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - Cmd::arg
    - Cmd::new
    - '&mut 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: '&str::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:
    - and_then
    - Some
    - trim_end_matches
    - u16::from_str
    - Result::ok
    - rsplit_once
    - is_empty
    - ok_or_else
    - '&str::trim_start_matches'
    - zip
    - RedisError::from
    - filter
    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: get_connection_addr
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:163,1
    - Dst: host
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:164,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:164,1
    - Dst: port
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:165,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:167,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:170,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:171,1
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:172,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:173,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 2
    argNames:
    - node
    - cluster_params
    argTypes:
    - '&NodeAddress'
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 177
      start: 158
    functionDepth: 50
    functionLinenumber: 158
    functionLinenumberEnd: 177
    functionName: get_connection_info
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 4
    functionsReached:
    - port
    - clone
    - Default::default
    - unwrap_or_default
    - '&str::to_string'
    - host
    - 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:193,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/mod.rs:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 197
      start: 184
    functionDepth: 3
    functionLinenumber: 184
    functionLinenumberEnd: 197
    functionName: tests::parse_node_address
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/mod.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - NodeAddress::try_from
    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:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 212
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 212
    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: 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: 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: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:64,1
    - Dst: RedisServer::get
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:74,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:74,1
    - Dst: '&str::clone'
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:75,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:77,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/topology.rs:78,1
    - Dst: 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: Slot::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: 41
    functionLinenumber: 12
    functionLinenumberEnd: 103
    functionName: parse_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - is_wildcard_address
    - Some
    - is_none
    - RedisServer::insert
    - try_to_address
    - HashSet::<ArcStr>::new
    - filter_map
    - Option::into_iter
    - RedisServer::get
    - into_iter
    - '&str::clone'
    - String::from_utf8_lossy
    - '&str::into'
    - clone
    - next
    - RedisResult::push
    - std::iter::Chain::skip
    - as_ref
    - Slot::new
    - NodeAddress::new
    - into
    - Ok
    - len
    - is_empty
    - collect
    - Vec::with_capacity
    - Option::len
    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<Slot>>'
  - 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: 56
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: tests::slot_value_with_replicas
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/topology.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - collect
    - Value::Array
    - append
    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: 57
    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: 42
    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: 42
    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: 50
    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<Slot>
    constantsTouched: []
    func_position:
      end: 28
      start: 22
    functionDepth: 50
    functionLinenumber: 22
    functionLinenumberEnd: 28
    functionName: SlotMap::from_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotAddrs::from_slot
    - insert
    - SlotRangeMap::new
    linkageType: ''
    returnType: Self
    signature: 'pub fn from_slots(slots: Vec<Slot>) -> 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<Slot>
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 53
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: SlotMap::fill_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - SlotAddrs::from_slot
    - insert
    linkageType: ''
    returnType: void
    signature: 'pub fn fill_slots(&mut self, slots: Vec<Slot>)'
  - 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: 13
    argCount: 2
    argNames:
    - route
    - strategy
    argTypes:
    - '&Route'
    - Option<&dyn ReadRoutingStrategy>
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 54
    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
    - map
    - slot
    - 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: clear
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 54
    functionLinenumber: 50
    functionLinenumberEnd: 52
    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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 54
    functionLinenumber: 54
    functionLinenumberEnd: 56
    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:59,1
    - Dst: RedisResult::extend
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:61,1
    - Dst: SlotMap::values
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:61,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:61,1
    - Dst: RedisResult::extend
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:63,1
    - Dst: SlotMap::values
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:63,1
    - Dst: impl Iterator::flat_map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:63,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 1
    argNames:
    - only_primaries
    argTypes:
    - bool
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 49
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: SlotMap::all_unique_addresses
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - impl Iterator::map
    - HashSet::new
    - SlotMap::values
    - RedisResult::extend
    - impl Iterator::flat_map
    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:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 50
    functionLinenumber: 69
    functionLinenumberEnd: 71
    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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 50
    functionLinenumber: 73
    functionLinenumberEnd: 75
    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:85,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:85,1
    - Dst: SlotMap::slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - routes
    - strategy
    argTypes:
    - '&''b [(Route, Vec<usize>)]'
    - Option<&'a dyn ReadRoutingStrategy>
    constantsTouched: []
    func_position:
      end: 88
      start: 77
    functionDepth: 56
    functionLinenumber: 77
    functionLinenumberEnd: 88
    functionName: SlotMap::addresses_for_multi_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - '&''b [(Route, Vec<usize>)]::iter'
    - map
    - SlotMap::slot_addr_for_route
    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:99,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:100,1
    - Dst: RedisServer::iter_mut
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:101,1
    - Dst: find
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:101,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:102,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:104,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:105,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:107,1
    - Dst: ClusterTopology::from_shards
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:112,1
    - Dst: RedisServer::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:113,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:113,1
    - Dst: Shard::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:115,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 118
      start: 92
    functionDepth: 49
    functionLinenumber: 92
    functionLinenumberEnd: 118
    functionName: SlotMap::topology
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - iter
    - Vec::new
    - find
    - clone
    - collect
    - RedisServer::into_iter
    - std::iter::Chain::map
    - RedisServer::push
    - RedisServer::iter_mut
    - Shard::new
    - ClusterTopology::from_shards
    - push
    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: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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:145,1
    - Dst: choose_random
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:146,1
    - Dst: Replicas::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:151,1
    - Dst: ClusterClientBuilder::route_read
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:155,1
    - Dst: ReadCandidates::any_node
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:155,1
    - Dst: ClusterClientBuilder::route_read
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:158,1
    - Dst: ReadCandidates::replicas_only
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:158,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 3
    argNames:
    - slot
    - slot_addr
    - strategy
    argTypes:
    - u16
    - '&SlotAddr'
    - Option<&dyn ReadRoutingStrategy>
    constantsTouched: []
    func_position:
      end: 163
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 163
    functionName: SlotAddrs::slot_addr
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - ClusterClientBuilder::route_read
    - choose_random
    - Replicas::new
    - ReadCandidates::replicas_only
    - ReadCandidates::any_node
    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: SlotAddrs::new
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - slot
    argTypes:
    - Slot
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: SlotAddrs::from_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 2
    functionsReached:
    - SlotAddrs::new
    linkageType: ''
    returnType: Self
    signature: 'pub(crate) fn from_slot(slot: Slot) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::iter::once
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:178,1
    - Dst: chain
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:178,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 56
    functionLinenumber: 175
    functionLinenumberEnd: 179
    functionName: '&''a SlotAddrs::into_iter'
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - iter
    - chain
    - 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: 198
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 198
    functionName: Slot::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:207,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 208
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 208
    functionName: tests::addr
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - NodeAddress::try_from
    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:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 291
      start: 224
    functionDepth: 46
    functionLinenumber: 224
    functionLinenumberEnd: 291
    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:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 314
      start: 294
    functionDepth: 46
    functionLinenumber: 294
    functionLinenumberEnd: 314
    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: SlotMap::from_slots
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 342
      start: 316
    functionDepth: 46
    functionLinenumber: 316
    functionLinenumberEnd: 342
    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:346,1
    - Dst: SlotMap::addresses_for_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 356
      start: 345
    functionDepth: 47
    functionLinenumber: 345
    functionLinenumberEnd: 356
    functionName: tests::test_slot_map_get_all_primaries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - get_slot_map
    - SlotMap::addresses_for_all_primaries
    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:360,1
    - Dst: SlotMap::addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 376
      start: 359
    functionDepth: 47
    functionLinenumber: 359
    functionLinenumberEnd: 376
    functionName: tests::test_slot_map_get_all_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - get_slot_map
    - SlotMap::addresses_for_all_nodes
    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:381,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:386,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:387,1
    - Dst: "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 379
    functionDepth: 47
    functionLinenumber: 379
    functionLinenumberEnd: 393
    functionName: tests::test_slot_map_get_multi_node
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - get_slot_map
    - "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
    - SlotMap::addresses_for_multi_slot
    - Some
    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:397,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:402,1
    - Dst: "addresses_for_multi_slot(&routes, None)\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 409
      start: 396
    functionDepth: 47
    functionLinenumber: 396
    functionLinenumberEnd: 409
    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:
    - get_slot_map
    - "addresses_for_multi_slot(&routes, None)\n            .collect::<Vec<_>>"
    - SlotMap::addresses_for_multi_slot
    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:416,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:425,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:426,1
    - Dst: "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 439
      start: 414
    functionDepth: 47
    functionLinenumber: 414
    functionLinenumberEnd: 439
    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:
    - get_slot_map
    - "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
    - SlotMap::addresses_for_multi_slot
    - Some
    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:444,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:451,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:452,1
    - Dst: "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 442
    functionDepth: 47
    functionLinenumber: 442
    functionLinenumberEnd: 463
    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:
    - get_slot_map
    - "addresses_for_multi_slot(&routes, Some(&strategy))\n            .collect::<Vec<_>>"
    - SlotMap::addresses_for_multi_slot
    - Some
    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:467,1
    - Dst: SlotMap::topology
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:471,1
    - Dst: ClusterTopology::shards
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:474,1
    - Dst: impl Iterator::find
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:474,1
    - Dst: TlsFilePaths::primary
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:476,1
    - Dst: addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:476,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:474,1
    - Dst: ClusterTopology::shards
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:481,1
    - Dst: impl Iterator::find
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:481,1
    - Dst: TlsFilePaths::primary
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:483,1
    - Dst: addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:483,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 487
      start: 466
    functionDepth: 46
    functionLinenumber: 466
    functionLinenumberEnd: 487
    functionName: tests::test_slot_map_topology
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - addr
    - TlsFilePaths::primary
    - SlotMap::from_slots
    - impl Iterator::find
    - Option::unwrap
    - SlotMap::topology
    - ClusterTopology::shards
    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:491,1
    - Dst: SlotMap::topology
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:492,1
    - Dst: ClusterTopology::shards
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:495,1
    - Dst: impl Iterator::find
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:495,1
    - Dst: TlsFilePaths::primary
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:497,1
    - Dst: addr
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:497,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 500
      start: 490
    functionDepth: 47
    functionLinenumber: 490
    functionLinenumberEnd: 500
    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
    - get_slot_map
    - impl Iterator::find
    - Option::unwrap
    - SlotMap::topology
    - ClusterTopology::shards
    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:504,1
    - Dst: SlotMap::topology
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:505,1
    - Dst: ClusterTopology::shard_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:507,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:507,1
    - Dst: ClusterTopology::shard_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:510,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:510,1
    - Dst: ClusterTopology::shard_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:514,1
    - Dst: Option::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/slot_map.rs:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 518
      start: 503
    functionDepth: 47
    functionLinenumber: 503
    functionLinenumberEnd: 518
    functionName: tests::test_slot_map_topology_shard_lookup
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/slot_map.rs
    functionUses: 0
    functionsReached:
    - get_slot_map
    - ClusterTopology::shard_for_slot
    - SlotMap::topology
    - Option::unwrap
    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:536,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 566
      start: 521
    functionDepth: 46
    functionLinenumber: 521
    functionLinenumberEnd: 566
    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: ClusterPipeline
    signature: pub fn new() -> ClusterPipeline
  - 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: 44
    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: ClusterPipeline
    signature: 'pub fn with_capacity(capacity: usize) -> ClusterPipeline'
  - 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: 49
    functionLinenumber: 107
    functionLinenumberEnd: 128
    functionName: ClusterPipeline::query
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/pipeline.rs
    functionUses: 0
    functionsReached:
    - is_illegal_cmd
    - '&mut ClusterConnection::execute_pipeline'
    - unwrap_or
    - std::str::from_utf8
    - is_empty
    - RedisError::make_empty_command
    - fail
    - to_ascii_uppercase
    - ClusterPipeline::compose_response
    - Err
    - Option::unwrap_or
    - trim
    - Cmd::arg_idx
    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: RedisResult::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: 46
    functionLinenumber: 112
    functionLinenumberEnd: 127
    functionName: Input::send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - map
    - bool::req_packed_command
    - impl combine::Parser::extract_error
    - bool::req_command
    - RedisResult::and_then
    - bool::req_packed_commands
    - RedisFuture::and_then
    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:
    - Cmd::arg_idx
    - Option::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: 58
    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: Value::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:
    - Value::Array
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: Output) -> 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: 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: 56
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: Connection::connect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - connection::connect
    - redis::ConnectionInfo::into_connection_info
    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: 45
    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:
    - Some
    - std::sync::Arc::new
    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:
    - Some
    - std::sync::Arc::new
    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:171,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:172,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:173,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 176
    functionName: ClusterConnection::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 6
    functionsReached:
    - Self::new_inner
    - RedisError::from
    - Ok
    - map_err
    linkageType: ''
    returnType: RedisResult
    signature: 'pub(crate) async fn new(initial_nodes: &[ConnectionInfo],cluster_params:
      ClusterParams,) -> RedisResult<ClusterConnection<C>>'
  - 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: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:365,1
    - Dst: RedisResult::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: 47
    functionLinenumber: 353
    functionLinenumberEnd: 369
    functionName: ClusterConnection::set_write_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Option<Duration>::is_some
    - borrow
    - Option<Duration>::unwrap
    - is_zero
    - Err
    - RedisError::from
    - borrow_mut
    - RedisResult::values
    - RedisResult::set_write_timeout
    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: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:388,1
    - Dst: RedisResult::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: 47
    functionLinenumber: 376
    functionLinenumberEnd: 392
    functionName: ClusterConnection::set_read_timeout
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Option<Duration>::is_some
    - borrow
    - RedisResult::set_read_timeout
    - Option<Duration>::unwrap
    - is_zero
    - Err
    - RedisError::from
    - borrow_mut
    - RedisResult::values
    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:1095,1
    - Dst: RedisResult::values_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1096,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1102
      start: 1094
    functionDepth: 1
    functionLinenumber: 1094
    functionLinenumberEnd: 1102
    functionName: ClusterConnection::check_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - borrow_mut
    - RedisResult::values_mut
    - RedisResult::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:
    - ClusterConnection::send_recv_and_retry_cmds
    - Pipeline::commands
    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: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:420,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:421,1
    - Dst: RedisServer::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: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:434,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:439,1
    - Dst: RedisServer::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: RedisServer::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: 37
    functionLinenumber: 411
    functionLinenumberEnd: 467
    functionName: ClusterConnection::create_initial_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisServer::into_iter
    - NodeAddress::try_from
    - Err
    - HashMap::with_capacity
    - ClusterConnection::refresh_slots
    - RedisResult::insert
    - RedisResult::check_connection
    - '&str::to_string'
    - RedisServer::is_empty
    - iter
    - Vec::new
    - RedisError::from
    - ClusterConnection::connect
    - Ok
    - len
    - std::iter::Chain::enumerate
    - RedisServer::push
    - borrow_mut
    - RedisResult::is_empty
    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: ClusterClientBuilder::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: RedisResult::remove
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:486,1
    - Dst: RedisResult::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:488,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:488,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:492,1
    - Dst: RedisResult::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:494,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:494,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: 72
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 503
      start: 470
    functionDepth: 45
    functionLinenumber: 470
    functionLinenumberEnd: 503
    functionName: ClusterConnection::refresh_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Some
    - into_iter
    - RedisResult::remove
    - Ok
    - RedisResult::topology
    - values().flatten().collect::<Vec<_>>
    - ClusterClientBuilder::on_topology_changed
    - collect
    - RedisResult::check_connection
    - sort_unstable
    - dedup
    - ConnectionAddr::clone
    - ClusterConnection::create_new_slots
    - borrow_mut
    - ClusterConnection::connect
    - RedisResult::values
    - std::iter::Chain::filter_map
    - Self::flatten
    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: RedisResult::iter_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:509,1
    - Dst: RedisResult::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: 46
    functionLinenumber: 505
    functionLinenumberEnd: 524
    functionName: ClusterConnection::create_new_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Some
    - super::topology::parse_slots
    - SlotMap::from_slots
    - Ok
    - ConnectionAddr::host
    - RedisResult::iter_mut
    - Err
    - RedisError::from
    - borrow_mut
    - RedisResult::req_command
    - cluster_handling::slot_cmd
    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: RedisResult::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: RedisResult::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: 56
    functionLinenumber: 526
    functionLinenumberEnd: 537
    functionName: ClusterConnection::connect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 2
    functionsReached:
    - Some
    - Cmd::exec
    - Ok
    - C::connect
    - cmd::cmd
    - borrow
    - RedisResult::set_read_timeout
    - cluster_handling::get_connection_info
    - RedisResult::set_write_timeout
    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: 48
    functionLinenumber: 539
    functionLinenumberEnd: 552
    functionName: ClusterConnection::get_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - get_random_connection_or_error
    - as_deref
    - borrow
    - ConnectionAddr::clone
    - RedisResult::slot_addr_for_route
    - ClusterConnection::get_connection_by_addr
    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: RedisResult::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: 40
    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:
    - insert
    - Ok
    - RedisResult::entry
    - into_mut
    - ClusterConnection::connect
    - ConnectionAddr::clone
    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: rand::rng
      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:585,1
    - Dst: addr_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:585,1
    - Dst: Route::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:585,1
    - Dst: random_range
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:586,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:591,1
    - Dst: addr_for_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:591,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 595
      start: 572
    functionDepth: 48
    functionLinenumber: 572
    functionLinenumberEnd: 595
    functionName: ClusterConnection::get_addr_for_cmd
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - rand::rng
    - Ok
    - as_deref
    - addr_for_slot
    - borrow
    - SlotAddr::clone
    - random_range
    - fail
    - Route::new
    - RedisResult::slot_addr_for_route
    - Option::ok_or
    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:598,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:600,1
    - Dst: enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:600,1
    - Dst: ClusterConnection::get_addr_for_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:601,1
    - Dst: RedisServer::entry
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:602,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:603,1
    - Dst: or_insert_with
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:602,1
    - Dst: NodeCmd::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:604,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:605,1
    - Dst: Cmd::write_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:606,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:609,1
    - Dst: RedisServer::drain
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:610,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:611,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:613,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 36
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - '&[Cmd]'
    constantsTouched: []
    func_position:
      end: 614
      start: 597
    functionDepth: 44
    functionLinenumber: 597
    functionLinenumberEnd: 614
    functionName: ClusterConnection::map_cmds_to_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisServer::drain
    - RedisResult::iter
    - Vec::new
    - or_insert_with
    - Ok
    - RedisServer::entry
    - Cmd::write_packed_command
    - enumerate
    - HashMap::new
    - ClusterConnection::get_addr_for_cmd
    - ConnectionAddr::clone
    - NodeCmd::new
    - push
    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:621,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:621,1
    - Dst: ClusterConnection::request
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:624,1
    - Dst: Input::clone
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:625,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:626,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:626,1
    - Dst: ConnectionAddr::host
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:627,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:627,1
    - Dst: ConnectionAddr::port
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:628,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:624,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:634,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:621,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 2
    argNames:
    - input
    - addresses
    argTypes:
    - Input
    - HashSet<&'a NodeAddress>
    constantsTouched: []
    func_position:
      end: 638
      start: 616
    functionDepth: 57
    functionLinenumber: 616
    functionLinenumberEnd: 638
    functionName: ClusterConnection::execute_on_all
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - ClusterConnection::request
    - ConnectionAddr::host
    - RedisResult::map
    - collect
    - ConnectionAddr::port
    - '&str::to_string'
    - std::iter::Chain::map
    - RoutingInfo::SingleNode
    - Value::Array
    - Input::clone
    - RedisResult::into_iter
    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:645,1
    - Dst: RedisResult::addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - slots
    argTypes:
    - Input
    - '&''a mut SlotMap'
    constantsTouched: []
    func_position:
      end: 646
      start: 640
    functionDepth: 58
    functionLinenumber: 640
    functionLinenumberEnd: 646
    functionName: ClusterConnection::execute_on_all_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::addresses_for_all_nodes
    - ClusterConnection::execute_on_all
    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:653,1
    - Dst: RedisResult::addresses_for_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - input
    - slots
    argTypes:
    - Input
    - '&''a mut SlotMap'
    constantsTouched: []
    func_position:
      end: 654
      start: 648
    functionDepth: 58
    functionLinenumber: 648
    functionLinenumberEnd: 654
    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:666,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:667,1
    - Dst: impl Iterator::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:666,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:666,1
    - Dst: ConnectionAddr::ok_or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:670,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:670,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:674,1
    - Dst: '&''b [(Route, Vec<usize>)]::get'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:675,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:675,1
    - Dst: crate::cluster_routing::command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:677,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:677,1
    - Dst: bool::req_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:678,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:678,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    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: 681
      start: 656
    functionDepth: 57
    functionLinenumber: 656
    functionLinenumberEnd: 681
    functionName: ClusterConnection::execute_multi_slot
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - '&''b [(Route, Vec<usize>)]::get'
    - map
    - as_deref
    - impl Iterator::enumerate
    - RedisResult::map
    - collect
    - bool::req_command
    - RedisResult::addresses_for_multi_slot
    - Cmd::iter
    - crate::cluster_routing::command_for_multi_slot_indices
    - RedisError::from
    - unwrap
    - ConnectionAddr::ok_or
    - ClusterConnection::get_connection_by_addr
    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:689,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:690,1
    - Dst: ClusterConnection::execute_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:694,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:697,1
    - Dst: ClusterConnection::execute_on_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:698,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:701,1
    - Dst: ClusterConnection::execute_on_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:702,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:710,1
    - Dst: None::ok_or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:713,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:715,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:713,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:728,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:729,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:733,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:733,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:734,1
    - Dst: crate::cluster_routing::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:736,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:737,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:737,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:739,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:737,1
    - Dst: RedisResult::len
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:749,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:752,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:754,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:755,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:759,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:761,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:761,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:762,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:766,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:766,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:768,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:766,1
    - Dst: crate::cluster_routing::aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:770,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:773,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:773,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:775,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:773,1
    - Dst: crate::cluster_routing::logical_aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:777,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:780,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:780,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:782,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:780,1
    - Dst: crate::cluster_routing::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:786,1
    - Dst: crate::cluster_routing::combine_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:790,1
    - Dst: RedisResult::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:796,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:796,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:799,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:800,1
    - Dst: ConnectionAddr::to_string
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:800,1
    - Dst: String::into_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:800,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:796,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:804,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:804,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 149
    argCount: 3
    argNames:
    - input
    - routing
    - response_policy
    argTypes:
    - Input
    - MultipleNodeRoutingInfo
    - Option<ResponsePolicy>
    constantsTouched: []
    func_position:
      end: 807
      start: 683
    functionDepth: 58
    functionLinenumber: 683
    functionLinenumberEnd: 807
    functionName: ClusterConnection::execute_on_multiple_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - crate::cluster_routing::combine_array_results
    - ClusterConnection::execute_on_all_nodes
    - RedisResult::len
    - Err
    - crate::cluster_routing::combine_map_results
    - ClusterConnection::execute_multi_slot
    - map
    - ClusterConnection::execute_on_all_primaries
    - None::ok_or
    - ConnectionAddr::to_string
    - "into_iter()\n                    .map(|result| result.map(|(_, value)| value))\n\
      \                    .collect::<RedisResult<Vec<_>>>"
    - String::into_bytes
    - drop
    - None::unwrap_or_else
    - Value::Map
    - into
    - crate::cluster_routing::combine_and_sort_array_results
    - Ok
    - Value::BulkString
    - crate::cluster_routing::aggregate
    - "into_iter()\n                    .map(|res| res.map(|(_, val)| val))\n    \
      \                .collect::<RedisResult<Vec<_>>>"
    - std::iter::Chain::map
    - borrow_mut
    - "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<_>>>"
    - RedisResult::into_iter
    - crate::cluster_routing::logical_aggregate
    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:814,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:814,1
    - Dst: fail
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:818,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:827,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:828,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:833,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:838,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:839,1
    - Dst: RedisFuture::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:839,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:840,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:841,1
    - Dst: get_random_connection_or_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:848,1
    - Dst: ClusterConnection::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:851,1
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:854,1
    - Dst: '&str::as_str'
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:854,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:855,1
    - Dst: ClusterConnection::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:859,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:859,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:863,1
    - Dst: Input::send
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:863,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:867,1
    - Dst: kind
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:869,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:870,1
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:873,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:874,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:875,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:876,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:876,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:880,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:884,1
    - Dst: retry_method
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:888,1
    - Dst: redirect_node
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:890,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:890,1
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:891,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:891,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:891,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:896,1
    - Dst: redirect_node
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:898,1
    - Dst: Option::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:898,1
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:899,1
    - Dst: Result::ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:899,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:899,1
    - Dst: wait_time_for_retry
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:904,1
    - Dst: thread::sleep
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:908,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:911,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:913,1
    - Dst: remove
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:913,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:914,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:915,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:916,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:916,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:922,1
    - Dst: borrow
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:927,1
    - Dst: ClusterConnection::connect
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:928,1
    - Dst: RedisResult::check_connection
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:929,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:930,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:930,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 212
    argCount: 2
    argNames:
    - input
    - route_option
    argTypes:
    - Input
    - Option<RoutingInfo>
    constantsTouched: []
    func_position:
      end: 939
      start: 810
    functionDepth: 59
    functionLinenumber: 810
    functionLinenumberEnd: 939
    functionName: ClusterConnection::request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - retry_method
    - get_random_connection_or_error
    - NodeAddress::try_from
    - take
    - Err
    - redirect_node
    - borrow_mut
    - Option::and_then
    - ClusterConnection::get_connection
    - ClusterConnection::refresh_slots
    - Route::new_random_primary
    - map
    - impl combine::Parser::extract_error
    - thread::sleep
    - RedisResult::check_connection
    - wait_time_for_retry
    - insert
    - RedisResult::map
    - kind
    - RedisResult::and_then
    - '&str::as_str'
    - ClusterConnection::connect
    - Input::send
    - NodeAddress::new
    - RedisResult::req_packed_command
    - remove
    - Result::ok
    - Ok
    - borrow
    - fail
    - ClusterConnection::execute_on_multiple_nodes
    - RedisFuture::and_then
    - ClusterConnection::get_connection_by_addr
    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:947,1
    - Dst: RedisResult::and_then
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:947,1
    - Dst: ClusterConnection::recv_all_commands
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:949,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:951,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:952,1
    - Dst: ClusterConnection::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:956,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:963,1
    - Dst: ClusterConnection::request
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:964,1
    - Dst: Input::Cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:964,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:964,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:966,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - '&[Cmd]'
    constantsTouched: []
    func_position:
      end: 967
      start: 941
    functionDepth: 48
    functionLinenumber: 941
    functionLinenumberEnd: 967
    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
    - into
    - ClusterConnection::request
    - ClusterConnection::refresh_slots
    - Ok
    - is_empty
    - ClusterConnection::recv_all_commands
    - RedisResult::and_then
    - Input::Cmd
    - ClusterConnection::send_all_commands
    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:971,1
    - Dst: ClusterConnection::map_cmds_to_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:973,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:975,1
    - Dst: send_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:975,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:978,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - cmds
    argTypes:
    - '&[Cmd]'
    constantsTouched: []
    func_position:
      end: 979
      start: 970
    functionDepth: 45
    functionLinenumber: 970
    functionLinenumberEnd: 979
    functionName: ClusterConnection::send_all_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    - ClusterConnection::map_cmds_to_nodes
    - borrow_mut
    - send_packed_command
    - 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:987,1
    - Dst: borrow_mut
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:988,1
    - Dst: ClusterConnection::get_connection_by_addr
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:993,1
    - Dst: recv_response
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:993,1
    - Dst: is_cluster_error
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:998,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:998,1
    - Dst: None::or
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:999,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:999,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1004,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1005,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 2
    argNames:
    - results
    - node_cmds
    argTypes:
    - '&mut [Value]'
    - '&[NodeCmd]'
    constantsTouched: []
    func_position:
      end: 1007
      start: 982
    functionDepth: 44
    functionLinenumber: 982
    functionLinenumberEnd: 1007
    functionName: ClusterConnection::recv_all_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Some
    - Vec::new
    - Ok
    - ClusterConnection::get_connection_by_addr
    - None::or
    - Err
    - RedisServer::push
    - borrow_mut
    - is_cluster_error
    - recv_response
    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:229,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:231,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:234,1
    - Dst: RouteBy::into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:235,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:231,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:241,1
    - Dst: io::Error::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:241,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:247,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:250,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:250,1
    - Dst: io::Error::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:250,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:247,1
    - Dst: timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:262,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 2
    argNames:
    - cmd
    - routing
    argTypes:
    - Cmd
    - RoutingInfo
    constantsTouched: []
    func_position:
      end: 265
      start: 227
    functionDepth: 44
    functionLinenumber: 227
    functionLinenumberEnd: 265
    functionName: ClusterConnection::route_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - io::Error::new
    - RouteBy::into
    - send
    - timeout
    - oneshot::channel
    - map_err
    - map
    - Arc::new
    - Err
    - RedisError::from
    - unwrap_or_else
    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: 1020
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1020
    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:1023,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1024,1
    - Dst: RedisError::make_empty_command
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1024,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1026,1
    - Dst: ClusterConnection::request
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1027,1
    - Dst: Input::Cmd
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1027,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1027,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1027,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 1028
      start: 1022
    functionDepth: 53
    functionLinenumber: 1022
    functionLinenumberEnd: 1028
    functionName: ClusterConnection::req_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - into
    - ClusterConnection::request
    - RedisResult::map
    - RedisError::make_empty_command
    - Input::Cmd
    - Err
    - Cmd::is_empty
    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:1467,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1467,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1468,1
    - Dst: ClusterConnection::route_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1469,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1469,1
    - Dst: RedisResult::boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&''a Cmd'
    constantsTouched: []
    func_position:
      end: 1470
      start: 1466
    functionDepth: 53
    functionLinenumber: 1466
    functionLinenumberEnd: 1470
    functionName: ClusterConnection::req_packed_command
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - RedisResult::boxed
    - ClusterConnection::route_command
    - Option::unwrap_or
    - RoutingInfo::SingleNode
    - Cmd::clone
    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:1479,1
    - Dst: ClusterConnection::route_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1480,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1480,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1480,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1478,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - pipeline
    - offset
    - count
    argTypes:
    - '&''a crate::Pipeline'
    - usize
    - usize
    constantsTouched: []
    func_position:
      end: 1484
      start: 1472
    functionDepth: 46
    functionLinenumber: 1472
    functionLinenumberEnd: 1484
    functionName: ClusterConnection::req_packed_commands
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - into
    - clone
    - boxed
    - routing::route_for_pipeline
    - ClusterConnection::route_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: 1488
      start: 1486
    functionDepth: 0
    functionLinenumber: 1486
    functionLinenumberEnd: 1488
    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:1085,1
    - Dst: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1086,1
    - Dst: RedisResult::is_open
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1087,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1084
    functionDepth: 53
    functionLinenumber: 1084
    functionLinenumberEnd: 1092
    functionName: ClusterConnection::is_open
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::is_open
    - RedisResult::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: 1120
      start: 1114
    functionDepth: 0
    functionLinenumber: 1114
    functionLinenumberEnd: 1120
    functionName: NodeCmd::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: NodeCmd
    signature: 'fn new(a: NodeAddress) -> NodeCmd'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1573,1
    - Dst: choose
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1573,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1575,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1573,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1576,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1576,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - connections
    argTypes:
    - '&ConnectionMap<C>'
    constantsTouched: []
    func_position:
      end: 1577
      start: 1569
    functionDepth: 62
    functionLinenumber: 1569
    functionLinenumberEnd: 1577
    functionName: get_random_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisResult::iter
    - rand::rng
    - map
    - choose
    - ConnectionAddr::clone
    - RedisResult::clone
    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:1135,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1136,1
    - Dst: NodeAddress::default
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1139,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1140,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs:1140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - connections
    argTypes:
    - '&mut HashMap<NodeAddress, C>'
    constantsTouched: []
    func_position:
      end: 1146
      start: 1132
    functionDepth: 63
    functionLinenumber: 1132
    functionLinenumberEnd: 1146
    functionName: get_random_connection_or_error
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/sync_connection/mod.rs
    functionUses: 2
    functionsReached:
    - Ok
    - NodeAddress::default
    - Err
    - RedisError::from
    - get_random_connection
    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: 49
    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: '&str::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
    - '&str::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: ClusterClientBuilder::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: 65
    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:
    - ClusterClientBuilder::route_read
    - Option::unwrap
    - Replicas::new
    - node
    - ReadCandidates::any_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: ClusterClientBuilder::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: 65
    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:
    - ClusterClientBuilder::route_read
    - Option::unwrap
    - Replicas::new
    - node
    - ReadCandidates::replicas_only
    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: 51
    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: 50
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: RoundRobinReplicaStrategy::default
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/round_robin_replica.rs
    functionUses: 0
    functionsReached:
    - RwLock::new
    - Arc::new
    - SlotRangeMap::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: std::sync::MutexGuard::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: 51
    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:
    - AtomicUsize::new
    - write
    - RedisResult::insert
    - Arc::clone
    - Arc::new
    - expect
    - std::sync::MutexGuard::slot_ranges
    - SlotRangeMap::new
    - ClusterTopology::shards
    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: 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: 61
    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
    - '&ReadCandidates<''a>::slot'
    - map
    - unwrap_or
    - replicas
    - len
    - expect
    - read
    - fetch_add
    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: ClusterClientBuilder::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: 52
    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:
    - ClusterClientBuilder::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: 53
    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:
    - setup_strategy
    - clone
    - Option::unwrap
    - Replicas::new
    - node
    - ReadCandidates::replicas_only
    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: 53
    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:
    - setup_strategy
    - Option::unwrap
    - Replicas::new
    - node
    - ReadCandidates::replicas_only
    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: 53
    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:
    - setup_strategy
    - clone
    - Option::unwrap
    - Replicas::new
    - node
    - ReadCandidates::any_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: ClusterClientBuilder::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: 52
    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:
    - ClusterClientBuilder::on_topology_changed
    - Option::unwrap
    - RoundRobinReplicaStrategy::new
    - node
    - Replicas::new
    - ReadCandidates::replicas_only
    - ClusterTopology::from_shards
    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: std::sync::MutexGuard::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: 51
    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::clone
    - Arc::new
    - std::sync::MutexGuard::slot_ranges
    - SlotRangeMap::new
    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: 47
    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_map
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:77,1
    - Dst: RedisServer::insert
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:78,1
    - Dst: Arc::as_ptr
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:78,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:79,1
    - Dst: std::sync::MutexGuard::as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 53
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: ClusterTopology::shards
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 3
    functionsReached:
    - Some
    - RedisServer::insert
    - std::sync::MutexGuard::as_ref
    - values
    - std::collections::HashSet::new
    - filter_map
    - Arc::as_ptr
    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:99,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - slice
    argTypes:
    - '&''a [NodeAddress]'
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 104
    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:109,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:109,1
    - Dst: RedisServer::expect
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 50
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: Replicas::len
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached:
    - len
    - RedisServer::expect
    - 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: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    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:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 47
    functionLinenumber: 118
    functionLinenumberEnd: 120
    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:125,1
    - Dst: rand::rng
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:125,1
    - Dst: expect
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    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:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 62
    functionLinenumber: 129
    functionLinenumberEnd: 131
    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: 146
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 146
    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: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    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: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    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: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    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: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    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:195,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    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:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - slot
    - primary
    - replicas
    argTypes:
    - u16
    - '&''a NodeAddress'
    - Replicas<'a>
    constantsTouched: []
    func_position:
      end: 206
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 206
    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:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - slot
    - replicas
    argTypes:
    - u16
    - Replicas<'a>
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    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:323,1
    - Dst: T::default
      Src: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 50
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: T::create_strategy
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/read_routing/interface.rs
    functionUses: 0
    functionsReached:
    - T::default
    - Box::new
    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: 0
    functionLinenumber: 18
    functionLinenumberEnd: 23
    functionName: InternalRoutingInfo::fmt
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - finish
    - debug_tuple
    - field
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InternalRoutingInfo::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:
    - InternalRoutingInfo::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: 0
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: InternalSingleNodeRouting::fmt
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - debug_struct
    - finish
    - debug_tuple
    - field
    linkageType: ''
    returnType: std::fmt::Result
    signature: 'fn fmt(&self, f: &mut std::fmt::Formatter<''_>) -> std::fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: InternalSingleNodeRouting::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:87,1
    - Dst: InternalSingleNodeRouting::ByAddress
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:90,1
    - Dst: NodeAddress::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:90,1
    - Dst: InternalSingleNodeRouting::SpecificNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:93,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - value
    argTypes:
    - SingleNodeRoutingInfo
    constantsTouched: []
    func_position:
      end: 96
      start: 83
    functionDepth: 51
    functionLinenumber: 83
    functionLinenumberEnd: 96
    functionName: InternalSingleNodeRouting::from
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - InternalSingleNodeRouting::SpecificNode
    - NodeAddress::new
    - InternalSingleNodeRouting::ByAddress
    - Route::new_random_primary
    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:101,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:104,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:109,1
    - Dst: Route::new_random_primary
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - '&Cmd'
    constantsTouched: []
    func_position:
      end: 113
      start: 100
    functionDepth: 53
    functionLinenumber: 100
    functionLinenumberEnd: 113
    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:117,1
    - Dst: impl Iterator::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:117,1
    - Dst: try_fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:117,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:120,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:121,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:123,1
    - Dst: slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:123,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:124,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:125,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:124,1
    - Dst: slot_addr
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:129,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:130,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:130,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:132,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 1
    argNames:
    - pipeline
    argTypes:
    - '&crate::Pipeline'
    constantsTouched: []
    func_position:
      end: 137
      start: 99
    functionDepth: 64
    functionLinenumber: 99
    functionLinenumberEnd: 137
    functionName: route_for_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 1
    functionsReached:
    - Some
    - into
    - try_fold
    - impl Iterator::map
    - Ok
    - slot
    - Err
    - cmd_iter
    - slot_addr
    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:149,1
    - Dst: flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:151,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:151,1
    - Dst: add_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:151,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 160
      start: 148
    functionDepth: 51
    functionLinenumber: 148
    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
    - cmd
    - flushall
    - crate::Pipeline::new
    - add_command
    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: 51
    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
    - crate::Pipeline::new
    - flushall
    - add_command
    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: 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: 188
      start: 174
    functionDepth: 51
    functionLinenumber: 174
    functionLinenumberEnd: 188
    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
    - cmd
    - set
    - flushall
    - arg
    - crate::Pipeline::new
    - add_command
    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:192,1
    - Dst: flushall
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:194,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:194,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 203
      start: 191
    functionDepth: 51
    functionLinenumber: 191
    functionLinenumberEnd: 203
    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
    - crate::Pipeline::new
    - flushall
    - set
    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:207,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    - Dst: set
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 220
      start: 206
    functionDepth: 51
    functionLinenumber: 206
    functionLinenumberEnd: 220
    functionName: pipeline_routing_tests::unkeyed_commands_dont_affect_route
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/routing.rs
    functionUses: 0
    functionsReached:
    - cmd
    - set
    - Cmd::arg
    - crate::Pipeline::new
    - '&mut Cmd::arg'
    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:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: ClusterConnection::new_pending
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Self::new_inner
    linkageType: ''
    returnType: ClusterConnection
    signature: 'pub(crate) fn new_pending(initial_nodes: &[ConnectionInfo],cluster_params:
      ClusterParams,) -> ClusterConnection<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap_or_default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:190,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:193,1
    - Dst: Runtime::locate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:194,1
    - Dst: ClusterConnInner::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:195,1
    - Dst: oneshot::channel::<RedisResult<()>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:197,1
    - Dst: mpsc::channel::<Message<_>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:198,1
    - Dst: RedisResult::wait_for_initial_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:200,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:201,1
    - Dst: stream::poll_fn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:203,1
    - Dst: "(\n        PendingRequest::poll_recv"
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:203,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:203,1
    - Dst: forward
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:203,1
    - Dst: HandleContainer::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:208,1
    - Dst: tokio::runtime::Runtime::spawn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:208,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:213,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 224
      start: 186
    functionDepth: 46
    functionLinenumber: 186
    functionLinenumberEnd: 224
    functionName: ClusterConnection::new_inner
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - tokio::runtime::Runtime::spawn
    - send
    - "(\n        PendingRequest::poll_recv"
    - map
    - clone
    - forward
    - unwrap_or_default
    - Runtime::locate
    - RedisResult::wait_for_initial_connection
    - stream::poll_fn
    - Arc::new
    - ClusterConnInner::new
    - HandleContainer::new
    - oneshot::channel::<RedisResult<()>>
    - mpsc::channel::<Message<_>>
    linkageType: ''
    returnType: (ClusterConnection
    signature: 'pub(crate) fn new_inner(initial_nodes: &[ConnectionInfo],cluster_params:
      ClusterParams,) -> (ClusterConnection<C>, oneshot::Receiver<RedisResult<()>>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:275,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:278,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:281,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:284,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:278,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:289,1
    - Dst: unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:290,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:292,1
    - Dst: closed_connection_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:292,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:290,1
    - Dst: timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:300,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 4
    argNames:
    - pipeline
    - offset
    - count
    - route
    argTypes:
    - crate::Pipeline
    - usize
    - usize
    - SingleNodeRoutingInfo
    constantsTouched: []
    func_position:
      end: 303
      start: 268
    functionDepth: 50
    functionLinenumber: 268
    functionLinenumberEnd: 303
    functionName: ClusterConnection::route_pipeline
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - into
    - send
    - timeout
    - oneshot::channel
    - map_err
    - map
    - Arc::new
    - Err
    - unwrap_or_else
    - closed_connection_error
    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:327,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:328,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:329,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:330,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 332
      start: 326
    functionDepth: 42
    functionLinenumber: 326
    functionLinenumberEnd: 332
    functionName: ClusterConnection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:338,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:339,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:340,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:341,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 343
      start: 337
    functionDepth: 42
    functionLinenumber: 337
    functionLinenumberEnd: 343
    functionName: ClusterConnection::unsubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:369,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:370,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:371,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:372,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 42
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: ClusterConnection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:380,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:381,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:382,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:383,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:384,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_pattern
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 42
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: ClusterConnection::punsubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:409,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:410,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:411,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:412,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:413,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 414
      start: 408
    functionDepth: 42
    functionLinenumber: 408
    functionLinenumberEnd: 414
    functionName: ClusterConnection::ssubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:420,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:421,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:422,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:423,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:424,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - channel_name
    argTypes:
    - impl ToRedisArgs
    constantsTouched: []
    func_position:
      end: 425
      start: 419
    functionDepth: 42
    functionLinenumber: 419
    functionLinenumberEnd: 425
    functionName: ClusterConnection::sunsubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - check_resp3
    - cmd
    - Ok
    - Cmd::arg
    - Cmd::exec_async
    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:430,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:430,1
    - Dst: statistics
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 46
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: ClusterConnection::get_cache_statistics
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - statistics
    - as_ref
    - map
    linkageType: ''
    returnType: Option
    signature: pub fn get_cache_statistics(&self) -> Option<CacheStatistics>
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 457
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 457
    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:470,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:471,1
    - Dst: Result::Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:474,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:475,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:485,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:485,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:485,1
    - Dst: oneshot::channel
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:486,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:487,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:489,1
    - Dst: request::ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:492,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:495,1
    - Dst: SlotMap::addresses_for_all_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:510,1
    - Dst: HashSet::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:510,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:510,1
    - Dst: to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:513,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:513,1
    - Dst: unzip
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:510,1
    - Dst: SlotMap::addresses_for_all_primaries
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:515,1
    - Dst: HashSet::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:515,1
    - Dst: std::iter::Chain::filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:515,1
    - Dst: to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:518,1
    - Dst: Cmd::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:518,1
    - Dst: unzip
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:515,1
    - Dst: SlotMap::addresses_for_multi_slot
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:520,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:521,1
    - Dst: impl Iterator::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:520,1
    - Dst: filter_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:520,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:524,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:525,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:525,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:527,1
    - Dst: crate::cluster_routing::command_for_multi_slot_indices
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:527,1
    - Dst: Cmd::as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:528,1
    - Dst: Cmd::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:529,1
    - Dst: to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:531,1
    - Dst: unzip
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:520,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:537,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:539,1
    - Dst: Self::aggregate_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:544,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:544,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: 548
      start: 464
    functionDepth: 61
    functionLinenumber: 464
    functionLinenumberEnd: 548
    functionName: Core::execute_on_multiple_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - send
    - impl Iterator::enumerate
    - Arc::new
    - crate::cluster_routing::command_for_multi_slot_indices
    - filter_map
    - std::iter::Chain::filter_map
    - cloned
    - map
    - SlotMap::addresses_for_all_nodes
    - HashSet::into_iter
    - unzip
    - read
    - ConnectionAddr::clone
    - get
    - SlotMap::addresses_for_multi_slot
    - as_deref
    - Self::aggregate_results
    - Cmd::iter
    - SlotMap::addresses_for_all_primaries
    - drop
    - unwrap
    - Cmd::clone
    - to_request
    - and_then
    - into
    - Result::Err
    - Cmd::as_ref
    - oneshot::channel
    - is_empty
    - request::ResultExpectation::External
    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:555,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:556,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:556,1
    - Dst: map_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:569,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:569,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:569,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:570,1
    - Dst: convert_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:574,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:579,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:579,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:579,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:579,1
    - Dst: RedisResult::pop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:582,1
    - Dst: ok_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:582,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:583,1
    - Dst: future::select_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:591,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:592,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:592,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:594,1
    - Dst: get_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:594,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:591,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:611,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:611,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:611,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:612,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:618,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:618,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:620,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:622,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:628,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:630,1
    - Dst: None::unwrap_or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:630,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:631,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:640,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:640,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:640,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:640,1
    - Dst: crate::cluster_routing::aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:642,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:645,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:645,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:645,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:645,1
    - Dst: crate::cluster_routing::logical_aggregate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:647,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:650,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:650,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:650,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:650,1
    - Dst: crate::cluster_routing::combine_and_sort_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:654,1
    - Dst: crate::cluster_routing::combine_array_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:658,1
    - Dst: future::try_join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:663,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:663,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:663,1
    - Dst: crate::cluster_routing::combine_map_results
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:664,1
    - Dst: future::join_all
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:669,1
    - Dst: Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:669,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:669,1
    - Dst: convert_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:671,1
    - Dst: or_else
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:671,1
    - Dst: try_into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:671,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:672,1
    - Dst: Value::ServerError
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:672,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:673,1
    - Dst: Ok::<_, RedisError>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:675,1
    - Dst: Value::BulkString
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:676,1
    - Dst: ConnectionAddr::to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:676,1
    - Dst: String::into_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:676,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:669,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:669,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:683,1
    - Dst: Value::Map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:683,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 162
    argCount: 3
    argNames:
    - receivers
    - routing
    - response_policy
    argTypes:
    - Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>
    - '&MultipleNodeRoutingInfo'
    - Option<ResponsePolicy>
    constantsTouched: []
    func_position:
      end: 686
      start: 550
    functionDepth: 46
    functionLinenumber: 550
    functionLinenumberEnd: 686
    functionName: Core::aggregate_results
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - crate::cluster_routing::combine_array_results
    - Value::ServerError
    - Err
    - get_receiver
    - crate::cluster_routing::logical_aggregate
    - crate::cluster_routing::combine_map_results
    - future::join_all
    - into_iter
    - map
    - Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::into_iter
    - Ok::<_, RedisError>
    - or_else
    - RedisResult::pop
    - future::select_ok
    - Vec<(NodeAddress, oneshot::Receiver<RedisResult<Response>>)>::is_empty
    - ConnectionAddr::to_string
    - ok_or
    - map_err
    - convert_result
    - String::into_bytes
    - "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<_>, _>>"
    - RedisError::from
    - Value::Map
    - None::unwrap_or_else
    - and_then
    - into
    - Box::pin
    - crate::cluster_routing::combine_and_sort_array_results
    - Ok
    - Value::BulkString
    - crate::cluster_routing::aggregate
    - len
    - std::iter::Chain::map
    - try_into
    - future::try_join_all
    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:696,1
    - Dst: Core::get_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:702,1
    - Dst: ConnectionAddr::into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:704,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:705,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:705,1
    - Dst: SubscriptionTracker::to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:711,1
    - Dst: Cmd::as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:711,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:713,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:713,1
    - Dst: update_with_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:714,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:705,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:721,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 2
    argNames:
    - cmd
    - routing
    argTypes:
    - Arc<Cmd>
    - InternalRoutingInfo<C>
    constantsTouched: []
    func_position:
      end: 723
      start: 688
    functionDepth: 62
    functionLinenumber: 688
    functionLinenumberEnd: 723
    functionName: Core::try_cmd_request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Core::get_connection
    - ConnectionAddr::into
    - RedisResult::req_packed_command
    - SubscriptionTracker::to_request
    - Cmd::as_ref
    - lock
    - map
    - Self::unwrap
    - inspect
    - Err
    - update_with_request
    - Core::execute_on_multiple_nodes
    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:732,1
    - Dst: RedisResult::req_packed_commands
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:735,1
    - Dst: inspect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:735,1
    - Dst: is_transaction
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:741,1
    - Dst: cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:750,1
    - Dst: impl Iterator::enumerate
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:750,1
    - Dst: flat_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:750,1
    - Dst: SubscriptionTracker::to_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:757,1
    - Dst: peekable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:750,1
    - Dst: peek
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:761,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:761,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:762,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:762,1
    - Dst: update_with_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:764,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:735,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:770,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: 772
      start: 725
    functionDepth: 66
    functionLinenumber: 725
    functionLinenumberEnd: 772
    functionName: Core::try_pipeline_request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - update_with_request
    - Core::get_connection
    - SubscriptionTracker::to_request
    - lock
    - map
    - RedisResult::req_packed_commands
    - impl Iterator::enumerate
    - Self::unwrap
    - flat_map
    - inspect
    - Err
    - cmd_iter
    - peekable
    - peek
    - is_some
    - is_transaction
    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: Core::try_cmd_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:776,1
    - Dst: Core::try_pipeline_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - CmdArg<C>
    constantsTouched: []
    func_position:
      end: 787
      start: 774
    functionDepth: 63
    functionLinenumber: 774
    functionLinenumberEnd: 787
    functionName: Core::try_request
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - 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:793,1
    - Dst: slot_addr_for_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:797,1
    - Dst: as_deref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:799,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:797,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:802,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:805,1
    - Dst: Core::get_redirected_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:807,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:810,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:810,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:811,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:813,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:816,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:813,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:795,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:823,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:823,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:826,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:829,1
    - Dst: Core::connect_check_and_add
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:830,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:830,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:830,1
    - Dst: read
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:841,1
    - Dst: get_random_connection
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:842,1
    - Dst: drop
      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:846,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:847,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:853,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 91
    argCount: 1
    argNames:
    - route
    argTypes:
    - InternalSingleNodeRouting<C>
    constantsTouched: []
    func_position:
      end: 854
      start: 789
    functionDepth: 61
    functionLinenumber: 789
    functionLinenumberEnd: 854
    functionName: Core::get_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 2
    functionsReached:
    - get
    - into
    - Some
    - slot_addr_for_route
    - to_string
    - ok
    - Ok
    - map
    - as_deref
    - Core::connect_check_and_add
    - Core::get_redirected_connection
    - Err
    - drop
    - read
    - get_random_connection
    - cloned
    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:862,1
    - Dst: get
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:863,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:863,1
    - Dst: drop
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:864,1
    - Dst: Core::connect_check_and_add
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:867,1
    - Dst: crate::cmd::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:870,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:872,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:872,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:875,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:878,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 1
    argNames:
    - redirect
    argTypes:
    - Redirect
    constantsTouched: []
    func_position:
      end: 879
      start: 856
    functionDepth: 61
    functionLinenumber: 856
    functionLinenumberEnd: 879
    functionName: Core::get_redirected_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - get
    - and_then
    - RedisResult::req_packed_command
    - Ok
    - Core::connect_check_and_add
    - impl combine::Parser::extract_error
    - drop
    - read
    - crate::cmd::cmd
    - cloned
    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:882,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:884,1
    - Dst: insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:884,1
    - Dst: ConnectionAddr::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:888,1
    - Dst: RedisResult::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:888,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:889,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:891,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - addr
    argTypes:
    - '&NodeAddress'
    constantsTouched: []
    func_position:
      end: 893
      start: 881
    functionDepth: 51
    functionLinenumber: 881
    functionLinenumberEnd: 893
    functionName: Core::connect_check_and_add
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 2
    functionsReached:
    - insert
    - Ok
    - write
    - Err
    - ConnectionAddr::clone
    - RedisResult::clone
    - connect_and_check::<C>
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_check_and_add(&self, addr: &NodeAddress) -> RedisResult<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:897,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:900,1
    - Dst: slot_cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:903,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:905,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:905,1
    - Dst: impl combine::Parser::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:908,1
    - Dst: '{

        AsyncConnectionConfig,Cmd,ConnectionInfo,ErrorKind,IntoConnectionInfo,RedisError,

        RedisFuture,RedisResult,ToRedisArgs,Value,

        aio::

        topology::parse_slots'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:909,1
    - Dst: ConnectionAddr::host
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:909,1
    - Dst: build_slot_map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:910,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:913,1
    - Dst: ClusterClientBuilder::on_topology_changed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:920,1
    - Dst: RedisResult::topology
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:920,1
    - Dst: RedisResult::values
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:923,1
    - Dst: Self::flatten
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:923,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:923,1
    - Dst: values().flatten().cloned().collect::<HashSet<_>>
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:923,1
    - Dst: Core::refresh_connections_locked
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:924,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:926,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 927
      start: 896
    functionDepth: 51
    functionLinenumber: 896
    functionLinenumberEnd: 927
    functionName: Core::refresh_slots
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - and_then
    - RedisResult::req_packed_command
    - Ok
    - write
    - RedisResult::topology
    - ConnectionAddr::host
    - ClusterClientBuilder::on_topology_changed
    - build_slot_map
    - impl combine::Parser::extract_error
    - Core::refresh_connections_locked
    - values().flatten().cloned().collect::<HashSet<_>>
    - is_ok
    - '{

      AsyncConnectionConfig,Cmd,ConnectionInfo,ErrorKind,IntoConnectionInfo,RedisError,

      RedisFuture,RedisResult,ToRedisArgs,Value,

      aio::

      topology::parse_slots'
    - slot_cmd
    - RedisResult::values
    - cloned
    - Self::flatten
    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:934,1
    - Dst: into_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:936,1
    - Dst: std::iter::Chain::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:936,1
    - Dst: RedisResult::remove
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:939,1
    - Dst: get_or_create_conn
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:941,1
    - Dst: "into_iter()\n            .map(|addr| {\n                let connection\
        \ = connections.remove(&addr);\n                async move {\n           \
        \         let res = get_or_create_conn(&addr, connection, &self.cluster_params).await;\n\
        \                    (addr, res)\n                }\n            })\n    \
        \        .collect::<Vec<_>>"
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:936,1
    - Dst: stream::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:947,1
    - Dst: buffer_unordered
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:947,1
    - Dst: max
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:948,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:947,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:951,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 2
    argNames:
    - connections
    - nodes
    argTypes:
    - '&mut ConnectionMap<C>'
    - HashSet<NodeAddress>
    constantsTouched: []
    func_position:
      end: 956
      start: 929
    functionDepth: 43
    functionLinenumber: 929
    functionLinenumberEnd: 956
    functionName: Core::refresh_connections_locked
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - into_iter
    - RedisResult::remove
    - RedisResult::insert
    - len
    - max
    - fold
    - get_or_create_conn
    - "into_iter()\n            .map(|addr| {\n                let connection = connections.remove(&addr);\n\
      \                async move {\n                    let res = get_or_create_conn(&addr,\
      \ connection, &self.cluster_params).await;\n                    (addr, res)\n\
      \                }\n            })\n            .collect::<Vec<_>>"
    - std::iter::Chain::map
    - buffer_unordered
    - stream::iter
    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:959,1
    - Dst: lock
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:963,1
    - Dst: Self::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:963,1
    - Dst: get_subscription_pipeline
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:963,1
    - Dst: into_cmd_iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:969,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:969,1
    - Dst: RoutingInfo::for_routable
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:970,1
    - Dst: Option::unwrap_or
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:970,1
    - Dst: RoutingInfo::SingleNode
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:971,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:970,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:977,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 985
      start: 958
    functionDepth: 43
    functionLinenumber: 958
    functionLinenumberEnd: 985
    functionName: Core::resubscribe
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RoutingInfo::for_routable
    - into
    - lock
    - send
    - into_cmd_iter
    - map
    - Self::unwrap
    - get_subscription_pipeline
    - Arc::new
    - as_ref
    - Option::unwrap_or
    - RoutingInfo::SingleNode
    linkageType: ''
    returnType: void
    signature: fn resubscribe(&self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1001,1
    - Dst: Runtime::locate_and_sleep
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1001,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - duration
    argTypes:
    - Duration
    constantsTouched: []
    func_position:
      end: 1002
      start: 1000
    functionDepth: 49
    functionLinenumber: 1000
    functionLinenumberEnd: 1002
    functionName: boxed_sleep
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    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: 1020
      start: 1018
    functionDepth: 0
    functionLinenumber: 1018
    functionLinenumberEnd: 1020
    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: 1048
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1048
    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:1052,1
    - Dst: SlotMap::fill_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1053,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - slot_map
    - slots_data
    argTypes:
    - '&mut SlotMap'
    - Vec<Slot>
    constantsTouched: []
    func_position:
      end: 1056
      start: 1051
    functionDepth: 56
    functionLinenumber: 1051
    functionLinenumberEnd: 1056
    functionName: build_slot_map
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - SlotMap::clear
    - Ok
    - SlotMap::fill_slots
    linkageType: ''
    returnType: RedisResult
    signature: 'fn build_slot_map(slot_map: &mut SlotMap, slots_data: Vec<Slot>) ->
      RedisResult<()>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1063,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1064,1
    - Dst: Mutex::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1064,1
    - Dst: SubscriptionTracker::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1064,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1069,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1069,1
    - Dst: create_strategy
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1072,1
    - Dst: mpsc::unbounded_channel
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1074,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1075,1
    - Dst: RwLock::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1076,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1076,1
    - Dst: SlotMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1076,1
    - Dst: to_vec
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1079,1
    - Dst: Core
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1083,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1085,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1086,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1091,1
    - Dst: RecoverFuture::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1091,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1091,1
    - Dst: RedisResult::reconnect_to_initial_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1092,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 2
    argNames:
    - initial_nodes
    - cluster_params
    argTypes:
    - '&[ConnectionInfo]'
    - ClusterParams
    constantsTouched: []
    func_position:
      end: 1095
      start: 1062
    functionDepth: 50
    functionLinenumber: 1062
    functionLinenumberEnd: 1095
    functionName: ClusterConnInner::new
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Some
    - ConnectionState::Recover
    - Arc::new
    - is_some
    - RecoverFuture::Reconnect
    - SlotMap::new
    - map
    - RedisResult::reconnect_to_initial_nodes
    - mpsc::unbounded_channel
    - as_ref
    - Mutex::new
    - create_strategy
    - SubscriptionTracker::default
    - to_vec
    - Box::pin
    - Core
    - RwLock::new
    - Default::default
    - Self::clone
    linkageType: ''
    returnType: Self
    signature: 'fn new(initial_nodes: &[ConnectionInfo], cluster_params: ClusterParams)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: stream::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1101,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1101,1
    - Dst: cloned
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1101,1
    - Dst: map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1101,1
    - Dst: NodeAddress::try_from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1103,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1104,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1106,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1109,1
    - Dst: buffer_unordered
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1101,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1113,1
    - Dst: fold
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1101,1
    - Dst: ConnectionMap::<C>::with_capacity
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1115,1
    - Dst: len
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1115,1
    - Dst: RedisResult::insert
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1119,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1124,1
    - Dst: RedisResult::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1131,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1133,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1133,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1136,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1139,1
    - Dst: RedisError::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1139,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1145,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 61
    argCount: 2
    argNames:
    - initial_nodes
    - params
    argTypes:
    - '&[ConnectionInfo]'
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 1146
      start: 1097
    functionDepth: 62
    functionLinenumber: 1097
    functionLinenumberEnd: 1146
    functionName: ClusterConnInner::create_initial_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - iter
    - to_string
    - map
    - Ok
    - RedisResult::insert
    - len
    - NodeAddress::try_from
    - fold
    - RedisResult::is_empty
    - Err
    - buffer_unordered
    - RedisError::from
    - ConnectionMap::<C>::with_capacity
    - cloned
    - stream::iter
    - connect_and_check
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn create_initial_connections(initial_nodes: &[ConnectionInfo],params:
      &ClusterParams,) -> RedisResult<ConnectionMap<C>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1150,1
    - Dst: Self::create_initial_connections
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1153,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1155,1
    - Dst: SlotMap::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1155,1
    - Dst: RedisResult::refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1156,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1157,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1148
    functionDepth: 46
    functionLinenumber: 1148
    functionLinenumberEnd: 1159
    functionName: ClusterConnInner::reconnect_to_initial_nodes
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - SlotMap::new
    - Ok
    - clone
    - write
    - RedisResult::refresh_slots
    - Self::create_initial_connections
    linkageType: ''
    returnType: impl Future
    signature: fn reconnect_to_initial_nodes(&mut self) -> impl Future<Output = RedisResult<()>>
      + use<C>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1165,1
    - Dst: write
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1167,1
    - Dst: RedisResult::refresh_connections_locked
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1169,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - addrs
    argTypes:
    - HashSet<NodeAddress>
    constantsTouched: []
    func_position:
      end: 1173
      start: 1161
    functionDepth: 48
    functionLinenumber: 1161
    functionLinenumberEnd: 1173
    functionName: ClusterConnInner::refresh_connections
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - clone
    - RedisResult::refresh_connections_locked
    - write
    linkageType: ''
    returnType: impl Future
    signature: 'fn refresh_connections(&mut self,addrs: HashSet<NodeAddress>,) ->
      impl Future<Output = ()> + use<C>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::mem::replace
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1177,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1184,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1185
    functionName: ClusterConnInner::wait_for_initial_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Ok
    - std::mem::replace
    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:1189,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1189,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1197,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1201,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1201,1
    - Dst: refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1201,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1202,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1211,1
    - Dst: is_ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1214,1
    - Dst: resubscribe
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1215,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1217,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 42
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1218
      start: 1187
    functionDepth: 48
    functionLinenumber: 1187
    functionLinenumberEnd: 1218
    functionName: ClusterConnInner::poll_recover
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    - Ok
    - clone
    - Err
    - resubscribe
    - is_ok
    - Poll::Ready
    - refresh_slots
    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:1223,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1226,1
    - Dst: try_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1226,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1226,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1227,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1227,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1228,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1229,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1231,1
    - Dst: boxed_sleep
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1240,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1242,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1242,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1243,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - request_handling
    argTypes:
    - Option<Retry<C>>
    constantsTouched: []
    func_position:
      end: 1250
      start: 1220
    functionDepth: 48
    functionLinenumber: 1220
    functionLinenumberEnd: 1250
    functionName: ClusterConnInner::handle_retries
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - Box::pin
    - send
    - boxed_sleep
    - clone
    - try_request
    - push
    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:1256,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1265,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1269,1
    - Dst: try_request
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1269,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1269,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1269,1
    - Dst: push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1270,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1270,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1271,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1272,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1279,1
    - Dst: RedisServer::poll_next
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1279,1
    - Dst: ClusterConnInner::handle_retries
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1284,1
    - Dst: change_state
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1285,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1288,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1290,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 61
    argCount: 1
    argNames:
    - cx
    argTypes:
    - '&mut task::Context<''_>'
    constantsTouched: []
    func_position:
      end: 1294
      start: 1252
    functionDepth: 48
    functionLinenumber: 1252
    functionLinenumberEnd: 1294
    functionName: ClusterConnInner::poll_complete
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - Box::pin
    - Pin::new
    - try_recv
    - clone
    - is_empty
    - try_request
    - boxed
    - is_closed
    - RedisServer::poll_next
    - ClusterConnInner::handle_retries
    - change_state
    - Poll::Ready
    - push
    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:1297,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1301,1
    - Dst: Pin::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1302,1
    - Dst: RedisServer::iter_pin_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1302,1
    - Dst: Option::as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1303,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1304,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1308,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1308,1
    - Dst: RedisServer::is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1310,1
    - Dst: try_recv
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1312,1
    - Dst: ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1312,1
    - Dst: RedisServer::push
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1314,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1314,1
    - Dst: ClusterConnInner::handle_retries
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1318,1
    - Dst: request::choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1319,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1320,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1327
      start: 1296
    functionDepth: 52
    functionLinenumber: 1296
    functionLinenumberEnd: 1327
    functionName: ClusterConnInner::send_refresh_error
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - RedisServer::iter_pin_mut
    - Vec::new
    - Option::as_mut
    - ok
    - Pin::new
    - try_recv
    - clone
    - request::choose_response
    - take
    - Err
    - RedisServer::push
    - ClusterConnInner::handle_retries
    - std::mem::take
    - RedisServer::is_empty
    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:1339,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1340,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1341,1
    - Dst: connect_and_check
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1344,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 3
    argNames:
    - addr
    - conn_option
    - params
    argTypes:
    - '&NodeAddress'
    - Option<C>
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 1346
      start: 1330
    functionDepth: 1
    functionLinenumber: 1330
    functionLinenumberEnd: 1346
    functionName: get_or_create_conn
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    - check_connection
    - connect_and_check
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn get_or_create_conn<C>(addr: &NodeAddress,conn_option: Option<C>,params:
      &ClusterParams,) -> 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:1371,1
    - Dst: Self::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - next_state
    argTypes:
    - PollFlushAction
    constantsTouched: []
    func_position:
      end: 1375
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1375
    functionName: PollFlushAction::change_state
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Self::Reconnect
    - impl Iterator::extend
    linkageType: ''
    returnType: PollFlushAction
    signature: 'fn change_state(self, next_state: PollFlushAction) -> PollFlushAction'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1385,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - _cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1386
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1386
    functionName: ClusterConnInner::poll_ready
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Poll::Ready
    - Ok
    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:1392,1
    - Dst: request::ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1394,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msg
    argTypes:
    - Pin<&mut Self>
    - Message<C>
    constantsTouched: []
    func_position:
      end: 1398
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1398
    functionName: ClusterConnInner::start_send
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - send
    - request::ResultExpectation::External
    - Ok
    linkageType: ''
    returnType: Result
    signature: 'fn start_send(self: Pin<&mut Self>, msg: 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:1406,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1412,1
    - Dst: Pin<&mut Self>::waker
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1417,1
    - Dst: wake_by_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1417,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1422,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1422,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1424,1
    - Dst: RecoverFuture::RecoverSlots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1424,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1424,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1425,1
    - Dst: refresh_slots
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1425,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1429,1
    - Dst: RecoverFuture::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1429,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1429,1
    - Dst: ClusterConnInner::refresh_connections
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1430,1
    - Dst: impl Future::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1430,1
    - Dst: ConnectionState::Recover
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1434,1
    - Dst: RecoverFuture::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1434,1
    - Dst: Box::pin
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1434,1
    - Dst: ClusterConnInner::reconnect_to_initial_nodes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1435,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 54
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1440
      start: 1400
    functionDepth: 53
    functionLinenumber: 1400
    functionLinenumberEnd: 1440
    functionName: ClusterConnInner::poll_flush
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - Box::pin
    - Pin<&mut Self>::waker
    - Ok
    - ConnectionState::Recover
    - clone
    - impl Future::map
    - ClusterConnInner::reconnect_to_initial_nodes
    - RecoverFuture::RecoverSlots
    - ClusterConnInner::refresh_connections
    - wake_by_ref
    - ClusterConnInner::send_refresh_error
    - Poll::Ready
    - RecoverFuture::Reconnect
    - refresh_slots
    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:1447,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1449,1
    - Dst: is_empty
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1454,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1455,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1455,1
    - Dst: ClusterConnInner::poll_flush
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1458,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 1459
      start: 1442
    functionDepth: 49
    functionLinenumber: 1442
    functionLinenumberEnd: 1459
    functionName: ClusterConnInner::poll_close
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - ClusterConnInner::poll_flush
    - Ok
    - is_empty
    - ClusterConnInner::poll_complete
    - Err
    - Poll::Ready
    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:1505,1
    - Dst: crate::Client::open
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1506,1
    - Dst: get_multiplexed_async_connection_with_config
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1507,1
    - Dst: boxed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1504,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - info
    - config
    argTypes:
    - T
    - AsyncConnectionConfig
    constantsTouched: []
    func_position:
      end: 1512
      start: 1500
    functionDepth: 57
    functionLinenumber: 1500
    functionLinenumberEnd: 1512
    functionName: MultiplexedConnection::connect_with_config
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 0
    functionsReached:
    - crate::Client::open
    - get_multiplexed_async_connection_with_config
    - redis::ConnectionInfo::into_connection_info
    - boxed
    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:1519,1
    - Dst: AsyncConnectionConfig::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1521,1
    - Dst: Self::set_connection_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1521,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1521,1
    - Dst: Self::set_response_timeout
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1522,1
    - Dst: Self::set_push_sender_internal
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1525,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1525,1
    - Dst: Self::set_dns_resolver_internal
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1528,1
    - Dst: Self::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1528,1
    - Dst: Self::set_cache_manager
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1532,1
    - Dst: Self::clone_and_increase_epoch
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1532,1
    - Dst: Self::set_credentials_provider_internal
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1536,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1536,1
    - Dst: Self::set_concurrency_limit
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1539,1
    - Dst: C::connect_with_config
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1541,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1545,1
    - Dst: cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1551,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1553,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1554,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 76
    argCount: 2
    argNames:
    - node
    - params
    argTypes:
    - '&NodeAddress'
    - '&ClusterParams'
    constantsTouched: []
    func_position:
      end: 1555
      start: 1515
    functionDepth: 54
    functionLinenumber: 1515
    functionLinenumberEnd: 1555
    functionName: connect_and_check
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 2
    functionsReached:
    - Some
    - Self::set_push_sender_internal
    - RedisResult::req_packed_command
    - cmd
    - Ok
    - Self::set_credentials_provider_internal
    - Self::clone
    - clone
    - Self::set_concurrency_limit
    - Self::set_connection_timeout
    - Self::set_cache_manager
    - Err
    - get_connection_info
    - AsyncConnectionConfig::default
    - Self::clone_and_increase_epoch
    - C::connect_with_config
    - Self::set_dns_resolver_internal
    - Self::set_response_timeout
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn connect_and_check<C>(node: &NodeAddress, params: &ClusterParams)
      -> 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:1561,1
    - Dst: RedisResult::req_packed_command
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1563,1
    - Dst: and_then
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1563,1
    - Dst: Result::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1565,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs:1566,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - conn
    argTypes:
    - '&mut C'
    constantsTouched: []
    func_position:
      end: 1567
      start: 1557
    functionDepth: 44
    functionLinenumber: 1557
    functionLinenumberEnd: 1567
    functionName: check_connection
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/mod.rs
    functionUses: 8
    functionsReached:
    - and_then
    - Result::extract_error
    - RedisResult::req_packed_command
    - cmd
    - Ok
    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:61,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:61,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:59,1
    - Dst: Box::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:73,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - redirect
    argTypes:
    - Option<Redirect>
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 52
    functionLinenumber: 54
    functionLinenumberEnd: 79
    functionName: CmdArg::set_redirect
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - into
    - std::mem::take
    - 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:87,1
    - Dst: Self::as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:87,1
    - Dst: InternalSingleNodeRouting::ByAddress
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:93,1
    - Dst: std::mem::take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:93,1
    - Dst: fix_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:101,1
    - Dst: fix_route
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 108
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 108
    functionName: CmdArg::reset_routing
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - fix_route
    - Self::as_mut
    - std::mem::take
    - InternalSingleNodeRouting::ByAddress
    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:136,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:137,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - result
    argTypes:
    - RedisResult<Response>
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    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:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 146
    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: impl combine::Parser::is_error_that_requires_action
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:173,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:174,1
    - Dst: impl combine::Parser::clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:174,1
    - Dst: Self::extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:174,1
    - Dst: RedisResult::unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:174,1
    - Dst: Self::iter
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:176,1
    - Dst: position
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:176,1
    - Dst: impl combine::Parser::is_error_that_requires_action
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:178,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:176,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:179,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:179,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:179,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:185,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:185,1
    - Dst: saturating_add
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:205,1
    - Dst: '&RetryParams::wait_time_for_retry'
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:207,1
    - Dst: retry_method
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:209,1
    - Dst: PollFlushAction::Reconnect
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:223,1
    - Dst: HashSet::from
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:223,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:228,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:228,1
    - Dst: send
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:277,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 79
    argCount: 3
    argNames:
    - result
    - request
    - retry_params
    argTypes:
    - OperationResult
    - PendingRequest<C>
    - '&RetryParams'
    constantsTouched: []
    func_position:
      end: 286
      start: 164
    functionDepth: 67
    functionLinenumber: 164
    functionLinenumberEnd: 286
    functionName: choose_response
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 1
    functionsReached:
    - Some
    - retry_method
    - send
    - extract_error
    - unwrap_err
    - Err
    - PollFlushAction::Reconnect
    - saturating_add
    - impl combine::Parser::is_error_that_requires_action
    - HashSet::from
    - clone
    - RedisResult::unwrap_err
    - Self::extract_error
    - position
    - Self::iter
    - Ok
    - '&RetryParams::wait_time_for_retry'
    - Option::map
    - impl combine::Parser::clone
    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:292,1
    - Dst: project
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:292,1
    - Dst: is_none
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:293,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:293,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:293,1
    - Dst: is_closed
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:293,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:294,1
    - Dst: as_mut
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:297,1
    - Dst: project
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:297,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:302,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:304,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:304,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:301,1
    - Dst: take
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:314,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:314,1
    - Dst: Poll::Ready
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:315,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:315,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 2
    argNames:
    - cx
    argTypes:
    - Pin<&mut Self>
    - '&mut task::Context'
    constantsTouched: []
    func_position:
      end: 316
      start: 291
    functionDepth: 68
    functionLinenumber: 291
    functionLinenumberEnd: 316
    functionName: Request::poll
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - Some
    - is_none
    - into
    - take
    - as_ref
    - Request::as_mut
    - unwrap
    - is_closed
    - as_mut
    - choose_response
    - Poll::Ready
    - project
    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:342,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:342,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:346,1
    - Dst: clone
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - request
    argTypes:
    - '&PendingRequest<C>'
    constantsTouched: []
    func_position:
      end: 350
      start: 336
    functionDepth: 48
    functionLinenumber: 336
    functionLinenumberEnd: 350
    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:358,1
    - Dst: ResultExpectation::External
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:362,1
    - Dst: Arc::new
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:364,1
    - Dst: crate::cmd
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:364,1
    - Dst: into
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - retry
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 370
      start: 352
    functionDepth: 52
    functionLinenumber: 352
    functionLinenumberEnd: 370
    functionName: tests::request_and_receiver
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - into
    - oneshot::channel
    - Arc::new
    - ResultExpectation::External
    - 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:375,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:375,1
    - Dst: RedisResult::map
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - val
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 376
      start: 374
    functionDepth: 54
    functionLinenumber: 374
    functionLinenumberEnd: 376
    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:379,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:379,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:379,1
    - Dst: extract_error
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:379,1
    - Dst: unwrap_err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - error
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 383
      start: 378
    functionDepth: 54
    functionLinenumber: 378
    functionLinenumberEnd: 383
    functionName: tests::to_err
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - crate::parse_redis_value
    - as_bytes
    - extract_error
    - unwrap_err
    - 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:387,1
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:389,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:390,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:391,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:392,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:403,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:404,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:405,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 410
      start: 386
    functionDepth: 53
    functionLinenumber: 386
    functionLinenumberEnd: 410
    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:
    - RetryParams::default
    - err
    - single_result
    - request_and_receiver
    - choose_response
    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:415,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:416,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:417,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:418,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:419,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:430,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:431,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 437
      start: 413
    functionDepth: 55
    functionLinenumber: 413
    functionLinenumberEnd: 437
    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:
    - RetryParams::default
    - err
    - single_result
    - request_and_receiver
    - choose_response
    linkageType: ''
    returnType: void
    signature: fn should_retry_and_refresh_slots_on_move_error_if_retries_remain()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:441,1
    - Dst: single_result
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:443,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:444,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 450
      start: 440
    functionDepth: 53
    functionLinenumber: 440
    functionLinenumberEnd: 450
    functionName: tests::never_retry_on_fanout_operation_target
    functionSourceFile: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs
    functionUses: 0
    functionsReached:
    - request_and_receiver
    - RetryParams::default
    - single_result
    - choose_response
    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:455,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:457,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:458,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:459,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:460,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:471,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:472,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:473,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 478
      start: 453
    functionDepth: 55
    functionLinenumber: 453
    functionLinenumberEnd: 478
    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:
    - RetryParams::default
    - err
    - single_result
    - request_and_receiver
    - choose_response
    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:482,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: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:485,1
    - Dst: RetryParams::default
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:486,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:487,1
    - Dst: request_and_receiver
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:498,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:499,1
    - Dst: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:499,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:500,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: err
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:512,1
    - Dst: choose_response
      Src: /src/redis-rs/redis/src/cluster_handling/async_connection/request.rs:513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 522
      start: 481
    functionDepth: 53
    functionLinenumber: 481
    functionLinenumberEnd: 522
    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:
    - RetryParams::default
    - err
    - Err
    - RedisError::from
    - request_and_receiver
    - choose_response
    linkageType: ''
    returnType: void
    signature: fn complete_disconnect_should_reconnect_from_initial_nodes_regardless_of_target()
  - 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: 41
    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: Coord
    signature: 'pub fn lon_lat(longitude: T, latitude: T) -> Coord<T>'
  - 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: 50
    functionLinenumber: 69
    functionLinenumberEnd: 80
    functionName: Coord::from_redis_value_ref
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - Ok
    - FromRedisValue::from_redis_value_ref
    - Self::into_iter
    - Self::next
    - 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: 49
    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: 42
    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: 53
    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: 53
    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: 41
    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:251,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/geo.rs:251,1
    - Dst: Result::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
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/geo.rs:252,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/geo.rs:252,1
    - Dst: Result::len
      Src: /src/redis-rs/redis/src/commands/geo.rs:252,1
    - Dst: unwrap_or
      Src: /src/redis-rs/redis/src/commands/geo.rs:252,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 235
    functionDepth: 48
    functionLinenumber: 235
    functionLinenumberEnd: 254
    functionName: RadiusOptions::num_of_args
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - map
    - unwrap_or
    - as_ref
    - is_some
    - Result::len
    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:274,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/geo.rs:275,1
    - Dst: RadiusSearchResult::parse_multi_values
      Src: /src/redis-rs/redis/src/commands/geo.rs:281,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/commands/geo.rs:282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 284
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 284
    functionName: RadiusSearchResult::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 0
    functionsReached:
    - String::from_utf8
    - RadiusSearchResult::parse_multi_values
    - errors::invalid_type_error
    - Ok
    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:289,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/geo.rs:292,1
    - Dst: Option::map
      Src: /src/redis-rs/redis/src/commands/geo.rs:292,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/geo.rs:294,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/geo.rs:294,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/geo.rs:297,1
    - Dst: next
      Src: /src/redis-rs/redis/src/commands/geo.rs:297,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/geo.rs:300,1
    - Dst: Coord::from_redis_value
      Src: /src/redis-rs/redis/src/commands/geo.rs:300,1
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/geo.rs:300,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/geo.rs:303,1
    - Dst: Self::map
      Src: /src/redis-rs/redis/src/commands/geo.rs:305,1
    - Dst: Some
      Src: /src/redis-rs/redis/src/commands/geo.rs:306,1
    - Dst: errors::invalid_type_error
      Src: /src/redis-rs/redis/src/commands/geo.rs:312,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/geo.rs:315,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 1
    argNames:
    - items
    argTypes:
    - Vec<Value>
    constantsTouched: []
    func_position:
      end: 316
      start: 288
    functionDepth: 65
    functionLinenumber: 288
    functionLinenumberEnd: 316
    functionName: RadiusSearchResult::parse_multi_values
    functionSourceFile: /src/redis-rs/redis/src/commands/geo.rs
    functionUses: 1
    functionsReached:
    - Some
    - into
    - errors::invalid_type_error
    - Ok
    - Option::map
    - Vec<Value>::into_iter
    - Err
    - Coord::from_redis_value
    - next
    - Self::map
    - Value::Array
    - 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:337,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 339
      start: 336
    functionDepth: 65
    functionLinenumber: 336
    functionLinenumberEnd: 339
    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:344,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:350,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:352,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:354,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:356,1
    - Dst: assert_args
      Src: /src/redis-rs/redis/src/commands/geo.rs:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 371
      start: 342
    functionDepth: 53
    functionLinenumber: 342
    functionLinenumberEnd: 371
    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: 50
    functionLinenumber: 3
    functionLinenumberEnd: 42
    functionName: implement_command_async
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached:
    - Box::pin
    - query_async
    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: 57
    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 Cmd::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 Cmd::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 Cmd::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 Cmd::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 Cmd::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: 44
    functionLinenumber: 85
    functionLinenumberEnd: 172
    functionName: implement_iterators
    functionSourceFile: /src/redis-rs/redis/src/commands/macros.rs
    functionUses: 0
    functionsReached:
    - cursor_arg
    - cmd
    - arg
    - '&mut Cmd::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: 41
    functionLinenumber: 26
    functionLinenumberEnd: 37
    functionName: StreamMaxlen::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - 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: 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: 41
    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:
    - Self::MinId
    - impl Into<String>::into
    linkageType: ''
    returnType: Self
    signature: 'pub fn minid(trim: StreamTrimmingMode, stream_id: impl Into<String>)
      -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimStrategy::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: StreamTrimStrategy::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
    - StreamTrimStrategy::MinId
    - StreamTrimStrategy::MaxLen
    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: 41
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: StreamTrimStrategy::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - write_arg
    - TlsFilePaths::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: 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: 42
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: StreamTrimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - as_ref
    - 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: 41
    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:
    - Some
    - Err
    - 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:
    - Some
    - Err
    - 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:
    - Some
    - Err
    - 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:
    - Some
    - Err
    - 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: 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: 41
    functionLinenumber: 341
    functionLinenumberEnd: 353
    functionName: StreamConfigOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - String::as_bytes
    - Result::to_string
    - to_string
    - as_bytes
    - 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: 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:
    - Some
    - impl Into<String>::into
    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:
    - Some
    - impl Into<String>::into
    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: ClusterClientBuilder::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: 41
    functionLinenumber: 449
    functionLinenumberEnd: 465
    functionName: StreamAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - ClusterClientBuilder::write_redis_args
    - Self::write_redis_args
    - write_arg
    - as_ref
    - 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: 41
    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: 41
    functionLinenumber: 569
    functionLinenumberEnd: 595
    functionName: StreamClaimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::write_redis_args
    - 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: 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: 53
    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: 41
    functionLinenumber: 670
    functionLinenumberEnd: 705
    functionName: StreamReadOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    - is_some
    - 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: 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: StreamId::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: 53
    functionLinenumber: 1007
    functionLinenumberEnd: 1019
    functionName: StreamId::from_array_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Self::first_mut
    - from_redis_value
    - StreamId::default
    - std::mem::take
    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: 55
    functionLinenumber: 1023
    functionLinenumberEnd: 1028
    functionName: StreamId::get
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - get
    - from_redis_value_ref
    - Result::ok
    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: 57
    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: 45
    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: 46
    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:
    - Vec::new
    - iter
    - find
    - std::iter::Chain::filter_map
    - Ok
    - pop
    - map
    - Default::default
    - len
    - is_empty
    - collect
    - std::iter::Chain::flat_map
    - into_iter
    - Self::into_iter
    - unwrap
    - from_redis_value
    - invalid_type_error
    - RedisResult::into_iter
    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: Result::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: Result::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: 48
    functionLinenumber: 1134
    functionLinenumberEnd: 1147
    functionName: StreamReadReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Self::from_standard_rows
    - Self::from_claim_rows
    - Result::clone
    - from_redis_value::<SRRows>
    - from_redis_value::<SRClaimRows>
    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: 65
    functionLinenumber: 1151
    functionLinenumberEnd: 1172
    functionName: StreamReadReply::from_standard_rows
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - map
    - std::iter::Chain::flat_map
    - collect
    - Self::into_iter
    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: 65
    functionLinenumber: 1174
    functionLinenumberEnd: 1197
    functionName: StreamReadReply::from_claim_rows
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - map
    - std::iter::Chain::flat_map
    - collect
    - Self::into_iter
    - std::iter::Chain::map
    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: 50
    functionLinenumber: 1201
    functionLinenumberEnd: 1215
    functionName: StreamRangeReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - map
    - std::iter::Chain::flat_map
    - Ok
    - collect
    - Self::into_iter
    - from_redis_value
    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: 50
    functionLinenumber: 1219
    functionLinenumberEnd: 1233
    functionName: StreamClaimReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - into_iter
    - map
    - std::iter::Chain::flat_map
    - Ok
    - collect
    - Self::into_iter
    - from_redis_value
    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: ClusterConnection::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: StreamPendingReply::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: 50
    functionLinenumber: 1243
    functionLinenumberEnd: 1279
    functionName: StreamPendingReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamPendingData::default
    - into_iter
    - StreamPendingReply::Data
    - ClusterConnection::parse
    - Ok
    - map
    - Default::default
    - ParsingError::from
    - unwrap_or_default
    - collect
    - flatten
    - ok_or_else
    - from_redis_value
    linkageType: ''
    returnType: Result
    signature: 'fn from_redis_value(v: Value) -> Result<Self, ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamPendingCountReply::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: 53
    functionLinenumber: 1283
    functionLinenumberEnd: 1322
    functionName: StreamPendingCountReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - to_vec
    - StreamPendingCountReply::default
    - Ok
    - fail
    - String::from_utf8
    - push
    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: StreamInfoStreamReply::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: 50
    functionLinenumber: 1326
    functionLinenumberEnd: 1348
    functionName: StreamInfoStreamReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamInfoStreamReply::default
    - remove
    - Ok
    - from_redis_value
    - StreamId::from_array_value
    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: 50
    functionLinenumber: 1352
    functionLinenumberEnd: 1402
    functionName: StreamInfoStreamReplyWithIdempotency::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamInfoStreamReply::default
    - remove
    - Ok
    - Default::default
    - from_redis_value
    - StreamId::from_array_value
    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: StreamInfoConsumersReply::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: 50
    functionLinenumber: 1406
    functionLinenumberEnd: 1424
    functionName: StreamInfoConsumersReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamInfoConsumer::default
    - remove
    - Ok
    - from_redis_value
    - StreamInfoConsumersReply::default
    - push
    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: StreamInfoGroupsReply::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: 50
    functionLinenumber: 1428
    functionLinenumberEnd: 1462
    functionName: StreamInfoGroupsReply::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Some
    - StreamInfoGroup::default
    - remove
    - Ok
    - StreamInfoGroupsReply::default
    - from_redis_value
    - push
    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: 41
    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:
    - into
    - Err
    - Ok
    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/commands/streams.rs:1541,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1542,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/streams.rs:1543,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1544,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1544,1
    - Dst: Err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1546,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/streams.rs:1546,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 1548
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1548
    functionName: XAckDelStatusCode::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - into
    - Err
    - 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:1556,1
    - Dst: impl ToRedisArgs::write_redis_args
      Src: /src/redis-rs/redis/src/commands/streams.rs:1558,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/src/commands/streams.rs:1560,1
    - Dst: iter_mut
      Src: /src/redis-rs/redis/src/commands/streams.rs:1562,1
    - Dst: for_each
      Src: /src/redis-rs/redis/src/commands/streams.rs:1562,1
    - Dst: Cmd::append
      Src: /src/redis-rs/redis/src/commands/streams.rs:1563,1
    - Dst: Cmd::push
      Src: /src/redis-rs/redis/src/commands/streams.rs:1564,1
    - Dst: Cmd::pop
      Src: /src/redis-rs/redis/src/commands/streams.rs:1567,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - object
    - expected
    argTypes:
    - impl ToRedisArgs
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 1570
      start: 1555
    functionDepth: 52
    functionLinenumber: 1555
    functionLinenumberEnd: 1570
    functionName: tests::assert_command_eq
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - iter_mut
    - for_each
    - impl ToRedisArgs::write_redis_args
    - Cmd::pop
    - Cmd::push
    - Cmd::append
    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:1578,1
    - Dst: StreamAutoClaimReply::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1580,1
    - Dst: Result::unwrap_err
      Src: /src/redis-rs/redis/src/commands/streams.rs:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1577
    functionDepth: 46
    functionLinenumber: 1577
    functionLinenumberEnd: 1581
    functionName: tests::short_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - StreamAutoClaimReply::from_redis_value
    - Result::unwrap_err
    - 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:1585,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1591,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1596
      start: 1584
    functionDepth: 49
    functionLinenumber: 1584
    functionLinenumberEnd: 1596
    functionName: tests::parses_none_claimed_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - FromRedisValue::from_redis_value
    - 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:1600,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1626,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1637
      start: 1599
    functionDepth: 49
    functionLinenumber: 1599
    functionLinenumberEnd: 1637
    functionName: tests::parses_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - FromRedisValue::from_redis_value
    - 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:1641,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1666,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1666,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1670,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1670,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/streams.rs:1670,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1640
    functionDepth: 49
    functionLinenumber: 1640
    functionLinenumberEnd: 1674
    functionName: tests::parses_v6_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - Result::unwrap
    - as_str
    - collect
    - Value::Array
    - FromRedisValue::from_redis_value
    linkageType: ''
    returnType: void
    signature: fn parses_v6_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1678,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1687,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1687,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1691,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1691,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/streams.rs:1691,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1677
    functionDepth: 49
    functionLinenumber: 1677
    functionLinenumberEnd: 1696
    functionName: tests::parses_justid_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - Result::unwrap
    - as_str
    - collect
    - Value::Array
    - FromRedisValue::from_redis_value
    linkageType: ''
    returnType: void
    signature: fn parses_justid_response()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Value::Array
      Src: /src/redis-rs/redis/src/commands/streams.rs:1700,1
    - Dst: FromRedisValue::from_redis_value
      Src: /src/redis-rs/redis/src/commands/streams.rs:1709,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1709,1
    - Dst: iter
      Src: /src/redis-rs/redis/src/commands/streams.rs:1713,1
    - Dst: map
      Src: /src/redis-rs/redis/src/commands/streams.rs:1713,1
    - Dst: as_str
      Src: /src/redis-rs/redis/src/commands/streams.rs:1713,1
    - Dst: collect
      Src: /src/redis-rs/redis/src/commands/streams.rs:1713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1699
    functionDepth: 49
    functionLinenumber: 1699
    functionLinenumberEnd: 1717
    functionName: tests::parses_v6_justid_response
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - iter
    - map
    - Result::unwrap
    - as_str
    - collect
    - Value::Array
    - FromRedisValue::from_redis_value
    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:1725,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1727,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1728
      start: 1724
    functionDepth: 53
    functionLinenumber: 1724
    functionLinenumberEnd: 1728
    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:1732,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1735
      start: 1731
    functionDepth: 53
    functionLinenumber: 1731
    functionLinenumberEnd: 1735
    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:1739,1
    - Dst: Self::limit
      Src: /src/redis-rs/redis/src/commands/streams.rs:1739,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1742
      start: 1738
    functionDepth: 53
    functionLinenumber: 1738
    functionLinenumberEnd: 1742
    functionName: tests::maxlen_trim_limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - assert_command_eq
    - StreamTrimOptions::maxlen
    - Self::limit
    linkageType: ''
    returnType: void
    signature: fn maxlen_trim_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamTrimOptions::minid
      Src: /src/redis-rs/redis/src/commands/streams.rs:1745,1
    - Dst: Self::limit
      Src: /src/redis-rs/redis/src/commands/streams.rs:1745,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1747,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1748
      start: 1744
    functionDepth: 53
    functionLinenumber: 1744
    functionLinenumberEnd: 1748
    functionName: tests::minid_trim_limit
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - assert_command_eq
    - StreamTrimOptions::minid
    - Self::limit
    linkageType: ''
    returnType: void
    signature: fn minid_trim_limit()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1756,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1758,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1759
      start: 1755
    functionDepth: 53
    functionLinenumber: 1755
    functionLinenumberEnd: 1759
    functionName: tests::the_default
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - assert_command_eq
    - StreamAddOptions::default
    linkageType: ''
    returnType: void
    signature: fn the_default()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1763,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1763,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1764,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1767
      start: 1762
    functionDepth: 53
    functionLinenumber: 1762
    functionLinenumberEnd: 1767
    functionName: tests::with_maxlen_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::trim
    - assert_command_eq
    - StreamTrimStrategy::maxlen
    - StreamAddOptions::default
    linkageType: ''
    returnType: void
    signature: fn with_maxlen_trim()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1771,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1771,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1774
      start: 1770
    functionDepth: 53
    functionLinenumber: 1770
    functionLinenumberEnd: 1774
    functionName: tests::with_nomkstream
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::nomkstream
    - assert_command_eq
    - StreamAddOptions::default
    linkageType: ''
    returnType: void
    signature: fn with_nomkstream()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: StreamAddOptions::default
      Src: /src/redis-rs/redis/src/commands/streams.rs:1778,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1778,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1778,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1780,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1783
      start: 1777
    functionDepth: 53
    functionLinenumber: 1777
    functionLinenumberEnd: 1783
    functionName: tests::with_nomkstream_and_maxlen_trim
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::nomkstream
    - StreamTrimStrategy::maxlen
    - Self::trim
    - StreamAddOptions::default
    - assert_command_eq
    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:1787,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/src/commands/streams.rs:1787,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1789,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1790
      start: 1786
    functionDepth: 53
    functionLinenumber: 1786
    functionLinenumberEnd: 1790
    functionName: tests::with_idmp_manual_mode
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - assert_command_eq
    - Self::idmp
    - StreamAddOptions::default
    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:1794,1
    - Dst: Self::idmpauto
      Src: /src/redis-rs/redis/src/commands/streams.rs:1794,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1797
      start: 1793
    functionDepth: 53
    functionLinenumber: 1793
    functionLinenumberEnd: 1797
    functionName: tests::with_idmpauto_automatic_mode
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::idmpauto
    - assert_command_eq
    - StreamAddOptions::default
    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:1801,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1801,1
    - Dst: Self::idmp
      Src: /src/redis-rs/redis/src/commands/streams.rs:1801,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1800
    functionDepth: 53
    functionLinenumber: 1800
    functionLinenumberEnd: 1806
    functionName: tests::with_nomkstream_and_idmp
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::nomkstream
    - assert_command_eq
    - Self::idmp
    - StreamAddOptions::default
    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:1810,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1810,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1811,1
    - Dst: idmp
      Src: /src/redis-rs/redis/src/commands/streams.rs:1810,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1814,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1815
      start: 1809
    functionDepth: 53
    functionLinenumber: 1809
    functionLinenumberEnd: 1815
    functionName: tests::with_trim_and_idmp
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - idmp
    - StreamTrimStrategy::maxlen
    - Self::trim
    - StreamAddOptions::default
    - assert_command_eq
    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:1819,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1819,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1819,1
    - Dst: StreamTrimStrategy::maxlen
      Src: /src/redis-rs/redis/src/commands/streams.rs:1821,1
    - Dst: idmp
      Src: /src/redis-rs/redis/src/commands/streams.rs:1819,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/src/commands/streams.rs:1819,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1818
    functionDepth: 53
    functionLinenumber: 1818
    functionLinenumberEnd: 1829
    functionName: tests::with_all_options_and_idmp
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::set_deletion_policy
    - Self::nomkstream
    - idmp
    - StreamTrimStrategy::maxlen
    - Self::trim
    - StreamAddOptions::default
    - assert_command_eq
    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:1833,1
    - Dst: Self::nomkstream
      Src: /src/redis-rs/redis/src/commands/streams.rs:1833,1
    - Dst: Self::trim
      Src: /src/redis-rs/redis/src/commands/streams.rs:1833,1
    - Dst: StreamTrimStrategy::minid
      Src: /src/redis-rs/redis/src/commands/streams.rs:1835,1
    - Dst: idmpauto
      Src: /src/redis-rs/redis/src/commands/streams.rs:1833,1
    - Dst: Self::set_deletion_policy
      Src: /src/redis-rs/redis/src/commands/streams.rs:1833,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1842,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1832
    functionDepth: 53
    functionLinenumber: 1832
    functionLinenumberEnd: 1846
    functionName: tests::with_all_options_and_idmpauto
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Self::set_deletion_policy
    - idmpauto
    - Self::nomkstream
    - StreamTrimStrategy::minid
    - Self::trim
    - StreamAddOptions::default
    - assert_command_eq
    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:1858,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1858,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1859,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1856
    functionDepth: 53
    functionLinenumber: 1856
    functionLinenumberEnd: 1863
    functionName: tests::with_idempotency_seconds_only
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - StreamConfigOptions::with_idempotency_seconds
    - as_bytes
    - 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:1868,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1868,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1869,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1873
      start: 1866
    functionDepth: 53
    functionLinenumber: 1866
    functionLinenumberEnd: 1873
    functionName: tests::with_idempotency_maxsize_only
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - StreamConfigOptions::with_idempotency_maxsize
    - as_bytes
    - 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:1877,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1877,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:1877,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1877,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1881,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1886
      start: 1876
    functionDepth: 53
    functionLinenumber: 1876
    functionLinenumberEnd: 1886
    functionName: tests::with_both_options_starting_with_idempotency_seconds
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - Result::unwrap
    - idempotency_maxsize
    - StreamConfigOptions::with_idempotency_seconds
    - unwrap
    - assert_command_eq
    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:1890,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1890,1
    - Dst: idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:1890,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1890,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1894,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1889
    functionDepth: 53
    functionLinenumber: 1889
    functionLinenumberEnd: 1899
    functionName: tests::with_both_options_starting_with_idempotency_maxsize
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - Result::unwrap
    - StreamConfigOptions::with_idempotency_maxsize
    - idempotency_seconds
    - unwrap
    - assert_command_eq
    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:1903,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1903,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:1903,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1903,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1907,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1909,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1912
      start: 1902
    functionDepth: 53
    functionLinenumber: 1902
    functionLinenumberEnd: 1912
    functionName: tests::with_max_values
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - Result::unwrap
    - idempotency_maxsize
    - StreamConfigOptions::with_idempotency_seconds
    - unwrap
    - assert_command_eq
    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:1916,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1916,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:1916,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1916,1
    - Dst: assert_command_eq
      Src: /src/redis-rs/redis/src/commands/streams.rs:1920,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/streams.rs:1922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1925
      start: 1915
    functionDepth: 53
    functionLinenumber: 1915
    functionLinenumberEnd: 1925
    functionName: tests::with_min_values
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - as_bytes
    - Result::unwrap
    - idempotency_maxsize
    - StreamConfigOptions::with_idempotency_seconds
    - unwrap
    - assert_command_eq
    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:1929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1934
      start: 1928
    functionDepth: 1
    functionLinenumber: 1928
    functionLinenumberEnd: 1934
    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:1938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1943
      start: 1937
    functionDepth: 1
    functionLinenumber: 1937
    functionLinenumberEnd: 1943
    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:1947,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1952
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 1952
    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:1956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1961
      start: 1955
    functionDepth: 1
    functionLinenumber: 1955
    functionLinenumberEnd: 1961
    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:1965,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1965,1
    - Dst: idempotency_seconds
      Src: /src/redis-rs/redis/src/commands/streams.rs:1965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1972
      start: 1964
    functionDepth: 1
    functionLinenumber: 1964
    functionLinenumberEnd: 1972
    functionName: tests::error_setter_idempotency_seconds_too_low
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - StreamConfigOptions::with_idempotency_maxsize
    - 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:1976,1
    - Dst: Result::unwrap
      Src: /src/redis-rs/redis/src/commands/streams.rs:1976,1
    - Dst: idempotency_maxsize
      Src: /src/redis-rs/redis/src/commands/streams.rs:1976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1975
    functionDepth: 1
    functionLinenumber: 1975
    functionLinenumberEnd: 1983
    functionName: tests::error_setter_idempotency_maxsize_too_high
    functionSourceFile: /src/redis-rs/redis/src/commands/streams.rs
    functionUses: 0
    functionsReached:
    - Result::unwrap
    - StreamConfigOptions::with_idempotency_seconds
    - 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: 239
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 239
    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: 247
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 247
    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: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    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:3100,1
    - Dst: subscribe
      Src: /src/redis-rs/redis/src/commands/mod.rs:3101,1
    - Dst: get_message
      Src: /src/redis-rs/redis/src/commands/mod.rs:3104,1
    - Dst: func
      Src: /src/redis-rs/redis/src/commands/mod.rs:3105,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/mod.rs:3107,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - channels
    - func
    argTypes:
    - C
    - F
    constantsTouched: []
    func_position:
      end: 3110
      start: 3095
    functionDepth: 55
    functionLinenumber: 3095
    functionLinenumberEnd: 3110
    functionName: Connection::subscribe
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 2
    functionsReached:
    - subscribe
    - Ok
    - get_message
    - Connection::as_pubsub
    - func
    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:3117,1
    - Dst: psubscribe
      Src: /src/redis-rs/redis/src/commands/mod.rs:3118,1
    - Dst: get_message
      Src: /src/redis-rs/redis/src/commands/mod.rs:3121,1
    - Dst: func
      Src: /src/redis-rs/redis/src/commands/mod.rs:3122,1
    - Dst: Ok
      Src: /src/redis-rs/redis/src/commands/mod.rs:3124,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - patterns
    - func
    argTypes:
    - P
    - F
    constantsTouched: []
    func_position:
      end: 3127
      start: 3112
    functionDepth: 55
    functionLinenumber: 3112
    functionLinenumberEnd: 3127
    functionName: Connection::psubscribe
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - Ok
    - psubscribe
    - get_message
    - Connection::as_pubsub
    - func
    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:3157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3159
      start: 3156
    functionDepth: 0
    functionLinenumber: 3156
    functionLinenumberEnd: 3159
    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:3163,1
    - Dst: into
      Src: /src/redis-rs/redis/src/commands/mod.rs:3163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - p
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 3165
      start: 3162
    functionDepth: 0
    functionLinenumber: 3162
    functionLinenumberEnd: 3165
    functionName: ScanOptions::with_pattern
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - Some
    - into
    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:3169,1
    - Dst: TlsFilePaths::into
      Src: /src/redis-rs/redis/src/commands/mod.rs:3169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - t
    argTypes:
    - impl Into<String>
    constantsTouched: []
    func_position:
      end: 3171
      start: 3168
    functionDepth: 0
    functionLinenumber: 3168
    functionLinenumberEnd: 3171
    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:3180,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3181,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3185,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3186,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3190,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3191,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3193
      start: 3175
    functionDepth: 41
    functionLinenumber: 3175
    functionLinenumberEnd: 3193
    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:3197,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3200,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3203,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3195
    functionDepth: 0
    functionLinenumber: 3195
    functionLinenumberEnd: 3207
    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:3241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3243
      start: 3240
    functionDepth: 0
    functionLinenumber: 3240
    functionLinenumberEnd: 3243
    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:3247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - isize
    constantsTouched: []
    func_position:
      end: 3249
      start: 3246
    functionDepth: 0
    functionLinenumber: 3246
    functionLinenumberEnd: 3249
    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:3253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 3255
      start: 3252
    functionDepth: 0
    functionLinenumber: 3252
    functionLinenumberEnd: 3255
    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:3264,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3265,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3269,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3270,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3274,1
    - Dst: write_arg_fmt
      Src: /src/redis-rs/redis/src/commands/mod.rs:3275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3277
      start: 3259
    functionDepth: 41
    functionLinenumber: 3259
    functionLinenumberEnd: 3277
    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:3281,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3284,1
    - Dst: is_some
      Src: /src/redis-rs/redis/src/commands/mod.rs:3287,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3291
      start: 3279
    functionDepth: 0
    functionLinenumber: 3279
    functionLinenumberEnd: 3291
    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:3312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3313
      start: 3304
    functionDepth: 41
    functionLinenumber: 3304
    functionLinenumberEnd: 3313
    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: 3346
      start: 3341
    functionDepth: 0
    functionLinenumber: 3341
    functionLinenumberEnd: 3346
    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:3353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - db
    argTypes:
    - Db2
    constantsTouched: []
    func_position:
      end: 3356
      start: 3351
    functionDepth: 0
    functionLinenumber: 3351
    functionLinenumberEnd: 3356
    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: 3362
      start: 3359
    functionDepth: 0
    functionLinenumber: 3359
    functionLinenumberEnd: 3362
    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:3371,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3372,1
    - Dst: i64::to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3372,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3372,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3375,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3377
      start: 3366
    functionDepth: 41
    functionLinenumber: 3366
    functionLinenumberEnd: 3377
    functionName: CopyOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - i64::to_string
    - String::as_bytes
    - 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:3419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - existence_check
    argTypes:
    - ExistenceCheck
    constantsTouched: []
    func_position:
      end: 3421
      start: 3418
    functionDepth: 0
    functionLinenumber: 3418
    functionLinenumberEnd: 3421
    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:3425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - value_comparison
    argTypes:
    - ValueComparison
    constantsTouched: []
    func_position:
      end: 3427
      start: 3424
    functionDepth: 0
    functionLinenumber: 3424
    functionLinenumberEnd: 3427
    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: 3433
      start: 3430
    functionDepth: 0
    functionLinenumber: 3430
    functionLinenumberEnd: 3433
    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:3437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3439
      start: 3436
    functionDepth: 0
    functionLinenumber: 3436
    functionLinenumberEnd: 3439
    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:3448,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3451,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3454,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3457,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3459
      start: 3443
    functionDepth: 42
    functionLinenumber: 3443
    functionLinenumberEnd: 3459
    functionName: SetOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - 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/commands/mod.rs:3485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - existence_check
    argTypes:
    - ExistenceCheck
    constantsTouched: []
    func_position:
      end: 3487
      start: 3484
    functionDepth: 0
    functionLinenumber: 3484
    functionLinenumberEnd: 3487
    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:3491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3493
      start: 3490
    functionDepth: 0
    functionLinenumber: 3490
    functionLinenumberEnd: 3493
    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:3502,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3507
      start: 3497
    functionDepth: 42
    functionLinenumber: 3497
    functionLinenumberEnd: 3507
    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: 3533
      start: 3530
    functionDepth: 0
    functionLinenumber: 3530
    functionLinenumberEnd: 3533
    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:3542,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3544,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3546
      start: 3537
    functionDepth: 41
    functionLinenumber: 3537
    functionLinenumberEnd: 3546
    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:3563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - field_existence_check
    argTypes:
    - FieldExistenceCheck
    constantsTouched: []
    func_position:
      end: 3565
      start: 3562
    functionDepth: 0
    functionLinenumber: 3562
    functionLinenumberEnd: 3565
    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:3569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - expiration
    argTypes:
    - SetExpiry
    constantsTouched: []
    func_position:
      end: 3571
      start: 3568
    functionDepth: 0
    functionLinenumber: 3568
    functionLinenumberEnd: 3571
    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: Self::write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3580,1
    - Dst: write_redis_args
      Src: /src/redis-rs/redis/src/commands/mod.rs:3584,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3586
      start: 3575
    functionDepth: 42
    functionLinenumber: 3575
    functionLinenumberEnd: 3586
    functionName: HashFieldExpirationOptions::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:
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3596,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3597,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3597,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3597,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3600,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3601,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3601,1
    - Dst: String::as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3601,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3604,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3605,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3605,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3605,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3608,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3609,1
    - Dst: to_string
      Src: /src/redis-rs/redis/src/commands/mod.rs:3609,1
    - Dst: as_bytes
      Src: /src/redis-rs/redis/src/commands/mod.rs:3609,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3615
      start: 3590
    functionDepth: 41
    functionLinenumber: 3590
    functionLinenumberEnd: 3615
    functionName: Expiry::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - String::as_bytes
    - to_string
    - 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: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3635,1
    - Dst: write_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3641
      start: 3629
    functionDepth: 41
    functionLinenumber: 3629
    functionLinenumberEnd: 3641
    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:3658,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/mod.rs:3659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 3661
      start: 3656
    functionDepth: 53
    functionLinenumber: 3656
    functionLinenumberEnd: 3661
    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:3667,1
    - Dst: Default::default
      Src: /src/redis-rs/redis/src/commands/mod.rs:3669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - conditional_update
    argTypes:
    - Option<UpdateCheck>
    constantsTouched: []
    func_position:
      end: 3671
      start: 3665
    functionDepth: 53
    functionLinenumber: 3665
    functionLinenumberEnd: 3671
    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:3678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - conditional_update
    argTypes:
    - Option<UpdateCheck>
    constantsTouched: []
    func_position:
      end: 3680
      start: 3675
    functionDepth: 53
    functionLinenumber: 3675
    functionLinenumberEnd: 3680
    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: 3687
      start: 3684
    functionDepth: 0
    functionLinenumber: 3684
    functionLinenumberEnd: 3687
    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: 3694
      start: 3691
    functionDepth: 0
    functionLinenumber: 3691
    functionLinenumberEnd: 3694
    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:3703,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_arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3713,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - out
    argTypes:
    - '&mut W'
    constantsTouched: []
    func_position:
      end: 3715
      start: 3698
    functionDepth: 42
    functionLinenumber: 3698
    functionLinenumberEnd: 3715
    functionName: SortedSetAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 0
    functionsReached:
    - write_redis_args
    - 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: cmd::cmd
      Src: /src/redis-rs/redis/src/commands/mod.rs:3721,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3722,1
    - Dst: as_ref
      Src: /src/redis-rs/redis/src/commands/mod.rs:3724,1
    - Dst: Cmd::arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3728,1
    - Dst: '&mut Cmd::arg'
      Src: /src/redis-rs/redis/src/commands/mod.rs:3728,1
    - Dst: arg
      Src: /src/redis-rs/redis/src/commands/mod.rs:3728,1
    - Dst: '&''static str::as_bytes'
      Src: /src/redis-rs/redis/src/commands/mod.rs:3728,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - connection_info
    argTypes:
    - '&RedisConnectionInfo'
    constantsTouched: []
    func_position:
      end: 3732
      start: 3720
    functionDepth: 43
    functionLinenumber: 3720
    functionLinenumberEnd: 3732
    functionName: resp3_hello
    functionSourceFile: /src/redis-rs/redis/src/commands/mod.rs
    functionUses: 1
    functionsReached:
    - '&''static str::as_bytes'
    - cmd::cmd
    - arg
    - Cmd::arg
    - as_ref
    - '&mut Cmd::arg'
    linkageType: ''
    returnType: Cmd
    signature: 'pub fn resp3_hello(connection_info: &RedisConnectionInfo) -> Cmd'
  - 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: 41
    functionLinenumber: 93
    functionLinenumberEnd: 128
    functionName: VSimOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - write_arg_fmt
    - 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_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: Result::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: 42
    functionLinenumber: 148
    functionLinenumberEnd: 172
    functionName: EmbeddingInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - Result::write_redis_args
    - 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: 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: 41
    functionLinenumber: 186
    functionLinenumberEnd: 204
    functionName: VectorAddInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - impl io::Write + '_::write_all
    - write_arg
    - write_redis_args
    - unwrap
    - writer_for_next_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: 41
    functionLinenumber: 301
    functionLinenumberEnd: 331
    functionName: VAddOptions::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - serde_json::to_vec
    - unwrap
    - 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: []
    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: 41
    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: 41
    functionLinenumber: 387
    functionLinenumberEnd: 409
    functionName: VectorSimilaritySearchInput::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/vector_sets.rs
    functionUses: 0
    functionsReached:
    - to_le_bytes
    - impl io::Write + '_::write_all
    - write_arg
    - write_redis_args
    - unwrap
    - writer_for_next_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: 169
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 169
    functionName: implement_json_commands
    functionSourceFile: /src/redis-rs/redis/src/commands/json.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ''
    signature: ''
  - 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: 41
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: Rule::write_redis_args
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - write_arg
    - write_arg_fmt
    - as_bytes
    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: AclInfo = 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: 57
    functionLinenumber: 168
    functionLinenumberEnd: 361
    functionName: AclInfo::handle_pair
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - Rule::AddHashedPass
    - Rule::Pattern
    - FromRedisValue::from_redis_value_ref
    - TlsFilePaths::len
    - as_slice
    - Err
    - chain
    - "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>>"
    - starts_with
    - "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_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<_, _>>"
    - "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>>"
    - TlsFilePaths::trim
    - Rule::Other
    - TlsFilePaths::strip_prefix
    - Rule::RemoveCommand
    - into_iter
    - map
    - String::from_utf8_lossy
    - std::str::from_utf8
    - not_convertible_error
    - String::from_redis_value_ref
    - Option::ok_or_else
    - TlsFilePaths::to_owned
    - Rule::Channel
    - to_owned
    - iter
    - "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>>"
    - "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>>"
    - TlsFilePaths::ends_with
    - split_terminator
    - TlsFilePaths::as_str
    - Rule::AddCategory
    - Rule::RemoveCategory
    - TlsFilePaths::starts_with
    - "iter()\n                        .map(|pat| {\n                            let\
      \ acl: AclInfo = 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>>"
    - TlsFilePaths::split_whitespace
    - Ok
    - strip_prefix
    - as_str
    - collect
    - flatten
    - into_owned
    - "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<_,\
      \ _>>"
    - impl combine::Parser::as_sequence
    - trim
    - Rule::AddCommand
    linkageType: ''
    returnType: Result
    signature: 'fn handle_pair(&mut self, name: &Value, value: &Value) -> Result<(),
      ParsingError>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: AclInfo::default
      Src: /src/redis-rs/redis/src/commands/acl.rs:365,1
    - Dst: Result::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: Result::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: chunks
      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: 39
    argCount: 1
    argNames:
    - v
    argTypes:
    - Value
    constantsTouched: []
    func_position:
      end: 386
      start: 364
    functionDepth: 53
    functionLinenumber: 364
    functionLinenumberEnd: 386
    functionName: AclInfo::from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - Result::as_map_iter
    - Ok
    - Self::handle_pair
    - len
    - AclInfo::default
    - not_convertible_error
    - Err
    - chunks
    - Result::as_sequence
    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: 65
    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: 49
    functionLinenumber: 441
    functionLinenumberEnd: 486
    functionName: tests::test_from_redis_value
    functionSourceFile: /src/redis-rs/redis/src/commands/acl.rs
    functionUses: 0
    functionsReached:
    - AclInfo::from_redis_value_ref
    - Result::expect
    - 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: 50
    functionLinenumber: 23
    functionLinenumberEnd: 50
    functionName: run_multi
    functionSourceFile: /src/redis-rs/redis/examples/async-connection-loss.rs
    functionUses: 0
    functionsReached:
    - C::clone
    - Instant::now
    - Ok
    - tokio::time::interval
    - redis::Cmd::query_async
    - Duration::from_secs
    - Duration::from_millis
    - future::join3
    - unwrap
    - redis::cmd
    - checked_duration_since
    - tick
    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:108,1
    - Dst: map
      Src: /src/redis-rs/redis/examples/streams.rs:108,1
    - Dst: collect
      Src: /src/redis-rs/redis/examples/streams.rs:108,1
    - Dst: xack
      Src: /src/redis-rs/redis/examples/streams.rs:109,1
    - Dst: expect
      Src: /src/redis-rs/redis/examples/streams.rs:109,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: 76
    argCount: 1
    argNames:
    - client
    argTypes:
    - '&redis::Client'
    constantsTouched: []
    func_position:
      end: 118
      start: 37
    functionDepth: 48
    functionLinenumber: 37
    functionLinenumberEnd: 118
    functionName: demo_group_reads
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - join
    - RedisResult::iter
    - add_records
    - xgroup_create_mkstream
    - map
    - clone
    - read_group_records
    - collect
    - Result::get_connection
    - xack
    - thread::sleep
    - random_wait_millis
    - RedisResult::expect
    - expect
    - Duration::from_millis
    - thread::spawn
    - push
    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: 46
    functionLinenumber: 122
    functionLinenumberEnd: 167
    functionName: add_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - thrifty_rand
    - xadd_maxlen
    - get_connection
    - Ok
    - RedisResult::expect
    - StreamMaxlen::Approx
    - 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
    - expect
    - as_nanos
    - SystemTime::now
    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: 27
    argCount: 1
    argNames:
    - client
    argTypes:
    - '&redis::Client'
    constantsTouched: []
    func_position:
      end: 235
      start: 206
    functionDepth: 46
    functionLinenumber: 206
    functionLinenumberEnd: 235
    functionName: read_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - xread_options
    - get_connection
    - Ok
    - StreamReadOptions::default
    - expect
    - RedisResult::expect
    - Self::block
    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: Self::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: 46
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: read_group_records
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 1
    functionsReached:
    - xread_options
    - get_connection
    - Ok
    - StreamReadOptions::default
    - Self::count
    - expect
    - RedisResult::expect
    - Self::block
    - consumer_name
    - Self::group
    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: 46
    functionLinenumber: 262
    functionLinenumberEnd: 271
    functionName: clean_up
    functionSourceFile: /src/redis-rs/redis/examples/streams.rs
    functionUses: 0
    functionsReached:
    - get_connection
    - expect
    - RedisResult::expect
    - StreamMaxlen::Equals
    - xgroup_destroy
    - xtrim
    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: 52
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: LatencyAwareFactory::new
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 0
    functionsReached:
    - Arc::new
    - mpsc::unbounded_channel
    - watch::channel
    - tokio::spawn
    - HashMap::new
    - ProbeHandle
    - probe_task
    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: 52
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: LatencyAwareFactory::create_strategy
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 0
    functionsReached:
    - clone
    - Arc::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: 55
    functionLinenumber: 103
    functionLinenumberEnd: 122
    functionName: LatencyAwareStrategy::route_read
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 0
    functionsReached:
    - get
    - iter
    - to_string
    - copied
    - unwrap_or
    - primary
    - replicas
    - borrow
    - latency_of
    - expect
    - chain
    - std::iter::once
    - min_by_key
    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: RedisResult::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: RedisResult::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: RedisResult::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: 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: Cmd::insert
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:216,1
    - Dst: RedisResult::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: Cmd::iter
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:227,1
    - Dst: RedisResult::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: 52
    functionLinenumber: 133
    functionLinenumberEnd: 239
    functionName: probe_task
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 1
    functionsReached:
    - Some
    - watch::Sender<LatencySnapshot>::send
    - unique_addresses
    - RedisResult::len
    - sort_by_key
    - redis::Client::open
    - HashMap::new
    - filter_map
    - RedisResult::get
    - HashMap::with_capacity
    - RedisResult::collect
    - elapsed
    - RedisResult::remove
    - map
    - clone
    - RedisResult::insert
    - get_multiplexed_async_connection
    - mpsc::UnboundedReceiver<ClusterTopology>::recv
    - ConnectionAddr::clone
    - redis::cmd
    - redis::Cmd::exec_async
    - futures::future::join_all
    - tokio::time::sleep
    - iter
    - Cmd::iter
    - RedisResult::contains_key
    - mpsc::UnboundedReceiver<ClusterTopology>::try_recv
    - HashSet::new
    - Instant::now
    - Cmd::insert
    - is_empty
    - ConnectionAddr::as_str
    - collect
    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: RedisServer::insert
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:245,1
    - Dst: std::sync::MutexGuard::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: std::sync::MutexGuard::replicas
      Src: /src/redis-rs/redis/examples/latency-aware-routing.rs:246,1
    - Dst: RedisServer::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: 52
    functionLinenumber: 242
    functionLinenumberEnd: 251
    functionName: unique_addresses
    functionSourceFile: /src/redis-rs/redis/examples/latency-aware-routing.rs
    functionUses: 3
    functionsReached:
    - std::sync::MutexGuard::primary
    - to_string
    - RedisServer::insert
    - HashSet::new
    - Result::to_string
    - std::sync::MutexGuard::replicas
    - ClusterTopology::shards
    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 Cmd::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 Cmd::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 Cmd::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: 48
    functionLinenumber: 4
    functionLinenumberEnd: 30
    functionName: test_cmd
    functionSourceFile: /src/redis-rs/redis/examples/async-multiplexed.rs
    functionUses: 1
    functionsReached:
    - redis::Cmd::arg
    - Ok
    - '&mut Cmd::query_async'
    - RedisResult::map
    - exec_async
    - '&mut Cmd::exec_async'
    - '&mut Cmd::arg'
    - redis::cmd
    - Self::clone
    linkageType: ''
    returnType: RedisResult
    signature: 'async fn test_cmd(con: &MultiplexedConnection, i: i32) -> 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 Cmd::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: 43
    functionLinenumber: 10
    functionLinenumberEnd: 39
    functionName: do_print_max_entry_limits
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - Ok
    - '&mut Cmd::arg'
    - redis::cmd
    - 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 Cmd::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 Cmd::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: 43
    functionLinenumber: 44
    functionLinenumberEnd: 73
    functionName: do_show_scanning
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::cursor_arg'
    - redis::pipe
    - Ok
    - Pipeline::cmd
    - Cmd::arg
    - '&mut Cmd::arg'
    - redis::cmd
    - Pipeline::exec
    - ignore
    - iter::<i32>
    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 Cmd::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 Cmd::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 Cmd::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 Pipeline::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 Cmd::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: 43
    functionLinenumber: 76
    functionLinenumberEnd: 116
    functionName: do_atomic_increment_lowlevel
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::exec'
    - redis::Pipeline::atomic
    - '&mut Pipeline::cmd'
    - ignore
    - cmd
    - Ok
    - arg
    - '&mut Cmd::arg'
    - redis::cmd
    - '&mut Cmd::query'
    - query
    - exec
    - redis::pipe
    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: 44
    functionLinenumber: 119
    functionLinenumberEnd: 138
    functionName: do_atomic_increment
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - get
    - Ok
    - redis::transaction
    - query
    - '&mut redis::Connection::get'
    - Pipeline::set
    - '&mut redis::Connection::set'
    - ignore
    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: 46
    functionLinenumber: 141
    functionLinenumberEnd: 157
    functionName: do_redis_code
    functionSourceFile: /src/redis-rs/redis/examples/basic.rs
    functionUses: 0
    functionsReached:
    - do_atomic_increment_lowlevel
    - get_connection
    - Ok
    - do_print_max_entry_limits
    - do_atomic_increment
    - redis::Client::open
    - do_show_scanning
    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 Cmd::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 Cmd::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 Cmd::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: 69
    argCount: 2
    argNames:
    - c
    - con
    argTypes:
    - '&mut Criterion'
    - '&mut redis::cluster::ClusterConnection'
    constantsTouched: []
    func_position:
      end: 44
      start: 16
    functionDepth: 64
    functionLinenumber: 16
    functionLinenumberEnd: 44
    functionName: bench_set_get_and_del
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::exec'
    - i64::iter
    - arg(key).query::<isize>
    - benchmark_group
    - set_and_del
    - bench_function
    - '&mut Cmd::arg'
    - redis::cmd
    - RedisResult::unwrap
    - unwrap
    - std::hint::black_box
    - exec
    - finish
    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: RedisServer::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: 61
    argCount: 2
    argNames:
    - c
    - con
    argTypes:
    - '&mut Criterion'
    - '&mut redis::cluster::ClusterConnection'
    constantsTouched: []
    func_position:
      end: 80
      start: 46
    functionDepth: 52
    functionLinenumber: 46
    functionLinenumberEnd: 80
    functionName: bench_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - finish
    - i64::iter
    - benchmark_group
    - throughput
    - redis::cluster::cluster_pipe
    - bench_function
    - Pipeline::set
    - RedisServer::push
    - std::hint::black_box
    - RedisResult::unwrap
    - Pipeline::exec
    - Throughput::Elements
    - build_pipeline
    - ignore
    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:82,1
    - Dst: RedisClusterConfiguration::single_replica_config
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:82,1
    - Dst: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:83,1
    - Dst: current_thread_runtime
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:84,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:85,1
    - Dst: Result::async_connection
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:85,1
    - Dst: bench_cluster_async
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 88
      start: 80
    functionDepth: 63
    functionLinenumber: 80
    functionLinenumberEnd: 88
    functionName: bench_cluster_setup
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster_async.rs
    functionUses: 0
    functionsReached:
    - current_thread_runtime
    - Result::wait_for_cluster_up
    - RedisClusterConfiguration::single_replica_config
    - Result::async_connection
    - bench_cluster_async
    - TestClusterContext::new_with_config
    - tokio::runtime::Runtime::block_on
    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: Result::wait_for_cluster_up
      Src: /src/redis-rs/redis/benches/bench_cluster.rs:98,1
    - Dst: Result::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: 62
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: bench_cluster_read_from_replicas_setup
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster.rs
    functionUses: 0
    functionsReached:
    - bench_set_get_and_del
    - Result::wait_for_cluster_up
    - RedisClusterConfiguration::single_replica_config
    - read_routing_strategy
    - Result::connection
    - bench_pipeline
    - TestClusterContext::new_with_config_and_builder
    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 Cmd::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 Cmd::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 Cmd::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 Cmd::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: map
      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: .num_parallel).map(|_| con.clone()).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:45,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:46,1
    - Dst: RedisResult::iter
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:48,1
    - Dst: zip
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:48,1
    - Dst: map
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:48,1
    - Dst: Cmd::exec_async
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:50,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:48,1
    - Dst: try_for_each
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:48,1
    - Dst: Ok
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:52,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:46,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:56,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:60,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:63,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:66,1
    - Dst: '&str::to_string'
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:66,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:66,1
    - Dst: i64::iter
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:69,1
    - Dst: tokio::runtime::Runtime::block_on
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:70,1
    - Dst: Pipeline::exec_async
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:71,1
    - Dst: unwrap
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:70,1
    - Dst: std::hint::black_box
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:73,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_cluster_async.rs:77,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 131
    argCount: 3
    argNames:
    - c
    - con
    - runtime
    argTypes:
    - '&mut Criterion'
    - '&mut redis::cluster_async::ClusterConnection'
    - '&Runtime'
    constantsTouched: []
    func_position:
      end: 78
      start: 15
    functionDepth: 64
    functionLinenumber: 15
    functionLinenumberEnd: 78
    functionName: bench_cluster_async
    functionSourceFile: /src/redis-rs/redis/benches/bench_cluster_async.rs
    functionUses: 1
    functionsReached:
    - RedisResult::iter
    - '&mut Cmd::query_async'
    - exec_async
    - '&mut Cmd::exec_async'
    - .num_parallel).map(|_| con.clone()).collect::<Vec<_>>
    - ignore
    - Pipeline::exec_async
    - redis::Cmd::arg
    - i64::iter
    - Ok::<_, RedisError>
    - map
    - clone
    - '&str::to_string'
    - bench_function
    - "iter()\n                        .zip(&mut connections)\n                  \
      \      .map(|(cmd, con)| cmd.exec_async(con))\n                        .collect::<stream::FuturesUnordered<_>>"
    - Pipeline::set
    - redis::cmd
    - try_for_each
    - tokio::runtime::Runtime::block_on
    - redis::pipe
    - finish
    - benchmark_group
    - Cmd::exec_async
    - '&mut Cmd::arg'
    - unwrap
    - std::hint::black_box
    - Ok
    - collect
    - '&mut redis::cluster_async::ClusterConnection::clone'
    - zip
    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 Cmd::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 Cmd::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: 40
    functionLinenumber: 16
    functionLinenumberEnd: 36
    functionName: generate_commands
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - Bernoulli::from_ratio
    - rand::rng
    - '&mut Cmd::clone'
    - clone
    - random_range
    - take
    - sample_iter
    - unwrap
    - RedisResult::push
    - redis::cmd
    - '&mut Cmd::arg'
    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: TestContext::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: TestContext::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: RedisServer::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: 56
    functionLinenumber: 38
    functionLinenumberEnd: 71
    functionName: benchmark_executer
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - rand::rng
    - TestContext::multiplexed_async_connection_tokio
    - CacheConfig::new
    - clone
    - TestContext::async_connection_with_cache_config
    - tokio::spawn
    - generate_commands
    - RedisServer::push
    - unwrap
    - Cmd::query_async
    - TestContext::new
    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: 59
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: prepare_benchmark
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - benchmark_executer
    - tokio::runtime::Builder::new_multi_thread
    - worker_threads
    - '&mut Bencher::iter'
    - build
    - unwrap
    - tokio::runtime::Runtime::block_on
    - enable_all
    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: clone
      Src: /src/redis-rs/redis/benches/bench_cache.rs:109,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: 39
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 131
      start: 96
    functionDepth: 48
    functionLinenumber: 96
    functionLinenumberEnd: 131
    functionName: bench_cache
    functionSourceFile: /src/redis-rs/redis/benches/bench_cache.rs
    functionUses: 0
    functionsReached:
    - String::unwrap_or_default
    - finish
    - benchmark_group
    - clone
    - sample_size
    - throughput
    - prepare_benchmark
    - redis_test::server::use_protocol
    - bench_function
    - Throughput::Elements
    - env::var
    - ProtocolVersion::supports_resp3
    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: TestContext::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 Cmd::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 Cmd::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 Cmd::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: 56
    functionLinenumber: 10
    functionLinenumberEnd: 20
    functionName: bench_simple_getsetdel
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - '&mut Cmd::exec'
    - i64::iter
    - TestContext::connection
    - '&mut Cmd::arg'
    - redis::cmd
    - TestContext::new
    - RedisResult::unwrap
    - '&mut Cmd::query'
    - unwrap
    - exec
    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: TestContext::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 Cmd::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 Cmd::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 Cmd::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: 46
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 56
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: bench_simple_getsetdel_async
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - i64::iter
    - current_thread_runtime
    - Ok::<_, RedisError>
    - '&mut Cmd::query_async'
    - exec_async
    - TestContext::async_connection
    - '&mut Cmd::exec_async'
    - unwrap
    - redis::cmd
    - TestContext::new
    - '&mut Cmd::arg'
    - tokio::runtime::Runtime::block_on
    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: TestContext::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 Cmd::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: 56
    functionLinenumber: 44
    functionLinenumberEnd: 63
    functionName: bench_simple_getsetdel_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - ignore
    - cmd
    - i64::iter
    - arg
    - redis::Pipeline::cmd
    - TestContext::connection
    - '&mut Cmd::arg'
    - unwrap
    - TestContext::new
    - query
    - redis::pipe
    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: TestContext::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 Cmd::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: 56
    functionLinenumber: 65
    functionLinenumberEnd: 83
    functionName: bench_simple_getsetdel_pipeline_precreated
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::Cmd::arg
    - Pipeline::query
    - ignore
    - cmd
    - i64::iter
    - arg
    - TestContext::connection
    - Pipeline::cmd
    - '&mut Cmd::arg'
    - RedisResult::unwrap
    - TestContext::new
    - redis::pipe
    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: 49
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - ignore
    - Pipeline::set
    - redis::pipe
    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: TestContext::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: 56
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: bench_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - TestContext::connection
    - RedisResult::unwrap
    - TestContext::new
    - long_pipeline
    - Pipeline::exec
    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: TestContext::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: 56
    functionLinenumber: 107
    functionLinenumberEnd: 119
    functionName: bench_async_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - long_pipeline
    - i64::iter
    - current_thread_runtime
    - TestContext::async_connection
    - unwrap
    - TestContext::new
    - tokio::runtime::Runtime::block_on
    - Pipeline::exec_async
    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: TestContext::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: 56
    functionLinenumber: 121
    functionLinenumberEnd: 135
    functionName: bench_multiplexed_async_long_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - long_pipeline
    - TestContext::multiplexed_async_connection_tokio
    - current_thread_runtime
    - i64::iter
    - unwrap
    - TestContext::new
    - tokio::runtime::Runtime::block_on
    - Pipeline::exec_async
    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: TestContext::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 Cmd::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: map
      Src: /src/redis-rs/redis/benches/bench_basic.rs:148,1
    - Dst: clone
      Src: /src/redis-rs/redis/benches/bench_basic.rs:149,1
    - Dst: ".PIPELINE_QUERIES)\n        .map(|_| con.clone())\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: 58
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 164
      start: 137
    functionDepth: 56
    functionLinenumber: 137
    functionLinenumberEnd: 164
    functionName: bench_multiplexed_async_implicit_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - RedisResult::iter
    - TestContext::new
    - redis::Cmd::arg
    - TestContext::multiplexed_async_connection_tokio
    - map
    - ".PIPELINE_QUERIES)\n        .map(|_| con.clone())\n        .collect::<Vec<_>>"
    - clone
    - i64::iter
    - "iter()\n                    .zip(&mut connections)\n                    .map(|(cmd,\
      \ con)| cmd.exec_async(con))\n                    .collect::<stream::FuturesUnordered<_>>"
    - redis::cmd
    - try_for_each
    - tokio::runtime::Runtime::block_on
    - current_thread_runtime
    - Cmd::exec_async
    - unwrap
    - '&mut Cmd::arg'
    - Ok
    - collect
    - zip
    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
    - bench_function
    - Throughput::Elements
    - 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 Cmd::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: 64
    functionLinenumber: 194
    functionLinenumberEnd: 204
    functionName: bench_encode_small
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - Cmd::get_packed_command
    - i64::iter
    - arg
    - Cmd::arg
    - '&mut Cmd::arg'
    - redis::cmd
    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: 64
    functionLinenumber: 206
    functionLinenumberEnd: 215
    functionName: bench_encode_integer
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - redis::pipe
    - Pipeline::set
    - Pipeline::get_packed_pipeline
    - ignore
    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:218,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:219,1
    - Dst: Pipeline::set
      Src: /src/redis-rs/redis/benches/bench_basic.rs:222,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:222,1
    - Dst: Pipeline::get_packed_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 226
      start: 217
    functionDepth: 64
    functionLinenumber: 217
    functionLinenumberEnd: 226
    functionName: bench_encode_pipeline
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - redis::pipe
    - Pipeline::set
    - Pipeline::get_packed_pipeline
    - ignore
    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:229,1
    - Dst: redis::pipe
      Src: /src/redis-rs/redis/benches/bench_basic.rs:230,1
    - Dst: Pipeline::mset
      Src: /src/redis-rs/redis/benches/bench_basic.rs:233,1
    - Dst: ignore
      Src: /src/redis-rs/redis/benches/bench_basic.rs:233,1
    - Dst: Pipeline::get_packed_pipeline
      Src: /src/redis-rs/redis/benches/bench_basic.rs:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 33
    argCount: 1
    argNames:
    - b
    argTypes:
    - '&mut Bencher'
    constantsTouched: []
    func_position:
      end: 243
      start: 228
    functionDepth: 64
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: bench_encode_pipeline_nested
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - i64::iter
    - redis::pipe
    - Pipeline::mset
    - Pipeline::get_packed_pipeline
    - ignore
    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:246,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:247,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:247,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:247,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:247,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_basic.rs:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 253
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 253
    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:256,1
    - Dst: redis::parse_redis_value
      Src: /src/redis-rs/redis/benches/bench_basic.rs:256,1
    - Dst: RedisResult::unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - b
    - input
    argTypes:
    - '&mut Bencher'
    - '&[u8]'
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 64
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: bench_decode_simple
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - redis::parse_redis_value
    - i64::iter
    - 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:259,1
    - Dst: benchmark_group
      Src: /src/redis-rs/redis/benches/bench_basic.rs:268,1
    - Dst: Vec::new
      Src: /src/redis-rs/redis/benches/bench_basic.rs:270,1
    - Dst: support::encode_value
      Src: /src/redis-rs/redis/benches/bench_basic.rs:271,1
    - Dst: io::Result::unwrap
      Src: /src/redis-rs/redis/benches/bench_basic.rs:271,1
    - Dst: bench_function
      Src: /src/redis-rs/redis/benches/bench_basic.rs:273,1
    - Dst: bench_decode_simple
      Src: /src/redis-rs/redis/benches/bench_basic.rs:273,1
    - Dst: finish
      Src: /src/redis-rs/redis/benches/bench_basic.rs:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - '&mut Criterion'
    constantsTouched: []
    func_position:
      end: 276
      start: 258
    functionDepth: 52
    functionLinenumber: 258
    functionLinenumberEnd: 276
    functionName: bench_decode
    functionSourceFile: /src/redis-rs/redis/benches/bench_basic.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    - benchmark_group
    - bench_decode_simple
    - io::Result::unwrap
    - bench_function
    - Value::Array
    - finish
    - support::encode_value
    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: 54
    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
  - b::u::i::l::d::_::k::e::y::s::_::a::n::d::_::c::e::r::t::s::_::f::o::r::_::t::l::s::_::e::x::t::make_key
  - build_keys_and_certs_for_tls_ext
  - 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
  - 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:
  - 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::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
  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:
  - 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_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::sentinel_connect_to_random_replica_async
  - async_tests::sentinel_connect_to_multiple_replicas_async
  - async_tests::sentinel_server_down_async
  - async_tests::sentinel_redis_client_async
  - async_tests::sentinel_client_async
  - async_tests::sentinel_client_async_not_sentinel_error
  - async_tests::sentinel_client_async_io_error
  - async_tests::sentinel_client_async_with_connection_timeout
  - async_tests::sentinel_client_async_with_response_timeout
  - async_tests::sentinel_client_async_with_timeouts
  - async_tests::get_replica_clients_success_async
  - async_tests::get_replica_clients_invalid_master_name_async
  - async_tests::get_replica_clients_report_correct_master_async
  - async_tests::get_replica_clients_with_one_replica_down_async
  - pool_tests::parse_client_info
  - pool_tests::test_sentinel_client
  source_file: /src/redis-rs/redis/tests/test_sentinel.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:
  - assert_hit
  - assert_miss
  - assert_invalidate
  - test_cache_basic
  - cache_mget
  - module_cache_json_get_mget
  - module_cache_json_get_mget_different_paths
  - cache_is_not_target_type_dependent
  - test_cache_with_pipeline
  - cache_basic_partial_opt_in
  - test_cache_pipeline_partial_opt_in
  - test_cache_different_commands
  - test_connection_manager_maintains_statistics_after_crashes
  - cache_async_cluster_reconnect_all_nodes
  - 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_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
  source_file: /src/redis-rs/redis/tests/test_cluster.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::args
  - basic_async::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::can_authenticate_with_username_and_password
  - basic_async::nice_hash_api
  - basic_async::nice_hash_api_in_pipe
  - basic_async::dont_panic_on_closed_multiplexed_connection
  - basic_async::pipeline_transaction
  - basic_async::client_tracking_doesnt_block_execution
  - basic_async::pipeline_transaction_with_errors
  - basic_async::module_json_and_pipeline_transaction_with_ignore_errors
  - basic_async::pipeline_with_ignore_errors
  - basic_async::pipeline_returns_server_errors
  - basic_async::test_cmd
  - basic_async::pipe_over_multiplexed_connection
  - basic_async::running_multiple_commands
  - basic_async::transaction_multiplexed_connection
  - basic_async::async_scanning
  - basic_async::async_scanning_iterative
  - basic_async::async_scanning_stream
  - basic_async::response_timeout_multiplexed_connection
  - basic_async::script
  - basic_async::script_load
  - basic_async::script_returning_complex_type
  - basic_async::io_error_on_kill_issue_320
  - basic_async::invalid_password_issue_343
  - basic_async::scan_with_options_works
  - basic_async::issue_stream_blocks
  - basic_async::issue_async_commands_scan_broken
  - basic_async::pub_sub_subscription
  - basic_async::pub_sub_subscription_to_multiple_channels
  - basic_async::issue_async_commands_scan_finishing_prematurely
  - basic_async::pub_sub_unsubscription
  - basic_async::can_receive_messages_while_sending_requests_from_split_pub_sub
  - basic_async::can_send_ping_on_split_pubsub
  - basic_async::can_receive_messages_from_split_pub_sub_after_sink_was_dropped
  - basic_async::can_receive_messages_from_split_pub_sub_after_into_on_message
  - basic_async::cannot_subscribe_on_split_pub_sub_after_stream_was_dropped
  - basic_async::automatic_unsubscription
  - basic_async::automatic_unsubscription_on_split
  - basic_async::pipe_errors_do_not_affect_subsequent_commands
  - basic_async::multiplexed_pub_sub_subscribe_on_multiple_channels
  - basic_async::non_transaction_errors_do_not_affect_other_results_in_pipeline
  - basic_async::pub_sub_multiple
  - basic_async::pub_sub_requires_resp3
  - basic_async::push_sender_send_on_disconnect
  - basic_async::manager_should_resubscribe_to_pubsub_channels_after_disconnect
  - basic_async::async_basic_pipe_with_parsing_error
  - basic_async::connection_manager_reconnect_after_delay
  - basic_async::manager_should_reconnect_without_actions_if_resp3_is_set
  - basic_async::manager_should_completely_disconnect_when_drop
  - basic_async::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::::::::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::multiplexed_connection_kills_connection_on_drop_even_when_blocking
  - basic_async::monitor
  - basic_async::test_should_connect_mtls
  - basic_async::test_should_not_connect_if_tls_active
  - basic_async::resp3_pushes_connection_manager
  - basic_async::select_db
  - basic_async::multiplexed_connection_send_single_disconnect_on_connection_failure
  - basic_async::fail_on_empty_command
  - basic_async::check_unwatched
  - basic_async::simple_case_success
  - basic_async::transaction_should_retry_on_watch
  - basic_async::transaction_should_retry_on_none_from_closure
  - basic_async::transaction_abort_if_internal_function_returns_error
  - basic_async::lazy_connection_manager_can_be_created_synchronously
  - basic_async::lazy_connection_manager_reconnects_after_disconnect
  - basic_async::lazy_connection_manager_can_be_cloned_before_sending
  - basic_async::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
  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::test_service_principal_client_certificate
  - entra_id_tests::test_system_assigned_managed_identity
  - entra_id_tests::test_user_assigned_managed_identity
  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_commands
  - 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::broken_pipe_error
  - cluster_async::smoke_test_connection
  - cluster_async::async_cluster_basic_cmd
  - cluster_async::no_response_skips_response_even_on_error
  - cluster_async::reconnect_only_the_disconnected_node_leave_other_connections_intact
  - cluster_async::async_cluster_basic_eval
  - cluster_async::async_cluster_basic_script
  - cluster_async::async_cluster_route_flush_to_specific_node
  - cluster_async::async_cluster_route_flush_to_node_by_address
  - cluster_async::async_cluster_route_info_to_nodes
  - cluster_async::cluster_resp3
  - cluster_async::async_cluster_basic_pipe
  - cluster_async::test_pipeline_returns_server_errors
  - cluster_async::async_cluster_multi_shard_commands
  - cluster_async::async_cluster_can_run_a_transaction
  - cluster_async::async_cluster_default_reject_invalid_hostnames
  - cluster_async::async_cluster_danger_accept_invalid_hostnames
  - cluster_async::async_cluster_basic_failover
  - cluster_async::do_failover
  - cluster_async::test_failover
  - cluster_async::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_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::async_cluster_with_username_and_password
  - cluster_async::test_async_cluster_io_error
  - 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::async_cluster_handle_complete_server_disconnect_without_panicking
  - cluster_async::async_cluster_reconnect_after_complete_server_disconnect
  - cluster_async::async_cluster_reconnect_after_complete_server_disconnect_route_to_many
  - cluster_async::test_async_cluster_saves_reconnected_connection
  - c::l::u::s::t::e::r::_::a::s::y::n::c::::::::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::kill_connection_on_drop_even_when_blocking
  - cluster_async::test_async_cluster_do_not_retry_when_receiver_was_dropped
  - cluster_async::async_cluster_connect_lazily
  - cluster_async::fail_on_empty_command
  - cluster_async::check_if_redis_6
  - cluster_async::subscribe_to_channels
  - cluster_async::get_push
  - cluster_async::check_publishing
  - cluster_async::pub_sub_subscription
  - cluster_async::pub_sub_subscription_with_config
  - cluster_async::pub_sub_shardnumsub
  - cluster_async::pub_sub_unsubscription
  - cluster_async::connection_is_still_usable_if_pubsub_receiver_is_dropped
  - cluster_async::multiple_subscribes_and_unsubscribes_work
  - cluster_async::pub_sub_reconnect_after_disconnect
  - cluster_async::pub_sub_should_not_reconnect_if_subscription_failed
  - cluster_async::async_cluster_basic_cmd_with_mtls
  - cluster_async::async_cluster_should_not_connect_without_mtls_enabled
  - cluster_async::check_unwatched
  - cluster_async::simple_case_success
  - cluster_async::transaction_should_retry_on_watch
  - cluster_async::transaction_should_retry_on_none_from_closure
  - cluster_async::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_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::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::authentication_error_handling_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::multiple_connections_from_one_client_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::multiple_clients_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::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::cluster_authentication_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::cluster_token_rotation_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::cluster_authentication_error_handling_with_mock_streaming_credentials_provider
  - token_based_authentication_acl_tests::cluster_multiple_connections_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::cluster_multiple_clients_sharing_a_single_credentials_provider
  - token_based_authentication_acl_tests::delete_user_on_all_nodes
  - token_based_authentication_acl_tests::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
  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::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
  - 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::with_tls
  - TestContext::with_modules
  - TestContext::new_with_addr
  - TestContext::with_modules_and_tls
  - TestContext::with_modules_addr_and_tls
  - 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_version
  - encode_iter
  - encode_map
  - encode_value
  - parse_version
  - get_version
  - is_major_version
  - is_version
  - run_test_if_version_supported
  - load_certs_from_file
  - build_single_client
  - 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::connection
  - TestClusterContext::async_connection
  - TestClusterContext::async_connection_with_config
  - TestClusterContext::async_generic_connection
  - TestClusterContext::wait_for_cluster_up
  - TestClusterContext::disable_default_user
  - TestClusterContext::get_version
  - TestClusterContext::get_ports
  source_file: /src/redis-rs/redis/tests/support/cluster.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_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
  source_file: /src/redis-rs/redis/src/client.rs
- function_names:
  - EntraIdCredentialsProvider::validate_scopes
  - EntraIdCredentialsProvider::convert_credentials
  - EntraIdCredentialsProvider::convert_error
  - EntraIdCredentialsProvider::convert_error_ref
  - EntraIdCredentialsProvider::unwrap_credential
  - EntraIdCredentialsProvider::notify_subscribers
  - EntraIdCredentialsProvider::start_refresh_service
  - EntraIdCredentialsProvider::stop
  - 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
  - EntraIdCredentialsProvider::drop
  - 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::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_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:
  - 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
  - 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:
  - 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_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
  - 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::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_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_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_lazy_connection_manager_with_config
  - 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
  - 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:
  - slot
  - get_slot
  - 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::slot
  - Route::slot_addr
  - Route::new_random_primary
  - random_slot
  - 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
  - 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::push_sender
  - ClusterClientBuilder::tcp_settings
  - ClusterClientBuilder::async_dns_resolver
  - ClusterClientBuilder::cache_config
  - ClusterClientBuilder::connection_concurrency_limit
  - ClusterClientBuilder::set_credentials_provider
  - 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::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
  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
  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::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'
  - Slot::new
  - tests::addr
  - tests::test_slot_map_with_strategy
  - tests::test_slot_map_when_no_strategy_is_set
  - 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
  - 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::refresh_slots
  - Core::refresh_connections_locked
  - Core::resubscribe
  - boxed_sleep
  - OperationTarget::from
  - ConnectionState::fmt
  - build_slot_map
  - ClusterConnInner::new
  - ClusterConnInner::create_initial_connections
  - ClusterConnInner::reconnect_to_initial_nodes
  - ClusterConnInner::refresh_connections
  - ClusterConnInner::wait_for_initial_connection
  - ClusterConnInner::poll_recover
  - ClusterConnInner::handle_retries
  - 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::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:
  - 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
  - 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
  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
  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:
  - 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_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
